buildscript { repositories { mavenCentral() val kotlinCompilerRepo: String? by rootProject kotlinCompilerRepo?.let { maven(it) } } val kotlin_version: String by rootProject dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } allprojects { repositories { mavenCentral() val kotlinCompilerRepo: String? by rootProject kotlinCompilerRepo?.let { maven(it) } } } val hostOs = System.getProperty("os.name") val isMacos = hostOs == "Mac OS X" val isLinux = hostOs == "Linux" val isWindows = hostOs.startsWith("Windows") val localRepo = rootProject.file("build/.m2-local") val clean by tasks.creating(Delete::class) { delete(localRepo) } val buildSh by tasks.creating(Exec::class) { errorOutput = System.out isIgnoreExitValue = true workingDir = projectDir enabled = !isWindows if (isLinux || isMacos) { commandLine = listOf(projectDir.resolve("build.sh").toString()) } } val buildSamplesWithPlatformLibs by tasks.creating { dependsOn(":csvparser:assemble") dependsOn(":curl:assemble") dependsOn(":echoServer:assemble") dependsOn(":globalState:assemble") dependsOn(":html5Canvas:assemble") dependsOn(":workers:assemble") if (isMacos || isLinux) { dependsOn(":nonBlockingEchoServer:assemble") dependsOn(":tensorflow:assemble") } if (isMacos) { dependsOn(":objc:assemble") dependsOn(":opengl:assemble") dependsOn(":uikit:assemble") dependsOn(":coverage:assemble") dependsOn(":watchos:assemble") } if (isWindows) { dependsOn(":win32:assemble") } } val buildAllSamples by tasks.creating { subprojects.forEach { dependsOn("${it.path}:assemble") } finalizedBy(buildSh) }