@@ -13,11 +13,13 @@ package co.touchlab.cklib.gradle
1313import  co.touchlab.cklib.gradle.reflection.PlatformManager 
1414import  org.gradle.api.Project 
1515import  org.jetbrains.kotlin.konan.target.Distribution 
16+ import  org.jetbrains.kotlin.konan.target.HostManager 
17+ import  org.jetbrains.kotlin.konan.target.TargetSupportException 
1618import  javax.inject.Inject 
1719
1820open  class  CKlibGradleExtension  @Inject constructor(val  project :  Project ){
19-     var  konanHome:  String  =  " ${System .getProperty(" user.home"  )} /.konan/kotlin-native-prebuilt-macos -x86_64-${GradleValues .KOTLIN_VERSION } " 
20-     var  llvmHome:  String  =  " ${System .getProperty(" user.home"  )} /.konan/dependencies/clang-llvm-apple-8.0.0-darwin-macos " 
21+     var  konanHome:  String  =  " ${System .getProperty(" user.home"  )} /.konan/kotlin-native-prebuilt-${simpleOsName} -x86_64-${GradleValues .KOTLIN_VERSION } " 
22+     var  llvmHome:  String  =  " ${System .getProperty(" user.home"  )} /.konan/dependencies/${llvmName} " 
2123}
2224
2325internal  val  Project .platformManager:  PlatformManager 
@@ -27,4 +29,36 @@ internal val Project.platformManager: PlatformManager
2729    }
2830
2931internal  val  Project .llvmHome:  String 
30-     get() =  extensions.getByType(CKlibGradleExtension ::class .java).llvmHome
32+     get() =  extensions.getByType(CKlibGradleExtension ::class .java).llvmHome
33+ 
34+ internal  val  simpleOsName:  String 
35+     get() {
36+         val  hostOs =  HostManager .hostOs()
37+         return  if  (hostOs ==  " osx"  ) " macos"   else  hostOs
38+     }
39+ 
40+ internal  val  osName:  String 
41+     get() {
42+         val  javaOsName =  System .getProperty(" os.name"  )
43+         return  when  {
44+             javaOsName ==  " Mac OS X"   ->  " osx" 
45+             javaOsName ==  " Linux"   ->  " linux" 
46+             javaOsName.startsWith(" Windows"  ) ->  " windows" 
47+             else  ->  throw  TargetSupportException (" Unknown operating system: $javaOsName "  )
48+         }
49+     }
50+ 
51+ internal  val  llvmName:  String 
52+     get() {
53+         return  when  (osName) {
54+             " osx"   ->  llvm_macos_x64
55+             " linux"   ->  llvm_linux_x64
56+             " windows"   ->  llvm_mingw_x64
57+             else  ->  throw  TargetSupportException (" Unknown operating system: $osName "  )
58+         }
59+     }
60+ 
61+ internal  val  llvm_linux_x64 =  " clang-llvm-8.0.0-linux-x86-64" 
62+ internal  val  llvm_mingw_x64 =  " msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1" 
63+ internal  val  llvm_macos_x64 =  " clang-llvm-apple-8.0.0-darwin-macos" 
64+ internal  val  llvm_macos_arm64 =  " clang-llvm-apple-8.0.0-darwin-macos-aarch64" 
0 commit comments