Get rid of module reflection.stub.jvm

Generate K*Function as a supertype for a function reference instead of
K*FunctionImpl; this will allow one binary library to be used with or without
reflection
This commit is contained in:
Alexander Udalov
2015-02-17 18:35:28 +03:00
parent 9c5bcdc72a
commit 0bd5264b5e
6 changed files with 41 additions and 68 deletions
+18 -27
View File
@@ -795,28 +795,17 @@
</new-kotlinc>
</target>
<target name="reflection-stub">
<new-kotlinc output="${output}/classes/reflection-stub">
<src>
<include name="core/reflection.stub.jvm/src"/>
</src>
<class-path>
<pathelement path="${output.relative}/classes/builtins"/>
</class-path>
</new-kotlinc>
</target>
<target name="pack-runtime">
<macrodef name="do-pack-runtime">
<attribute name="reflection-module"/>
<attribute name="jar-name"/>
<attribute name="implementation-title"/>
<element name="reflection-classes" optional="true"/>
<sequential>
<jar destfile="${kotlin-home}/lib/@{jar-name}" duplicate="fail">
<fileset dir="${output}/classes/builtins"/>
<fileset dir="${output}/classes/stdlib"/>
<fileset dir="${output}/classes/@{reflection-module}"/>
<reflection-classes/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
<manifest>
@@ -829,20 +818,20 @@
</sequential>
</macrodef>
<do-pack-runtime reflection-module="reflection"
jar-name="kotlin-runtime.jar"
implementation-title="${manifest.impl.title.kotlin.jvm.runtime}"/>
<do-pack-runtime jar-name="kotlin-runtime.jar" implementation-title="${manifest.impl.title.kotlin.jvm.runtime}">
<reflection-classes>
<fileset dir="${output}/classes/reflection"/>
</reflection-classes>
</do-pack-runtime>
<do-pack-runtime reflection-module="reflection-stub"
jar-name="kotlin-runtime-minimal.jar"
implementation-title="${manifest.impl.title.kotlin.jvm.runtime.minimal}"/>
<do-pack-runtime jar-name="kotlin-runtime-minimal.jar" implementation-title="${manifest.impl.title.kotlin.jvm.runtime.minimal}"/>
</target>
<target name="pack-runtime-sources">
<macrodef name="do-pack-runtime-sources">
<attribute name="reflection-module"/>
<attribute name="jar-name"/>
<attribute name="implementation-title"/>
<element name="reflection-sources" optional="true"/>
<sequential>
<jar destfile="${kotlin-home}/lib/@{jar-name}" duplicate="fail">
@@ -850,7 +839,7 @@
<fileset dir="${basedir}/core/builtins/src" includes="**/*"/>
<fileset dir="${basedir}/core/runtime.jvm/src" includes="**/*"/>
<fileset dir="${basedir}/core/reflection/src" includes="**/*"/>
<fileset dir="${basedir}/core/@{reflection-module}/src" includes="**/*"/>
<reflection-sources/>
<fileset dir="${basedir}/libraries/stdlib/src" includes="**/*"/>
<zipfileset file="${kotlin-home}/build.txt" prefix="META-INF"/>
@@ -864,17 +853,19 @@
</sequential>
</macrodef>
<do-pack-runtime-sources reflection-module="reflection.jvm"
jar-name="kotlin-runtime-sources.jar"
implementation-title="${manifest.impl.title.kotlin.jvm.runtime.sources}"/>
<do-pack-runtime-sources jar-name="kotlin-runtime-sources.jar"
implementation-title="${manifest.impl.title.kotlin.jvm.runtime.sources}">
<reflection-sources>
<fileset dir="${basedir}/core/reflection.jvm/src" includes="**/*"/>
</reflection-sources>
</do-pack-runtime-sources>
<do-pack-runtime-sources reflection-module="reflection.stub.jvm"
jar-name="kotlin-runtime-minimal-sources.jar"
<do-pack-runtime-sources jar-name="kotlin-runtime-minimal-sources.jar"
implementation-title="${manifest.impl.title.kotlin.jvm.runtime.minimal.sources}"/>
</target>
<target name="runtime"
depends="builtins,stdlib,reflection,reflection-stub,pack-runtime,pack-runtime-sources"/>
depends="builtins,stdlib,reflection,pack-runtime,pack-runtime-sources"/>
<target name="dist"
depends="clean,init,prepare-dist,preloader,serialize-builtins,compiler,compiler-sources,ant-tools,jdk-annotations,android-sdk-annotations,runtime,kotlin-js-stdlib,android-compiler-plugin"