Skip to content

Rebase 4594 #4597

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 2, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions build-ant-macros.xml
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,9 @@
<!-- overrides the output directory; used when building multiple projects into the same directory-->
<attribute name="srcdir" default="@{project}"/>
<attribute name="java-excludes" default=""/>
<attribute name="mixed" default="NOPE"/>
<sequential>
<local name="mixed.true"/><condition property="mixed.true"><equals arg1="@{mixed}" arg2="true"/></condition>
<!-- TODO: detect zinc anywhere on PATH
use zinc for the quick stage if it's available;
would use it for locker but something is iffy in sbt: get a class cast error on global phase -->
Expand All @@ -220,12 +222,14 @@
<then>
<scalacfork taskname="@{stage}.@{project}" jvmargs="${scalacfork.jvmargs}" compilerpathref="@{with}.compiler.path" destdir="${build-@{stage}.dir}/classes/@{destproject}" srcdir="${src.dir}/@{srcdir}" params="${scalac.args.@{stage}} @{args}">
<include name="**/*.scala"/>
<include name="**/*.java" if="mixed.true"/>
<compilationpath refid="@{stage}.@{project}.build.path"/>
</scalacfork>
</then>
<else>
<scalacfork taskname="@{stage}.@{project}" jvmargs="${scalacfork.jvmargs}" compilerpathref="@{with}.compiler.path" destdir="${build-@{stage}.dir}/classes/@{destproject}" srcdir="${src.dir}/@{srcdir}" srcpath="@{srcpath}" params="${scalac.args.@{stage}} @{args}">
<include name="**/*.scala"/>
<include name="**/*.java" if="mixed.true"/>
<compilationpath refid="@{stage}.@{project}.build.path"/>
</scalacfork>
</else>
Expand Down Expand Up @@ -270,6 +274,7 @@
<attribute name="includes" default="comp.includes"/>
<attribute name="java-excludes" default=""/>
<attribute name="version" default=""/>
<attribute name="mixed" default="NOPE"/>
<!-- non-empty for scaladoc: use @{version}.version.number in property file-->
<sequential>
<staged-uptodate stage="@{stage}" project="@{project}">
Expand All @@ -279,9 +284,18 @@
<do>
<stopwatch name="@{stage}.@{project}.timer"/>
<mkdir dir="${build-@{stage}.dir}/classes/@{project}"/>
<staged-javac stage="@{stage}" project="@{project}" excludes="@{java-excludes}"/>
<!-- always compile with javac for simplicity and regularity; it's cheap -->
<staged-scalac with="@{with}" stage="@{stage}" project="@{project}" srcpath="@{srcpath}" args="@{args}" java-excludes="@{java-excludes}"/>
<if>
<equals arg1="@{mixed}" arg2="true"/>
<then>
<staged-scalac with="@{with}" stage="@{stage}" project="@{project}" srcpath="@{srcpath}" args="@{args}" java-excludes="@{java-excludes}" mixed="@{mixed}"/>
<staged-javac stage="@{stage}" project="@{project}" excludes="@{java-excludes}"/>
</then>
<else>
<staged-javac stage="@{stage}" project="@{project}" excludes="@{java-excludes}"/>
<!-- always compile with javac for simplicity and regularity; it's cheap -->
<staged-scalac with="@{with}" stage="@{stage}" project="@{project}" srcpath="@{srcpath}" args="@{args}" java-excludes="@{java-excludes}"/>
</else>
</if>
<if>
<equals arg1="@{version}" arg2=""/>
<then>
Expand Down Expand Up @@ -474,7 +488,8 @@
<filter token="SCALA_COMPILER_INTERACTIVE_VERSION" value="${scala-compiler-interactive.version.number}"/>
<filter token="XML_VERSION" value="${scala-xml.version.number}" />
<filter token="PARSER_COMBINATORS_VERSION" value="${scala-parser-combinators.version.number}" />
<filter token="SCALA_SWING_VERSION" value="${scala-swing.version.number}" />
<filter token="SCALA_SWING_VERSION" value="${scala-swing.version.osgi}" />
<filter token="SOURCE_JARNAME" value="${@{project}.targetjar}"/>
</filterset>
</copy>
<bnd classpath="${@{project}.jar}" eclipse="false" failok="false" exceptions="true" files="${build-osgi.dir}/${@{project}.name}.bnd" output="${build-osgi.dir}"/>
Expand Down
1 change: 1 addition & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ lazy val library = configureAsSubproject(project)
.settings(generatePropertiesFileSettings: _*)
.settings(
name := "scala-library",
compileOrder := CompileOrder.Mixed, // needed for JFunction classes in scala.runtime.java8
scalacOptions in Compile ++= Seq[String]("-sourcepath", (scalaSource in Compile).value.toString),
// Workaround for a bug in `scaladoc` that it seems to not respect the `-sourcepath` option
// as a result of this bug, the compiler cannot even initialize Definitions without
Expand Down
81 changes: 24 additions & 57 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -265,42 +265,36 @@ TODO:
-->
<if><not><isset property="maven-deps-done"></isset></not><then>
<mkdir dir="${user.home}/.m2/repository"/>

<artifact:remoteRepository id="sonatype-release" url="https://oss.sonatype.org/content/repositories/releases"/>
<artifact:remoteRepository id="sonatype-snapshots" url="https://oss.sonatype.org/content/repositories/snapshots"/>
<artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>

<!-- This task has an issue where if the user directory does not exist, so we create it above. UGH. -->
<artifact:dependencies pathId="extra.tasks.classpath" filesetId="extra.tasks.fileset">
<dependency groupId="biz.aQute" artifactId="bnd" version="1.50.0"/>
<dependency groupId="biz.aQute.bnd" artifactId="biz.aQute.bnd" version="2.4.1"/>
</artifact:dependencies>

<artifact:dependencies pathId="jarjar.classpath">
<dependency groupId="com.googlecode.jarjar" artifactId="jarjar" version="1.3"/>
</artifact:dependencies>

<!-- JUnit -->
<property name="junit.version" value="4.11"/>
<property name="junit.version" value="4.12"/>
<artifact:dependencies pathId="junit.classpath" filesetId="junit.fileset">
<dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
</artifact:dependencies>
<copy-deps project="junit"/>

<!-- Pax runner -->
<property name="pax.exam.version" value="3.5.0"/><!-- Last version which supports Java 6 -->
<property name="osgi.felix.version" value="4.4.0"/>
<property name="osgi.equinox.version" value="3.7.1"/>
<property name="pax.exam.version" value="4.5.0"/>
<property name="osgi.felix.version" value="5.0.1"/>
<property name="osgi.equinox.version" value="3.10.100.v20150521-1310"/>
<artifact:dependencies pathId="pax.exam.classpath" filesetId="pax.exam.fileset">
<dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-container-native" version="${pax.exam.version}">
<exclusion groupId="org.osgi" artifactId="org.osgi.core"/><!-- Avoid dragging in a dependency which requires Java >6 -->
</dependency>
<dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-container-native" version="${pax.exam.version}"/>
<dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-junit4" version="${pax.exam.version}"/>
<dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-link-assembly" version="${pax.exam.version}"/>
<dependency groupId="org.ops4j.pax.url" artifactId="pax-url-aether" version="2.2.0"/>
<dependency groupId="org.ops4j.pax.swissbox" artifactId="pax-swissbox-tracker" version="1.8.0"/>
<dependency groupId="ch.qos.logback" artifactId="logback-core" version="1.1.2"/>
<dependency groupId="ch.qos.logback" artifactId="logback-classic" version="1.1.2"/>
<dependency groupId="org.ops4j.pax.url" artifactId="pax-url-aether" version="2.4.1"/>
<dependency groupId="org.ops4j.pax.swissbox" artifactId="pax-swissbox-tracker" version="1.8.1"/>
<dependency groupId="ch.qos.logback" artifactId="logback-core" version="1.1.3"/>
<dependency groupId="ch.qos.logback" artifactId="logback-classic" version="1.1.3"/>
<dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
<dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.7.12"/>
</artifact:dependencies>
<copy-deps project="pax.exam"/>

Expand All @@ -309,42 +303,12 @@ TODO:
</artifact:dependencies>

<artifact:dependencies pathId="osgi.framework.equinox">
<dependency groupId="org.eclipse.osgi" artifactId="org.eclipse.osgi" version="${osgi.equinox.version}"/>
<dependency groupId="org.eclipse.tycho" artifactId="org.eclipse.osgi" version="${osgi.equinox.version}"/>
</artifact:dependencies>

<artifact:remoteRepository id="sonatype-release" url="https://oss.sonatype.org/content/repositories/releases"/>
<artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>

<!-- scala-java8-compat, used by the experimental -target jvm-1.8 support. -->
<if><isset property="scala-java8-compat.package"/><then>
<property name="scala-java8-compat.version" value="0.5.0"/>
<property name="scala-java8-compat.binary.version" value="2.11"/>
<artifact:dependencies pathId="scala-java8-compat.classpath" filesetId="scala-java8-compat.fileset">
<dependency groupId="org.scala-lang.modules" artifactId="scala-java8-compat_${scala-java8-compat.binary.version}" version="${scala-java8-compat.version}">
<exclusion groupId="org.scala-lang" artifactId="scala-library"/>
</dependency>
</artifact:dependencies>
<property name="scala-java8-compat-classes" value="${build-quick.dir}/scala-java8-compat"/>
<delete dir="${scala-java8-compat-classes}"/>
<unzip dest="${scala-java8-compat-classes}">
<fileset refid="scala-java8-compat.fileset"/>
<patternset>
<include name="**/*.class"/>
</patternset>
</unzip>
<path id="scala-java8-compat.libs">
<pathelement location="${scala-java8-compat-classes}"/>
</path>
<fileset id="scala-java8-compat.fileset" dir="${scala-java8-compat-classes}">
<include name="**/*"/>
</fileset>
</then>
<else>
<path id="scala-java8-compat.libs"/>
<fileset id="scala-java8-compat.fileset" dir="." excludes="**"/>
</else>
</if>

<!-- prepare, for each of the names below, the property "@{name}.cross", set to the
necessary cross suffix (usually something like "_2.11.0-M6". -->
<prepareCross name="scala-xml" />
Expand Down Expand Up @@ -637,18 +601,21 @@ TODO:

<property name="swing.description" value="Scala Swing Library"/>
<property name="swing.package" value="modules."/>
<property name="swing.targetjar" value="scala-swing${scala-swing.cross}-${scala-swing.version.number}.jar"/>
<property name="swing.jar" value="${scala-swing}"/>
<property name="swing.src" value="false"/>
<property name="swing.srcjar" value="${scala-swing-sources}"/>

<property name="parser-combinators.description" value="Scala Parser Combinators Library"/>
<property name="parser-combinators.package" value="modules."/>
<property name="parser-combinators.targetjar" value="scala-parser-combinators${scala-parser-combinators.cross}-${scala-parser-combinators.version.number}.jar"/>
<property name="parser-combinators.jar" value="${scala-parser-combinators}"/>
<property name="parser-combinators.src" value="false"/>
<property name="parser-combinators.srcjar" value="${scala-parser-combinators-sources}"/>

<property name="xml.description" value="Scala XML Library"/>
<property name="xml.package" value="modules."/>
<property name="xml.targetjar" value="scala-xml${scala-xml.cross}-${scala-xml.version.number}.jar"/>
<property name="xml.jar" value="${scala-xml}"/>
<property name="xml.src" value="false"/>
<property name="xml.srcjar" value="${scala-xml-sources}"/>
Expand Down Expand Up @@ -720,7 +687,6 @@ TODO:
<pathelement location="${build-locker.dir}/classes/library"/>
<path refid="forkjoin.classpath"/>
<path refid="aux.libs"/>
<path refid="scala-java8-compat.libs"/>
</path>

<path id="locker.reflect.build.path">
Expand All @@ -742,7 +708,6 @@ TODO:
<pathelement location="${build-quick.dir}/classes/library"/>
<path refid="forkjoin.classpath"/>
<path refid="aux.libs"/>
<path refid="scala-java8-compat.libs"/>
</path>

<path id="quick.reflect.build.path">
Expand Down Expand Up @@ -835,7 +800,6 @@ TODO:
<path id="pack.library.files">
<fileset dir="${build-quick.dir}/classes/library"/>
<fileset dir="${forkjoin-classes}"/>
<fileset refid="scala-java8-compat.fileset"/>
</path>

<path id="pack.repl-jline.files"> <fileset dir="${build-quick.dir}/classes/repl-jline"/> </path>
Expand Down Expand Up @@ -1091,7 +1055,8 @@ TODO:
<condition property="locker.locked"><available file="${build-locker.dir}/locker.locked"/></condition></target>

<target name="locker.lib" depends="locker.start" unless="locker.locked">
<staged-build with="starr" stage="locker" project="library" srcpath="${src.dir}/library" includes="lib.includes"/></target>
<!-- "mixed" needed for JFunction classes in scala.runtime.java8 -->
<staged-build with="starr" stage="locker" project="library" srcpath="${src.dir}/library" includes="lib.includes" mixed="true"/></target>

<target name="locker.reflect" depends="locker.lib" unless="locker.locked">
<staged-build with="starr" stage="locker" project="reflect"/></target>
Expand All @@ -1112,7 +1077,8 @@ TODO:
<target name="quick.start" depends="locker.done"/>

<target name="quick.lib" depends="quick.start">
<staged-build with="locker" stage="quick" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes"/></target>
<!-- "mixed" needed for JFunction classes in scala.runtime.java8 -->
<staged-build with="locker" stage="quick" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes" mixed="true"/></target>

<target name="quick.reflect" depends="quick.lib">
<staged-build with="locker" stage="quick" project="reflect"/> </target>
Expand Down Expand Up @@ -1246,7 +1212,8 @@ TODO:
BOOTSTRAPPING BUILD (STRAP)
============================================================================ -->
<target name="strap.done" depends="pack.done">
<staged-build with="pack" stage="strap" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes"/>
<!-- "mixed" needed for JFunction classes in scala.runtime.java8 -->
<staged-build with="pack" stage="strap" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes" mixed="true"/>
<staged-build with="pack" stage="strap" project="reflect"/>
<staged-build with="pack" stage="strap" project="compiler"/>
</target>
Expand Down Expand Up @@ -1466,9 +1433,9 @@ TODO:
srcdir="${test.junit.src}"
destdir="${test.junit.classes}"
classpathref="test.junit.compiler.build.path"
target="1.6"
source="1.5"
compiler="javac1.6"
target="1.8"
source="1.8"
compiler="javac1.8"
includes="**/*.java"/>
<scalacfork
destdir="${test.junit.classes}"
Expand Down
3 changes: 2 additions & 1 deletion src/build/bnd/scala-compiler-doc.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @SCALA_COMPILER_DOC_VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);@VERSION@}",*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-compiler-interactive.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @SCALA_COMPILER_INTERACTIVE_VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);@VERSION@}",*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-compiler.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ Import-Package: jline.*;resolution:=optional, \
scala.xml.*;version="${range;[====,====];@XML_VERSION@}";resolution:=optional, \
scala.*;version="${range;[==,=+);${ver}}", \
*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-library.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: sun.misc;resolution:=optional, *
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-parser-combinators.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @PARSER_COMBINATORS_VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);@VERSION@}",*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-reflect.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);${ver}}", \
scala.tools.nsc;resolution:=optional;version="${range;[==,=+);${ver}}", \
*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-swing.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @SCALA_SWING_VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);@VERSION@}",*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6,JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
3 changes: 2 additions & 1 deletion src/build/bnd/scala-xml.bnd
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ver: @XML_VERSION@
Bundle-Version: ${ver}
Export-Package: *;version=${ver}
Import-Package: scala.*;version="${range;[==,=+);@VERSION@}",*
Bundle-RequiredExecutionEnvironment: JavaSE-1.6, JavaSE-1.7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Include-Resource: @@SOURCE_JARNAME@
Loading