Skip to content

Commit 8e11dcb

Browse files
dragosretronym
authored andcommitted
[nomaster] SI-7862: MANIFEST.MF file for Scala sources
In order to be able to use published Scala jars as OSGi bundles in the Eclipse build, Eclipse needs to match sources and binaries. That is done by making source jars *source bundles*. This PR adds the required manifest entries. Nothing else should be affected (file names remain the same). Cherry picked from 655b7d2 Conflicts: build.xml After this commit: ``` % ant -q dist.src % for f in dists/scala-2.10.3-20130921-144112-892aa93cf7/src/*.jar; do \ echo $f \ unzip -p $f META-INF/MANIFEST.MF \ done dists/scala-2.10.3-20130921-144112-892aa93cf7/src/fjbg-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) dists/scala-2.10.3-20130921-144112-892aa93cf7/src/msil-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-actors-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) Bundle-Name: Scala Actors Sources Bundle-SymbolicName: org.scala-lang.scala-actors.source Bundle-Version: 2.10.3.v20130921-144112-892aa93cf7 Eclipse-SourceBundle: org.scala-lang.scala-actors;version="2.10.3.v201 30921-144112-892aa93cf7";roots:="." dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-compiler-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) Bundle-Name: Scala Compiler Sources Bundle-SymbolicName: org.scala-lang.scala-compiler.source Bundle-Version: 2.10.3.v20130921-144112-892aa93cf7 Eclipse-SourceBundle: org.scala-lang.scala-compiler;version="2.10.3.v2 0130921-144112-892aa93cf7";roots:="." dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-library-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) Bundle-Name: Scala Library Sources Bundle-SymbolicName: org.scala-lang.scala-library.source Bundle-Version: 2.10.3.v20130921-144112-892aa93cf7 Eclipse-SourceBundle: org.scala-lang.scala-library;version="2.10.3.v20 130921-144112-892aa93cf7";roots:="." dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-partest-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-reflect-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) Bundle-Name: Scala Reflect Sources Bundle-SymbolicName: org.scala-lang.scala-reflect.source Bundle-Version: 2.10.3.v20130921-144112-892aa93cf7 Eclipse-SourceBundle: org.scala-lang.scala-reflect;version="2.10.3.v20 130921-144112-892aa93cf7";roots:="." dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scala-swing-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) Bundle-Name: Scala Swing Sources Bundle-SymbolicName: org.scala-lang.scala-swing.source Bundle-Version: 2.10.3.v20130921-144112-892aa93cf7 Eclipse-SourceBundle: org.scala-lang.scala-swing;version="2.10.3.v2013 0921-144112-892aa93cf7";roots:="." dists/scala-2.10.3-20130921-144112-892aa93cf7/src/scalap-src.jar Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.6.0_37-b06-434-11M4509 (Apple Inc.) ```
1 parent 892aa93 commit 8e11dcb

File tree

1 file changed

+48
-6
lines changed

1 file changed

+48
-6
lines changed

build.xml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,18 +1881,60 @@ TODO:
18811881
</copy>
18821882
</target>
18831883

1884+
<!--
1885+
A jar-like task that creates an OSGi source bundle. It adds the required MANIFEST.MF headers that allow
1886+
Eclipse to match sources with the corresponding binaries.
1887+
-->
1888+
<macrodef name="osgi.source.bundle">
1889+
<attribute name="destfile" description="The jar file name"/>
1890+
<attribute name="symbolicName" description="The original bundle symbolic name (without .source at the end)"/>
1891+
<attribute name="bundleName" description="A value for Bundle-Name, usually a textual description"/>
1892+
<element name="file-sets" description="A sequence of fileset elements to be included in the jar" optional="true" implicit="true"/>
1893+
1894+
<sequential>
1895+
<jar whenmanifestonly="fail" destfile="@{destFile}">
1896+
<file-sets/>
1897+
<manifest>
1898+
<attribute name="Manifest-Version" value="1.0"/>
1899+
<attribute name="Bundle-Name" value="@{bundleName}"/>
1900+
<attribute name="Bundle-SymbolicName" value="@{symbolicName}.source"/>
1901+
<attribute name="Bundle-Version" value="${osgi.version.number}"/>
1902+
<attribute name="Eclipse-SourceBundle" value="@{symbolicName};version=&quot;${osgi.version.number}&quot;;roots:=&quot;.&quot;" />
1903+
</manifest>
1904+
</jar>
1905+
</sequential>
1906+
</macrodef>
1907+
18841908
<target name="dist.src" depends="dist.base">
18851909
<mkdir dir="${dist.dir}/src"/>
1886-
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-library-src.jar">
1910+
<osgi.source.bundle destfile="${dist.dir}/src/scala-library-src.jar"
1911+
symbolicName="org.scala-lang.scala-library"
1912+
bundleName="Scala Library Sources">
18871913
<fileset dir="${src.dir}/library"/>
18881914
<fileset dir="${src.dir}/continuations/library"/>
1889-
</jar>
1890-
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-reflect-src.jar" basedir="${src.dir}/reflect"/>
1891-
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-swing-src.jar" basedir="${src.dir}/swing"/>
1892-
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-compiler-src.jar" basedir="${src.dir}/compiler"/>
1915+
</osgi.source.bundle>
1916+
<osgi.source.bundle destfile="${dist.dir}/src/scala-reflect-src.jar"
1917+
symbolicName="org.scala-lang.scala-reflect"
1918+
bundleName="Scala Reflect Sources">
1919+
<fileset dir="${src.dir}/reflect"/>
1920+
</osgi.source.bundle>
1921+
<osgi.source.bundle destfile="${dist.dir}/src/scala-swing-src.jar"
1922+
symbolicName="org.scala-lang.scala-swing"
1923+
bundleName="Scala Swing Sources">
1924+
<fileset dir="${src.dir}/swing"/>
1925+
</osgi.source.bundle>
1926+
<osgi.source.bundle destfile="${dist.dir}/src/scala-compiler-src.jar"
1927+
symbolicName="org.scala-lang.scala-compiler"
1928+
bundleName="Scala Compiler Sources">
1929+
<fileset dir="${src.dir}/compiler"/>
1930+
</osgi.source.bundle>
18931931
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/fjbg-src.jar" basedir="${src.dir}/fjbg"/>
18941932
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/msil-src.jar" basedir="${src.dir}/msil"/>
1895-
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-actors-src.jar" basedir="${src.dir}/actors"/>
1933+
<osgi.source.bundle destfile="${dist.dir}/src/scala-actors-src.jar"
1934+
symbolicName="org.scala-lang.scala-actors"
1935+
bundleName="Scala Actors Sources">
1936+
<fileset dir="${src.dir}/actors"/>
1937+
</osgi.source.bundle>
18961938
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scalap-src.jar" basedir="${src.dir}/scalap"/>
18971939
<jar whenmanifestonly="fail" destfile="${dist.dir}/src/scala-partest-src.jar" basedir="${src.dir}/partest"/>
18981940
</target>

0 commit comments

Comments
 (0)