@@ -80,8 +80,8 @@ private fun Project.registerCmakeConfigureTask(
8080 val cmakeBuildDir = project.cmakeBuildDir(knTarget)
8181 val installDir = project.cmakeInstallDir(knTarget)
8282
83- val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).path
84- val relativeInstallDir = installDir.relativeTo(project.rootDir).path
83+ val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).slashPath
84+ val relativeInstallDir = installDir.relativeTo(project.rootDir).slashPath
8585 val cmakeLists = project.rootProject.projectDir.resolve(" CMakeLists.txt" )
8686
8787 return project.tasks.register(knTarget.cmakeConfigureTaskName) {
@@ -142,7 +142,7 @@ private fun Project.registerCmakeBuildTask(
142142 buildType : CMakeBuildType ,
143143): TaskProvider <Task > {
144144 val cmakeBuildDir = project.cmakeBuildDir(knTarget)
145- val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).path
145+ val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).slashPath
146146
147147 return project.tasks.register(knTarget.cmakeBuildTaskName) {
148148 group = " ffi"
@@ -188,7 +188,7 @@ private fun Project.registerCmakeInstallTask(
188188 buildType : CMakeBuildType ,
189189): TaskProvider <Task > {
190190 val cmakeBuildDir = project.cmakeBuildDir(knTarget)
191- val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).path
191+ val relativeBuildDir = cmakeBuildDir.relativeTo(project.rootDir).slashPath
192192 val installDir = project.cmakeInstallDir(knTarget)
193193
194194 return project.tasks.register(knTarget.cmakeInstallTaskName) {
@@ -212,6 +212,11 @@ private fun Project.registerCmakeInstallTask(
212212private val containerCompileTargets = setOf (
213213 KonanTarget .LINUX_X64 ,
214214 KonanTarget .LINUX_ARM64 ,
215+ KonanTarget .MINGW_X64 ,
216+ )
217+
218+ private val requiresExplicitBash = setOf (
219+ KonanTarget .MINGW_X64 ,
215220)
216221
217222private fun runCmake (project : Project , target : KotlinNativeTarget , cmakeArgs : List <String >) {
@@ -225,7 +230,13 @@ private fun runCmake(project: Project, target: KotlinNativeTarget, cmakeArgs: Li
225230 exeArgs.addAll(0 , containerScriptArgs)
226231 val script = " dockcross-" + target.konanTarget.name.replace(" _" , " -" )
227232 validateCrossCompileScriptsAvailable(project, script)
228- " ./$script "
233+
234+ if (target.konanTarget in requiresExplicitBash) {
235+ exeArgs.add(0 , " ./$script " )
236+ " bash"
237+ } else {
238+ " ./$script "
239+ }
229240 }
230241 else -> " cmake"
231242 }
0 commit comments