diff --git a/backend.native/build.gradle b/backend.native/build.gradle index fcc13652301..793526237d1 100644 --- a/backend.native/build.gradle +++ b/backend.native/build.gradle @@ -44,8 +44,8 @@ allprojects { // make Gradle aware of this to avoid multiple Kotlin runtimes in classpath: resolutionStrategy.dependencySubstitution { substitute module('org.jetbrains.kotlin:kotlin-runtime') with module(kotlinCompilerModule) - substitute module('org.jetbrains.kotlin:kotlin-stdlib') with module(kotlinCompilerModule) - substitute module('org.jetbrains.kotlin:kotlin-reflect') with module(kotlinCompilerModule) + substitute module('org.jetbrains.kotlin:kotlin-stdlib') with module(kotlinStdLibModule) + substitute module('org.jetbrains.kotlin:kotlin-reflect') with module(kotlinReflectModule) } // TODO: probably we should use kotlin-compiler without bundled runtime } @@ -120,6 +120,11 @@ kotlinNativeInterop { configurations { + kotlin_compiler_jar + kotlin_stdlib_jar + kotlin_reflect_jar + kotlin_script_runtime_jar + cli_bcRuntime.extendsFrom compilerRuntime cli_bc { @@ -128,6 +133,10 @@ configurations { } dependencies { + kotlin_compiler_jar "$kotlinCompilerModule@jar" + kotlin_stdlib_jar "$kotlinStdLibModule@jar" + kotlin_reflect_jar "$kotlinReflectModule@jar" + kotlin_script_runtime_jar "$kotlinScriptRuntimeModule@jar" compilerCompile "com.google.protobuf:protobuf-java:${protobufVersion}" @@ -220,14 +229,27 @@ jar { dependsOn ':runtime:hostRuntime', 'external_jars' } +def externalJars = ['compiler', 'stdlib', 'reflect', 'script_runtime'] + +externalJars.each { arg -> + def jar = arg.replace('_', '-') // :( + task ("${arg}Copy", type:Copy) { + from configurations.getByName("kotlin_${arg}_jar") { + include "kotlin-${jar}*.jar" + rename "kotlin-${jar}(.*).jar", "kotlin-${jar}.jar" + + into 'build/external_jars' + } + } +} + task external_jars(type: Copy) { + dependsOn externalJars.collect{"${it}Copy"} + from configurations.compilerCompile { include "protobuf-java-${protobufVersion}.jar" - include 'kotlin-compiler*.jar' - rename 'kotlin-compiler(.*).jar', 'kotlin-compiler.jar' - into 'build/external_jars' } } diff --git a/build.gradle b/build.gradle index a3532fbf1e6..782a8b86d9d 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,9 @@ ext { dependenciesDir = rootProject.file("dist/dependencies") clangManager = new ClangManager(konanProperties, dependenciesDir.absolutePath) kotlinCompilerModule="org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}" + kotlinStdLibModule="org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdLibVersion}" + kotlinReflectModule="org.jetbrains.kotlin:kotlin-reflect:${kotlinReflectVersion}" + kotlinScriptRuntimeModule="org.jetbrains.kotlin:kotlin-script-runtime:${kotlinScriptRuntimeVersion}" } allprojects { diff --git a/cmd/run_konan b/cmd/run_konan index c175e4c7141..a46b1cd0a19 100755 --- a/cmd/run_konan +++ b/cmd/run_konan @@ -81,13 +81,16 @@ done KONAN_JAR="${KONAN_HOME}/konan/lib/backend.native.jar" KOTLIN_JAR="${KONAN_HOME}/konan/lib/kotlin-compiler.jar" +KOTLIN_STDLIB_JAR="${KONAN_HOME}/konan/lib/kotlin-stdlib.jar" +KOTLIN_REFLECT_JAR="${KONAN_HOME}/konan/lib/kotlin-reflect.jar" +KOTLIN_SCRIPT_RUNTIME_JAR="${KONAN_HOME}/konan/lib/kotlin-script-runtime.jar" STUB_GENERATOR_JAR="${KONAN_HOME}/konan/lib/StubGenerator.jar" INTEROP_INDEXER_JAR="${KONAN_HOME}/konan/lib/Indexer.jar" INTEROP_JAR="${KONAN_HOME}/konan/lib/Runtime.jar" SHARED_JAR="${KONAN_HOME}/konan/lib/shared.jar" KLIB_JAR="${KONAN_HOME}/konan/lib/klib.jar" UTILITIES_JAR="${KONAN_HOME}/konan/lib/utilities.jar" -KONAN_CLASSPATH="$KOTLIN_JAR:$INTEROP_JAR:$STUB_GENERATOR_JAR:$INTEROP_INDEXER_JAR:$KONAN_JAR:$KLIB_JAR:$UTILITIES_JAR:$SHARED_JAR" +KONAN_CLASSPATH="$KOTLIN_JAR:$KOTLIN_STDLIB_JAR:$KOTLIN_REFLECT_JAR:$KOTLIN_SCRIPT_RUNTIME_JAR:$INTEROP_JAR:$STUB_GENERATOR_JAR:$INTEROP_INDEXER_JAR:$KONAN_JAR:$KLIB_JAR:$UTILITIES_JAR:$SHARED_JAR" TOOL_CLASS=org.jetbrains.kotlin.cli.utilities.MainKt LIBCLANG_DISABLE_CRASH_RECOVERY=1 \ diff --git a/cmd/run_konan.bat b/cmd/run_konan.bat index e3377500f81..8c261ed70e4 100644 --- a/cmd/run_konan.bat +++ b/cmd/run_konan.bat @@ -64,10 +64,13 @@ set "INTEROP_RUNTIME_JAR=%KONAN_LIB%\Runtime.jar" set "KLIB_JAR=%KONAN_LIB%\klib.jar" set "KONAN_JAR=%KONAN_LIB%\backend.native.jar" set "KOTLIN_JAR=%KONAN_LIB%\kotlin-compiler.jar" +set "KOTLIN_STDLIB_JAR=%KONAN_LIB%\kotlin-stdlib.jar" +set "KOTLIN_REFLECT_JAR=%KONAN_LIB%\kotlin-stdlib.jar" +set "KOTLIN_SCRIPT_RUNTIME_JAR=%KONAN_LIB%\kotlin-script-runtime.jar" set "STUB_GENERATOR_JAR=%KONAN_LIB%\StubGenerator.jar" set "UTILITIES_JAR=%KONAN_LIB%\utilities.jar" -set "KONAN_CLASSPATH=%KOTLIN_JAR%;%INTEROP_RUNTIME_JAR%;%KONAN_JAR%;%STUB_GENERATOR_JAR%;%INTEROP_INDEXER_JAR%;%SHARED_JAR%;%KLIB_JAR%;%UTILITIES_JAR%" +set "KONAN_CLASSPATH=%KOTLIN_JAR%;%KOTLIN_STDLIB_JAR%;%KOTLIN_REFLECT_JAR%;%KOTLIN_SCRIPT_RUNTIME_JAR%;%INTEROP_RUNTIME_JAR%;%KONAN_JAR%;%STUB_GENERATOR_JAR%;%INTEROP_INDEXER_JAR%;%SHARED_JAR%;%KLIB_JAR%;%UTILITIES_JAR%" set JAVA_OPTS=-ea ^ -Xmx3G ^ diff --git a/dependencies/build.gradle b/dependencies/build.gradle index b9ebd48d78a..91528b7b5e2 100644 --- a/dependencies/build.gradle +++ b/dependencies/build.gradle @@ -48,6 +48,22 @@ configurations { kotlin_stdlib_jdk8_pom kotlin_stdlib_jdk8_src kotlin_stdlib_jdk8_doc + + kotlin_stdlib_jar + kotlin_stdlib_pom + kotlin_stdlib_src + kotlin_stdlib_doc + + kotlin_reflect_jar + kotlin_reflect_pom + kotlin_reflect_src + kotlin_reflect_doc + + kotlin_script_runtime_jar + kotlin_script_runtime_pom + kotlin_script_runtime_src + kotlin_script_runtime_doc + } def kotlinGradleModule = "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinGradlePluginVersion" @@ -73,12 +89,31 @@ dependencies { kotlin_stdlib_jdk8_pom "$kotlinStdLibJdk8Module@pom" kotlin_stdlib_jdk8_src "$kotlinStdLibJdk8Module:sources@jar" kotlin_stdlib_jdk8_doc "$kotlinStdLibJdk8Module:javadoc@jar" + + kotlin_stdlib_jar "$kotlinStdLibModule@jar" + kotlin_stdlib_pom "$kotlinStdLibModule@pom" + kotlin_stdlib_src "$kotlinStdLibModule:sources@jar" + kotlin_stdlib_doc "$kotlinStdLibModule:javadoc@jar" + + kotlin_reflect_jar "$kotlinReflectModule@jar" + kotlin_reflect_pom "$kotlinReflectModule@pom" + kotlin_reflect_src "$kotlinReflectModule:sources@jar" + kotlin_reflect_doc "$kotlinReflectModule:javadoc@jar" + + kotlin_script_runtime_jar "$kotlinScriptRuntimeModule@jar" + kotlin_script_runtime_pom "$kotlinScriptRuntimeModule@pom" + kotlin_script_runtime_src "$kotlinScriptRuntimeModule:sources@jar" + kotlin_script_runtime_doc "$kotlinScriptRuntimeModule:javadoc@jar" } -def modules = ['compiler' : kotlinCompilerModule, - 'gradle_plugin': kotlinGradleModule, - 'stdlib_jdk8' : kotlinStdLibJdk8Module] -def uploads = ['compiler', 'gradle_plugin', 'stdlib_jdk8'] +def modules = ['compiler' : kotlinCompilerModule, + 'gradle_plugin' : kotlinGradleModule, + 'stdlib_jdk8' : kotlinStdLibJdk8Module, + 'stdlib' : kotlinStdLibModule, + 'reflect' : kotlinReflectModule, + 'script_runtime': kotlinScriptRuntimeModule +] +def uploads = modules.keySet() uploads.each { target -> task("${target}Upload", type:GradleBuild) { tasks = ['bintrayUpload'] @@ -99,7 +134,7 @@ uploads.each { target -> } task update_kotlin_compiler(type: DefaultTask) { - dependsOn compilerUpload, gradle_pluginUpload, stdlib_jdk8Upload + dependsOn uploads.collect{"${it}Upload"} } abstract class NativeDep extends DefaultTask { diff --git a/dependencies/upload.gradle b/dependencies/upload.gradle index 2b5238134ea..5a66c43fc97 100644 --- a/dependencies/upload.gradle +++ b/dependencies/upload.gradle @@ -15,6 +15,9 @@ buildscript { apply plugin: 'com.jfrog.bintray' +def versionMapping = [ + 'kotlin-script-runtime' : kotlinScriptRuntimeVersion +] // Hack kotlin-compiler pom-file to resolve the dependency correctly. task generatePom(type: DefaultTask) { @@ -37,6 +40,12 @@ task generatePom(type: DefaultTask) { xml.append(version) xml.remove(parent) } + xml.dependencies[0].each { + def suggestedVersion = versionMapping[it.artifactId.text()] + if (suggestedVersion != null) { + it.version[0].setValue(suggestedVersion) + } + } new XmlNodePrinter(new PrintWriter(new FileWriter(newPom))).print(xml) } } diff --git a/gradle.properties b/gradle.properties index 5188afad442..bf4bc779171 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,11 +23,14 @@ testDataVersion=1067176:id kotlinCompilerRepo=https://dl.bintray.com/jetbrains/kotlin-native-dependencies #kotlinCompilerRepo=http://oss.sonatype.org/content/repositories/snapshots #kotlinCompilerRepo=http://dl.bintray.com/kotlin/kotlin-dev -kotlinVersion=1.1-20170919.214919-905 +kotlinVersion=1.1-20171004.235336-906 +kotlinScriptRuntimeVersion=1.1-20171004.235353-597 +kotlinStdLibVersion=1.1-20171004.235357-905 +kotlinReflectVersion=1.1-20171004.235348-905 konanVersion=0.3.3 org.gradle.jvmargs='-Dfile.encoding=UTF-8' ## # required for performance mesuarement tasks -kotlinStdLibJdk8Version=1.1-20170919.214804-814 -kotlinGradlePluginVersion=1.1-20170919.215938-883 +kotlinStdLibJdk8Version=1.1-20171004.235402-815 +kotlinGradlePluginVersion=1.1-20171004.235345-884 diff --git a/tools/kotlin-native-gradle-plugin/build.gradle b/tools/kotlin-native-gradle-plugin/build.gradle index 7db12ce1613..be7efdbae11 100644 --- a/tools/kotlin-native-gradle-plugin/build.gradle +++ b/tools/kotlin-native-gradle-plugin/build.gradle @@ -51,8 +51,8 @@ allprojects { // make Gradle aware of this to avoid multiple Kotlin runtimes in classpath: resolutionStrategy.dependencySubstitution { substitute module('org.jetbrains.kotlin:kotlin-runtime') with module(kotlinCompilerModule) - substitute module('org.jetbrains.kotlin:kotlin-stdlib') with module(kotlinCompilerModule) - substitute module('org.jetbrains.kotlin:kotlin-reflect') with module(kotlinCompilerModule) + substitute module('org.jetbrains.kotlin:kotlin-stdlib') with module(kotlinStdLibModule) + substitute module('org.jetbrains.kotlin:kotlin-reflect') with module(kotlinReflectModule) } // TODO: probably we should use kotlin-compiler without bundled runtime }