From 4645fc4b7bf6bc5ad8037161a1b8c7513af87a43 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sat, 25 Mar 2017 08:57:26 +0300 Subject: [PATCH] Build reflection classes with gradle --- .../impl/PropertyDescriptorImpl.java | 1 + libraries/build.gradle | 3 +- libraries/settings.gradle | 4 +- libraries/stdlib/build.gradle | 1 + libraries/tools/kotlin-reflect/build.gradle | 47 +++++++++++++++++-- 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java index 04d4a5bf2b2..ab68cac1289 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/impl/PropertyDescriptorImpl.java @@ -33,6 +33,7 @@ import java.util.List; import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt.getBuiltIns; +@SuppressWarnings("deprecation") public class PropertyDescriptorImpl extends VariableDescriptorWithInitializerImpl implements PropertyDescriptor { private final Modality modality; private Visibility visibility; diff --git a/libraries/build.gradle b/libraries/build.gradle index edf2ecda098..45302d49c09 100644 --- a/libraries/build.gradle +++ b/libraries/build.gradle @@ -58,7 +58,8 @@ subprojects { configure(subprojects.findAll {it.name in [ 'kotlin-runtime', 'kotlin-script-runtime', 'kotlin-stdlib', 'kotlin-stdlib-jre7', 'kotlin-stdlib-jre8', - 'kotlin-test-junit']}) { + 'kotlin-test-junit', + 'kotlin-reflect']}) { apply plugin: 'kotlin' diff --git a/libraries/settings.gradle b/libraries/settings.gradle index f69d7111602..531aa5b995f 100644 --- a/libraries/settings.gradle +++ b/libraries/settings.gradle @@ -13,7 +13,7 @@ include ':kotlin-stdlib-jre7' include ':kotlin-stdlib-jre8' include ':tools:binary-compatibility-validator' include ':tools:kotlin-stdlib-gen' -//include ':kotlin-reflect' +include ':kotlin-reflect' //include ':kotlin-compiler' //include ':kotlin-compiler-embeddable' @@ -64,7 +64,7 @@ project(':kotlin-stdlib').projectDir = "$rootDir/stdlib" as File project(':kotlin-stdlib-js').projectDir = "$rootDir/stdlib/js" as File project(':kotlin-stdlib-jre7').projectDir = "$rootDir/stdlib/jre7" as File project(':kotlin-stdlib-jre8').projectDir = "$rootDir/stdlib/jre8" as File -//project(':kotlin-reflect').projectDir = "$rootDir/tools/kotlin-reflect" as File +project(':kotlin-reflect').projectDir = "$rootDir/tools/kotlin-reflect" as File //project(':kotlin-compiler').projectDir = "$rootDir/tools/kotlin-compiler" as File //project(':kotlin-compiler-embeddable').projectDir = "$rootDir/tools/kotlin-compiler-embeddable" as File diff --git a/libraries/stdlib/build.gradle b/libraries/stdlib/build.gradle index 3e80edf269e..14d5c3ef6b5 100644 --- a/libraries/stdlib/build.gradle +++ b/libraries/stdlib/build.gradle @@ -27,6 +27,7 @@ sourceSets { dependencies { builtinsCompile group: 'org.jetbrains', name: 'annotations', version:'13.0' + compile group: 'org.jetbrains', name: 'annotations', version:'13.0' compile sourceSets.builtins.output testCompile project(':kotlin-test:kotlin-test-junit') diff --git a/libraries/tools/kotlin-reflect/build.gradle b/libraries/tools/kotlin-reflect/build.gradle index eba94f68d72..35f0b88a954 100644 --- a/libraries/tools/kotlin-reflect/build.gradle +++ b/libraries/tools/kotlin-reflect/build.gradle @@ -1,9 +1,48 @@ +description = 'Kotlin Full Reflection Library' -description = 'Kotlin reflect' +def core = "${rootDir}/../core" +def depDir = "${rootDir}/../dependencies" -artifacts { - archives file: file("${rootDir}/../dist/kotlinc/lib/kotlin-reflect.jar"), name: project.name, type: 'jar' - archives file: file("${rootDir}/../dist/kotlin-reflect-sources-for-maven.jar"), name: project.name, classifier: 'sources', type: 'jar' +sourceSets { + annotations { + java { + srcDir "${core}/runtime.jvm/src" + include "**/Mutable.java" + include "**/ReadOnly.java" + } + } + reflectMain { + java { + source annotations.java + + srcDir "${core}/descriptor.loader.java/src" + srcDir "${core}/descriptors/src" + srcDir "${core}/descriptors.runtime/src" + srcDir "${core}/deserialization/src" + srcDir "${core}/util.runtime/src" + + srcDir "${core}/reflection.jvm/src" + } + } +} + +dependencies { + reflectMainCompile project(':kotlin-stdlib') + reflectMainCompile 'javax.inject:javax.inject:1' + reflectMainCompile files("${depDir}/protobuf-2.6.1-lite.jar") } +compileReflectMainJava { + // options.compilerArgs.addAll(["-Xlint:unchecked"]) +} + +compileReflectMainKotlin { + kotlinOptions { + freeCompilerArgs = ["-version", + "-Xallow-kotlin-package", + "-Xdump-declarations-to", "${buildDir}/reflect-declarations.json"] + } +} + +kotlin.experimental.coroutines "enable" \ No newline at end of file