diff --git a/buildSrc/src/main/kotlin/BuildInfo.kt b/buildSrc/src/main/kotlin/BuildInfo.kt index e8d85daa..7edf206a 100644 --- a/buildSrc/src/main/kotlin/BuildInfo.kt +++ b/buildSrc/src/main/kotlin/BuildInfo.kt @@ -95,6 +95,11 @@ open class BuildInfo(project: Project) { java.lang.Boolean.getBoolean("releaseBuild") } + val hasMuslToolchain: Boolean by lazy { + // see "install musl" in .circleci/jobs/BuildNativeJob.pkl + File(System.getProperty("user.home"), "staticdeps/bin/x86_64-linux-musl-gcc").exists() + } + val os: org.gradle.internal.os.OperatingSystem by lazy { org.gradle.internal.os.OperatingSystem.current() } diff --git a/pkl-cli/pkl-cli.gradle.kts b/pkl-cli/pkl-cli.gradle.kts index 75f98326..dcb19f22 100644 --- a/pkl-cli/pkl-cli.gradle.kts +++ b/pkl-cli/pkl-cli.gradle.kts @@ -254,7 +254,7 @@ val linuxExecutableAarch64: TaskProvider by tasks.registering(Exec::class) */ val alpineExecutableAmd64: TaskProvider by tasks.registering(Exec::class) { configureExecutable( - buildInfo.os.isLinux && buildInfo.arch == "amd64", + buildInfo.os.isLinux && buildInfo.arch == "amd64" && buildInfo.hasMuslToolchain, file("$buildDir/executable/pkl-alpine-linux-amd64"), listOf( "--static", diff --git a/pkl-core/pkl-core.gradle.kts b/pkl-core/pkl-core.gradle.kts index 7583e4c0..569ba83f 100644 --- a/pkl-core/pkl-core.gradle.kts +++ b/pkl-core/pkl-core.gradle.kts @@ -256,7 +256,7 @@ val testLinuxExecutableAarch64 by tasks.registering(Test::class) { } val testAlpineExecutableAmd64 by tasks.registering(Test::class) { - enabled = buildInfo.os.isLinux && buildInfo.arch == "amd64" + enabled = buildInfo.os.isLinux && buildInfo.arch == "amd64" && buildInfo.hasMuslToolchain dependsOn(":pkl-cli:alpineExecutableAmd64") inputs.dir("src/test/files/LanguageSnippetTests/input")