Unverified Commit ba25a5c5 authored by Nikolay Igotti's avatar Nikolay Igotti Committed by GitHub

Only create objcCompile task on macOS, fails on Windows in IDE (#360)

parent fe6bf4af
...@@ -711,33 +711,35 @@ val linkJvmBindings = tasks.register<LinkSkikoTask>("linkJvmBindings") { ...@@ -711,33 +711,35 @@ val linkJvmBindings = tasks.register<LinkSkikoTask>("linkJvmBindings") {
flags.set(listOf(*osFlags)) flags.set(listOf(*osFlags))
} }
// Very hacky way to compile Objective-C sources and add the if (hostOs == OS.MacOS) {
// resulting object files into the final library. // Very hacky way to compile Objective-C sources and add the
project.tasks.register<Exec>("objcCompile") { // resulting object files into the final library.
val inputDir = "$projectDir/src/jvmMain/objectiveC/${targetOs.id}" project.tasks.register<Exec>("objcCompile") {
val outDir = "$buildDir/objc/$target" val inputDir = "$projectDir/src/jvmMain/objectiveC/${targetOs.id}"
val names = File(inputDir).listFiles()!!.map { it.name.removeSuffix(".mm") } val outDir = "$buildDir/objc/$target"
val srcs = names.map { "$inputDir/$it.mm" }.toTypedArray() val names = File(inputDir).listFiles()!!.map { it.name.removeSuffix(".mm") }
val outs = names.map { "$outDir/$it.o" }.toTypedArray() val srcs = names.map { "$inputDir/$it.mm" }.toTypedArray()
workingDir = File(outDir) val outs = names.map { "$outDir/$it.o" }.toTypedArray()
val skiaDir = skiaJvmBindingsDir.get().absolutePath workingDir = File(outDir)
commandLine = listOf( val skiaDir = skiaJvmBindingsDir.get().absolutePath
"clang", commandLine = listOf(
*targetOs.clangFlags, "clang",
"-I$jdkHome/include", *targetOs.clangFlags,
"-I$jdkHome/include/darwin", "-I$jdkHome/include",
"-I$skiaDir", "-I$jdkHome/include/darwin",
"-I$skiaDir/include", "-I$skiaDir",
"-I$skiaDir/include/gpu", "-I$skiaDir/include",
"-fobjc-arc", "-I$skiaDir/include/gpu",
"-DSK_METAL", "-fobjc-arc",
"-std=c++17", "-DSK_METAL",
"-c", "-std=c++17",
*srcs "-c",
) *srcs
file(outDir).mkdirs() )
inputs.files(srcs) file(outDir).mkdirs()
outputs.files(outs) inputs.files(srcs)
outputs.files(outs)
}
} }
val generateVersion = project.tasks.register("generateVersion") { val generateVersion = project.tasks.register("generateVersion") {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment