@@ -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