@@ -1881,18 +1881,60 @@ TODO:
1881
1881
</copy >
1882
1882
</target >
1883
1883
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="${ osgi.version.number } ";roots:="."" />
1903
+ </manifest >
1904
+ </jar >
1905
+ </sequential >
1906
+ </macrodef >
1907
+
1884
1908
<target name =" dist.src" depends =" dist.base" >
1885
1909
<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" >
1887
1913
<fileset dir =" ${ src.dir } /library" />
1888
1914
<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>
1893
1931
<jar whenmanifestonly =" fail" destfile =" ${ dist.dir } /src/fjbg-src.jar" basedir =" ${ src.dir } /fjbg" />
1894
1932
<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>
1896
1938
<jar whenmanifestonly =" fail" destfile =" ${ dist.dir } /src/scalap-src.jar" basedir =" ${ src.dir } /scalap" />
1897
1939
<jar whenmanifestonly =" fail" destfile =" ${ dist.dir } /src/scala-partest-src.jar" basedir =" ${ src.dir } /partest" />
1898
1940
</target >
0 commit comments