Make jars with JDK/Android SDK annotations empty

- Compiler use them only for getting parameter names and we are OK to drop it
- IDE plugin can use jdkAnnotations from ideaSDK
This commit is contained in:
Denis Zharkov
2015-06-17 14:19:08 +03:00
parent 8013cbe4ef
commit 80a7f79f12
5 changed files with 31 additions and 14 deletions
+18 -2
View File
@@ -600,11 +600,27 @@
</target>
<target name="jdk-annotations">
<copy file="dependencies/annotations/kotlin-jdk-annotations.jar" todir="${kotlin-home}/lib"/>
<jar destfile="${kotlin-home}/lib/kotlin-jdk-annotations.jar">
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.jdk.annotations}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<target name="android-sdk-annotations">
<copy file="dependencies/annotations/kotlin-android-sdk-annotations.jar" todir="${kotlin-home}/lib"/>
<jar destfile="${kotlin-home}/lib/kotlin-android-sdk-annotations.jar">
<manifest>
<attribute name="Built-By" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Vendor" value="${manifest.impl.vendor}"/>
<attribute name="Implementation-Title" value="${manifest.impl.title.kotlin.android.sdk.annotations}"/>
<attribute name="Implementation-Version" value="${build.number}"/>
</manifest>
</jar>
</target>
<macrodef name="new-kotlinc">
@@ -81,7 +81,7 @@ public class JdkAnnotationsValidityTest extends AbstractSdkAnnotationsValidityTe
@Override
protected List<FqName> getClassesToValidate() throws IOException {
return getAffectedClasses("jar://dependencies/annotations/kotlin-jdk-annotations.jar!/");
return getAffectedClasses("jar://dist/kotlinc/lib/kotlin-jdk-annotations.jar!/");
}
static List<FqName> getAffectedClasses(String rootUrl) {
@@ -327,7 +327,7 @@ public class JetTestUtils {
@NotNull
public static File getJdkAnnotationsJar() {
File jdkAnnotations = new File(getHomeDirectory(), "dependencies/annotations/kotlin-jdk-annotations.jar");
File jdkAnnotations = new File(getHomeDirectory(), "dist/kotlinc/lib/kotlin-jdk-annotations.jar");
if (!jdkAnnotations.exists()) {
throw new RuntimeException("Kotlin JDK annotations jar not found; please run 'ant dist' to build it");
}
@@ -336,7 +336,7 @@ public class JetTestUtils {
@NotNull
public static File getAndroidSdkAnnotationsJar() {
File androidSdkAnnotations = new File(getHomeDirectory(), "dependencies/annotations/kotlin-android-sdk-annotations.jar");
File androidSdkAnnotations = new File(getHomeDirectory(), "dist/kotlinc/lib/kotlin-android-sdk-annotations.jar");
if (!androidSdkAnnotations.exists()) {
throw new RuntimeException("Kotlin Android SDK annotations jar not found; please run 'ant dist' to build it");
}
+3
View File
@@ -15,3 +15,6 @@ manifest.impl.title.kotlin.javascript.stdlib=Kotlin JavaScript StdLib
manifest.spec.title.kotlin.javascript.lib=Kotlin JavaScript Lib
manifest.impl.title.kotlin.preloader=Kotlin Preloader
manifest.impl.title.kotlin.jdk.annotations=Kotlin Compiler JDK Annotations
manifest.impl.title.kotlin.android.sdk.annotations=Kotlin Compiler Android SDK Annotations
+7 -9
View File
@@ -859,15 +859,13 @@
</sequential>
</macrodef>
<target name="fetch-annotations">
<mkdir dir="dependencies/annotations"/>
<get
src="https://teamcity.jetbrains.com/guestAuth/repository/download/Kotlin_KAnnotator_InferJdkAnnotations/shipWithKotlin.tcbuildtag/kotlin-jdk-annotations.jar"
dest="dependencies/annotations/kotlin-jdk-annotations.jar" usetimestamp="true"/>
<get
src="https://teamcity.jetbrains.com/guestAuth/repository/download/Kotlin_KAnnotator_InferJdkAnnotations/shipWithKotlin.tcbuildtag/kotlin-android-sdk-annotations.jar"
dest="dependencies/annotations/kotlin-android-sdk-annotations.jar" usetimestamp="true"/>
</target>
<!--
Currently we use empty annotations.
Future options are:
- Drop the target when will be sure that custom annotations are unneeded
- Fill the target with downloading correct annotations
-->
<target name="fetch-annotations"/>
<target name="get_android_studio">
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${basedir}/dependencies/ant-contrib.jar"/>