summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-09-23 06:00:37 -0700
committerJason Zaugg <jzaugg@gmail.com>2013-09-23 06:00:37 -0700
commite2fec6b28dfd73482945ffab85d9b582d0cb9f17 (patch)
tree369ef35c8cd0196c497695823e92a2ee09ea5788
parent892aa93cf7b74f9bf1c3194930186b33f892fc02 (diff)
parent8e11dcb462273d5b0778ceb06a9cb3e95eb4bfb2 (diff)
downloadscala-e2fec6b28dfd73482945ffab85d9b582d0cb9f17.tar.gz
scala-e2fec6b28dfd73482945ffab85d9b582d0cb9f17.tar.bz2
scala-e2fec6b28dfd73482945ffab85d9b582d0cb9f17.zip
Merge pull request #2976 from retronym/backport/7862v2.10.3-RC3v2.10.3
[nomaster] SI-7862: MANIFEST.MF file for Scala sources
-rw-r--r--build.xml54
1 files changed, 48 insertions, 6 deletions
diff --git a/build.xml b/build.xml
index 3a83aa4a04..8930f0a56c 100644
--- a/build.xml
+++ b/build.xml
@@ -1881,18 +1881,60 @@ TODO:
</copy>
</target>
+ <!--
+ A jar-like task that creates an OSGi source bundle. It adds the required MANIFEST.MF headers that allow
+ Eclipse to match sources with the corresponding binaries.
+ -->
+ <macrodef name="osgi.source.bundle">
+ <attribute name="destfile" description="The jar file name"/>
+ <attribute name="symbolicName" description="The original bundle symbolic name (without .source at the end)"/>
+ <attribute name="bundleName" description="A value for Bundle-Name, usually a textual description"/>
+ <element name="file-sets" description="A sequence of fileset elements to be included in the jar" optional="true" implicit="true"/>
+
+ <sequential>
+ <jar whenmanifestonly="fail" destfile="@{destFile}">
+ <file-sets/>
+ <manifest>
+ <attribute name="Manifest-Version" value="1.0"/>
+ <attribute name="Bundle-Name" value="@{bundleName}"/>
+ <attribute name="Bundle-SymbolicName" value="@{symbolicName}.source"/>
+ <attribute name="Bundle-Version" value="${osgi.version.number}"/>
+ <attribute name="Eclipse-SourceBundle" value="@{symbolicName};version=&quot;${osgi.version.number}&quot;;roots:=&quot;.&quot;" />
+ </manifest>
+ </jar>
+ </sequential>
+ </macrodef>
+
<target name="dist.src" depends="dist.base">
<mkdir dir="${dist.dir}/src"/>
- <jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-library-src.jar">
+ <osgi.source.bundle destfile="${dist.dir}/src/scala-library-src.jar"
+ symbolicName="org.scala-lang.scala-library"
+ bundleName="Scala Library Sources">
<fileset dir="${src.dir}/library"/>
<fileset dir="${src.dir}/continuations/library"/>
- </jar>
- <jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-reflect-src.jar" basedir="${src.dir}/reflect"/>
- <jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-swing-src.jar" basedir="${src.dir}/swing"/>
- <jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-compiler-src.jar" basedir="${src.dir}/compiler"/>
+ </osgi.source.bundle>
+ <osgi.source.bundle destfile="${dist.dir}/src/scala-reflect-src.jar"
+ symbolicName="org.scala-lang.scala-reflect"
+ bundleName="Scala Reflect Sources">
+ <fileset dir="${src.dir}/reflect"/>
+ </osgi.source.bundle>
+ <osgi.source.bundle destfile="${dist.dir}/src/scala-swing-src.jar"
+ symbolicName="org.scala-lang.scala-swing"
+ bundleName="Scala Swing Sources">
+ <fileset dir="${src.dir}/swing"/>
+ </osgi.source.bundle>
+ <osgi.source.bundle destfile="${dist.dir}/src/scala-compiler-src.jar"
+ symbolicName="org.scala-lang.scala-compiler"
+ bundleName="Scala Compiler Sources">
+ <fileset dir="${src.dir}/compiler"/>
+ </osgi.source.bundle>
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/fjbg-src.jar" basedir="${src.dir}/fjbg"/>
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/msil-src.jar" basedir="${src.dir}/msil"/>
- <jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-actors-src.jar" basedir="${src.dir}/actors"/>
+ <osgi.source.bundle destfile="${dist.dir}/src/scala-actors-src.jar"
+ symbolicName="org.scala-lang.scala-actors"
+ bundleName="Scala Actors Sources">
+ <fileset dir="${src.dir}/actors"/>
+ </osgi.source.bundle>
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scalap-src.jar" basedir="${src.dir}/scalap"/>
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-partest-src.jar" basedir="${src.dir}/partest"/>
</target>