From a87396b070e6375edca2074fff58607ea10fb298 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 17 Aug 2017 22:41:05 +0200 Subject: [PATCH] Add scripting projects from libraries --- gradle/project-schema.json | 35 +++++++++++++++++++ .../build.gradle.kts | 26 ++++++++++++++ .../build.gradle.kts | 24 +++++++++++++ .../tools/kotlin-script-util/build.gradle.kts | 33 +++++++++++++++++ settings.gradle | 8 ++++- 5 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 libraries/examples/kotlin-jsr223-daemon-local-eval-example/build.gradle.kts create mode 100644 libraries/examples/kotlin-jsr223-local-example/build.gradle.kts create mode 100644 libraries/tools/kotlin-script-util/build.gradle.kts diff --git a/gradle/project-schema.json b/gradle/project-schema.json index 75fbf21a62e..312bc858f99 100644 --- a/gradle/project-schema.json +++ b/gradle/project-schema.json @@ -1171,6 +1171,41 @@ "signing": "org.gradle.plugins.signing.SigningExtension" } }, + ":kotlin-script-util": { + "conventions": { + "base": "org.gradle.api.plugins.BasePluginConvention", + "java": "org.gradle.api.plugins.JavaPluginConvention" + }, + "configurations": [ + "apiElements", + "archives", + "compile", + "compileClasspath", + "compileOnly", + "default", + "implementation", + "kapt", + "kaptTest", + "runtime", + "runtimeClasspath", + "runtimeElements", + "runtimeOnly", + "testCompile", + "testCompileClasspath", + "testCompileOnly", + "testImplementation", + "testRuntime", + "testRuntimeClasspath", + "testRuntimeOnly" + ], + "extensions": { + "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", + "kotlin": "org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension", + "kapt": "org.jetbrains.kotlin.gradle.plugin.KaptExtension", + "defaultArtifacts": "org.gradle.api.internal.plugins.DefaultArtifactPublicationSet", + "reporting": "org.gradle.api.reporting.ReportingExtension" + } + }, ":kotlin-source-sections-compiler-plugin": { "conventions": { "base": "org.gradle.api.plugins.BasePluginConvention", diff --git a/libraries/examples/kotlin-jsr223-daemon-local-eval-example/build.gradle.kts b/libraries/examples/kotlin-jsr223-daemon-local-eval-example/build.gradle.kts new file mode 100644 index 00000000000..b3bcb568fa5 --- /dev/null +++ b/libraries/examples/kotlin-jsr223-daemon-local-eval-example/build.gradle.kts @@ -0,0 +1,26 @@ + +description = "Sample Kotlin JSR 223 scripting jar with daemon (out-of-process) compilation and local (in-process) evaluation" + +apply { plugin("kotlin") } + +dependencies { + val compile by configurations + val testCompile by configurations + val testRuntime by configurations + compile(project(":kotlin-stdlib")) + compile(project(":kotlin-script-runtime")) + compile(projectRuntimeJar(":kotlin-compiler")) + compile(project(":kotlin-script-util")) + compile(projectRuntimeJar(":kotlin-daemon-client")) + testCompile(project(":kotlin-test:kotlin-test-junit")) + testRuntime(project(":kotlin-reflect")) +} + +tasks.withType { + jvmArgs("-ea", "-XX:+HeapDumpOnOutOfMemoryError", "-Xmx1200m", "-XX:+UseCodeCacheFlushing", "-XX:ReservedCodeCacheSize=128m", "-Djna.nosys=true") + maxHeapSize = "1200m" + systemProperty("idea.is.unit.test", "true") + environment("NO_FS_ROOTS_ACCESS_CHECK", "true") + environment("KOTLIN_HOME", rootProject.extra["distKotlinHomeDir"]) + ignoreFailures = true +} diff --git a/libraries/examples/kotlin-jsr223-local-example/build.gradle.kts b/libraries/examples/kotlin-jsr223-local-example/build.gradle.kts new file mode 100644 index 00000000000..9c9aa261d0e --- /dev/null +++ b/libraries/examples/kotlin-jsr223-local-example/build.gradle.kts @@ -0,0 +1,24 @@ + +description = "Sample Kotlin JSR 223 scripting jar with local (in-process) compilation and evaluation" + +apply { plugin("kotlin") } + +dependencies { + val compile by configurations + val testCompile by configurations + val testRuntime by configurations + compile(project(":kotlin-stdlib")) + compile(project(":kotlin-script-runtime")) + compile(projectRuntimeJar(":kotlin-compiler")) + compile(project(":kotlin-script-util")) + testCompile(project(":kotlin-test:kotlin-test-junit")) + testRuntime(project(":kotlin-reflect")) +} + +tasks.withType { + jvmArgs("-ea", "-XX:+HeapDumpOnOutOfMemoryError", "-Xmx1200m", "-XX:+UseCodeCacheFlushing", "-XX:ReservedCodeCacheSize=128m", "-Djna.nosys=true") + maxHeapSize = "1200m" + systemProperty("idea.is.unit.test", "true") + environment("NO_FS_ROOTS_ACCESS_CHECK", "true") + ignoreFailures = true +} diff --git a/libraries/tools/kotlin-script-util/build.gradle.kts b/libraries/tools/kotlin-script-util/build.gradle.kts new file mode 100644 index 00000000000..db2d33ffd60 --- /dev/null +++ b/libraries/tools/kotlin-script-util/build.gradle.kts @@ -0,0 +1,33 @@ + +description = "Kotlin scripting support utilities" + +apply { plugin("kotlin") } + +dependencies { + compile(project(":kotlin-stdlib")) + compile(project(":kotlin-script-runtime")) + compile(projectRuntimeJar(":kotlin-compiler")) + compile(projectRuntimeJar(":kotlin-daemon-client")) + compileOnly("com.jcabi:jcabi-aether:0.10.1") + compileOnly("org.sonatype.aether:aether-api:1.13.1") + compileOnly("org.apache.maven:maven-core:3.0.3") + testCompile(project(":kotlin-test:kotlin-test-junit")) + testRuntime(project(":kotlin-reflect")) + testRuntime("com.jcabi:jcabi-aether:0.10.1") + testRuntime("org.sonatype.aether:aether-api:1.13.1") + testRuntime("org.apache.maven:maven-core:3.0.3") +} + +tasks.withType { + jvmArgs("-ea", "-XX:+HeapDumpOnOutOfMemoryError", "-Xmx1200m", "-XX:+UseCodeCacheFlushing", "-XX:ReservedCodeCacheSize=128m", "-Djna.nosys=true") + maxHeapSize = "1200m" + systemProperty("idea.is.unit.test", "true") + environment("NO_FS_ROOTS_ACCESS_CHECK", "true") + ignoreFailures = true +} + +runtimeJar() +sourcesJar() +javadocJar() + +publish() diff --git a/settings.gradle b/settings.gradle index fdd8403892e..6fc630db87e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -117,7 +117,10 @@ include ":build-common", ":kotlin-sam-with-receiver", ":kotlin-gradle-subplugin-example", ":examples:annotation-processor-example", - ":kotlin-annotation-processing" + ":kotlin-script-util", + ":kotlin-annotation-processing", + ":examples:kotlin-jsr223-local-example", + ":examples:kotlin-jsr223-daemon-local-eval-example" rootProject.name = "kotlin" @@ -169,7 +172,10 @@ project(':kotlin-noarg').projectDir = "$rootDir/libraries/tools/kotlin-noarg" as project(':kotlin-sam-with-receiver').projectDir = "$rootDir/libraries/tools/kotlin-sam-with-receiver" as File project(':kotlin-gradle-subplugin-example').projectDir = "$rootDir/libraries/examples/kotlin-gradle-subplugin-example" as File project(':examples:annotation-processor-example').projectDir = "$rootDir/libraries/examples/annotation-processor-example" as File +project(':kotlin-script-util').projectDir = "$rootDir/libraries/tools/kotlin-script-util" as File project(':kotlin-annotation-processing').projectDir = "$rootDir/libraries/tools/kotlin-annotation-processing" as File +project(':examples:kotlin-jsr223-local-example').projectDir = "$rootDir/libraries/examples/kotlin-jsr223-local-example" as File +project(':examples:kotlin-jsr223-daemon-local-eval-example').projectDir = "$rootDir/libraries/examples/kotlin-jsr223-daemon-local-eval-example" as File def setBuildFile(ProjectDescriptor project) { if (project.projectDir.listFiles().any { file -> file.name == "build.gradle.kts"}) {