diff options
Diffstat (limited to 'project')
-rw-r--r-- | project/Build.scala | 40 | ||||
-rw-r--r-- | project/Layers.scala | 14 | ||||
-rw-r--r-- | project/Packaging.scala | 4 | ||||
-rw-r--r-- | project/Partest.scala | 3 | ||||
-rw-r--r-- | project/ShaResolve.scala | 1 | ||||
-rw-r--r-- | project/Testing.scala | 10 | ||||
-rw-r--r-- | project/project/Build.scala | 2 |
7 files changed, 34 insertions, 40 deletions
diff --git a/project/Build.scala b/project/Build.scala index a50a572d54..efa8a7a038 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -11,7 +11,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { override lazy val settings = super.settings ++ Versions.settings ++ Seq( autoScalaLibrary := false, resolvers += Resolver.url( - "Typesafe nightlies", + "Typesafe nightlies", url("https://typesafe.artifactoryonline.com/typesafe/ivy-snapshots/") )(Resolver.ivyStylePatterns), resolvers ++= Seq( @@ -21,14 +21,14 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { organization := "org.scala-lang", version <<= Versions.mavenVersion, pomExtra := epflPomExtra - ) + ) // Collections of projects to run 'compile' on. - lazy val compiledProjects = Seq(quickLib, quickComp, continuationsLibrary, actors, swing, forkjoin, fjbg) + lazy val compiledProjects = Seq(quickLib, quickComp, continuationsLibrary, actors, swing, forkjoin) // Collection of projects to 'package' and 'publish' together. lazy val packagedBinaryProjects = Seq(scalaLibrary, scalaCompiler, swing, actors, continuationsPlugin, jline, scalap) lazy val partestRunProjects = Seq(testsuite, continuationsTestsuite) - + private def epflPomExtra = ( <xml:group> <inceptionYear>2002</inceptionYear> @@ -47,7 +47,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { </issueManagement> </xml:group> ) - + // Settings used to make sure publishing goes smoothly. def publishSettings: Seq[Setting[_]] = Seq( ivyScala ~= ((is: Option[IvyScala]) => is.map(_.copy(checkExplicit = false))), @@ -82,7 +82,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { makeExplodedDist <<= (makeExplodedDist in scaladist).identity, // Note: We override unmanagedSources so that ~ compile will look at all these sources, then run our aggregated compile... unmanagedSourceDirectories in Compile <<= baseDirectory apply (_ / "src") apply { dir => - Seq("library/scala","actors","compiler","fjbg","swing","continuations/library","forkjoin") map (dir / _) + Seq("library/scala","actors","compiler","swing","continuations/library","forkjoin") map (dir / _) }, // TODO - Make exported products == makeDist so we can use this when creating a *real* distribution. commands += Release.pushStarr @@ -91,7 +91,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { lazy val aaa_root = Project("scala", file(".")) settings(projectSettings: _*) settings(ShaResolve.settings: _*) // External dependencies used for various projects - lazy val externalDeps: Setting[_] = libraryDependencies <<= (sbtVersion)(v => + lazy val externalDeps: Setting[_] = libraryDependencies <<= (sbtVersion)(v => Seq( "org.apache.ant" % "ant" % "1.8.2", "org.scala-sbt" % "compiler-interface" % v % "provided" @@ -132,9 +132,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { // Jline nested project. Compile this sucker once and be done. lazy val jline = Project("jline", file("src/jline")) - // Fast Java Bytecode Generator (nested in every scala-compiler.jar) - lazy val fjbg = Project("fjbg", file(".")) settings(settingOverrides : _*) - // Our wrapped version of msil. + // Our wrapped version of asm. lazy val asm = Project("asm", file(".")) settings(settingOverrides : _*) // Forkjoin backport lazy val forkjoin = Project("forkjoin", file(".")) settings(settingOverrides : _*) @@ -175,9 +173,9 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { // -------------------------------------------------------------- // Projects dependent on layered compilation (quick) // -------------------------------------------------------------- - def addCheaterDependency(projectName: String): Setting[_] = - pomPostProcess <<= (version, organization, pomPostProcess) apply { (v,o,k) => - val dependency: scala.xml.Node = + def addCheaterDependency(projectName: String): Setting[_] = + pomPostProcess <<= (version, organization, pomPostProcess) apply { (v,o,k) => + val dependency: scala.xml.Node = <dependency> <groupId>{o}</groupId> <artifactid>{projectName}</artifactid> @@ -193,10 +191,10 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { case n: scala.xml.Elem if n.label == "dependencies" => n } isEmpty) // TODO - Keep namespace on project... - k andThen { + k andThen { case n @ <project>{ nested@_*}</project> if hasDependencies(n) => <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">{nested}<dependencies>{dependency}</dependencies></project> - case <project>{ nested@_*}</project> => + case <project>{ nested@_*}</project> => <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">{ nested map fixDependencies }</project> } } @@ -205,7 +203,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { lazy val dependentProjectSettings = settingOverrides ++ Seq(quickScalaInstance, quickScalaLibraryDependency, addCheaterDependency("scala-library")) lazy val actors = Project("scala-actors", file(".")) settings(dependentProjectSettings:_*) dependsOn(forkjoin % "provided") lazy val swing = Project("scala-swing", file(".")) settings(dependentProjectSettings:_*) dependsOn(actors % "provided") - // This project will generate man pages (in man1 and html) for scala. + // This project will generate man pages (in man1 and html) for scala. lazy val manmakerSettings: Seq[Setting[_]] = dependentProjectSettings :+ externalDeps lazy val manmaker = Project("manual", file(".")) settings(manmakerSettings:_*) @@ -234,7 +232,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { lazy val continuationsPlugin = Project("continuations-plugin", file(".")) settings(continuationsPluginSettings:_*) lazy val continuationsLibrarySettings = dependentProjectSettings ++ Seq( scalaSource in Compile <<= baseDirectory(_ / "src/continuations/library/"), - scalacOptions in Compile <++= (exportedProducts in Compile in continuationsPlugin) map { + scalacOptions in Compile <++= (exportedProducts in Compile in continuationsPlugin) map { case Seq(cpDir) => Seq("-Xplugin-require:continuations", "-P:continuations:enable", "-Xplugin:"+cpDir.data.getAbsolutePath) } ) @@ -283,7 +281,7 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { // -------------------------------------------------------------- // Real Compiler Artifact // -------------------------------------------------------------- - lazy val packageScalaBinTask = Seq(quickComp, fjbg, asm).map(p => products in p in Compile).join.map(_.flatten).map(productTaskToMapping) + lazy val packageScalaBinTask = Seq(quickComp, asm).map(p => products in p in Compile).join.map(_.flatten).map(productTaskToMapping) lazy val scalaBinArtifactSettings : Seq[Setting[_]] = inConfig(Compile)(Defaults.packageTasks(packageBin, packageScalaBinTask)) ++ Seq( name := "scala-compiler", crossPaths := false, @@ -297,11 +295,11 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { lazy val scalaCompiler = Project("scala-compiler", file(".")) settings(publishSettings:_*) settings(scalaBinArtifactSettings:_*) dependsOn(scalaReflect) lazy val fullQuickScalaReference = makeScalaReference("pack", scalaLibrary, scalaReflect, scalaCompiler) - + // -------------------------------------------------------------- // Generating Documentation. // -------------------------------------------------------------- - + // TODO - Migrate this into the dist project. // Scaladocs lazy val documentationSettings: Seq[Setting[_]] = dependentProjectSettings ++ Seq( @@ -331,6 +329,6 @@ object ScalaBuild extends Build with Layers with Packaging with Testing { lazy val documentation = ( Project("documentation", file(".")) settings (documentationSettings: _*) - dependsOn(quickLib, quickComp, actors, fjbg, forkjoin, swing, continuationsLibrary) + dependsOn(quickLib, quickComp, actors, forkjoin, swing, continuationsLibrary) ) } diff --git a/project/Layers.scala b/project/Layers.scala index 35cc79c130..6c939d0ff7 100644 --- a/project/Layers.scala +++ b/project/Layers.scala @@ -13,8 +13,6 @@ trait Layers extends Build { def jline: Project /** Reference to forkjoin library */ def forkjoin: Project - /** Reference to Fast-Java-Bytecode-Generator library */ - def fjbg: Project /** Reference to the ASM wrapped project. */ def asm: Project /** A setting that adds some external dependencies. */ @@ -23,7 +21,7 @@ trait Layers extends Build { def aaa_root: Project /** Creates a reference Scala version that can be used to build other projects. This takes in the raw - * library, compiler and fjbg libraries as well as a string representing the layer name (used for compiling the compile-interface). + * library, compiler as well as a string representing the layer name (used for compiling the compile-interface). */ def makeScalaReference(layer: String, library: Project, reflect: Project, compiler: Project) = scalaInstance <<= (appConfiguration in library, @@ -31,10 +29,9 @@ trait Layers extends Build { (exportedProducts in library in Compile), (exportedProducts in reflect in Compile), (exportedProducts in compiler in Compile), - (exportedProducts in fjbg in Compile), (fullClasspath in jline in Runtime), (exportedProducts in asm in Runtime)) map { - (app, version: String, lib: Classpath, reflect: Classpath, comp: Classpath, fjbg: Classpath, jline: Classpath, asm: Classpath) => + (app, version: String, lib: Classpath, reflect: Classpath, comp: Classpath, jline: Classpath, asm: Classpath) => val launcher = app.provider.scalaProvider.launcher (lib,comp) match { case (Seq(libraryJar), Seq(compilerJar)) => @@ -43,14 +40,14 @@ trait Layers extends Build { libraryJar.data, compilerJar.data, launcher, - ((fjbg.files ++ jline.files ++ asm.files ++ reflect.files):_*)) + ((jline.files ++ asm.files ++ reflect.files):_*)) case _ => error("Cannot build a ScalaReference with more than one classpath element") } } /** Creates a "layer" of Scala compilation. That is, this will build the next version of Scala from a previous version. * Returns the library project and compiler project from the next layer. - * Note: The library and compiler are not *complete* in the sense that they are missing things like "actors" and "fjbg". + * Note: The library and compiler are not *complete* in the sense that they are missing things like "actors". */ def makeLayer(layer: String, referenceScala: Setting[Task[ScalaInstance]], autoLock: Boolean = false) : (Project, Project, Project) = { val autoLockSettings: Seq[Setting[_]] = @@ -96,7 +93,6 @@ trait Layers extends Build { version := layer, scalaSource in Compile <<= (baseDirectory) apply (_ / "src" / "compiler"), resourceDirectory in Compile <<= baseDirectory apply (_ / "src" / "compiler"), - unmanagedSourceDirectories in Compile <+= (baseDirectory) apply (_ / "src" / "msil"), defaultExcludes := ("tests"), defaultExcludes in unmanagedResources := "*.scala", resourceGenerators in Compile <+= (resourceManaged, Versions.scalaVersions, skip in Compile, streams) map Versions.generateVersionPropertiesFile("compiler.properties"), @@ -108,7 +104,7 @@ trait Layers extends Build { dirs.descendentsExcept( ("*.xml" | "*.html" | "*.gif" | "*.png" | "*.js" | "*.css" | "*.tmpl" | "*.swf" | "*.properties" | "*.txt"),"*.scala").get }, // TODO - Use depends on *and* SBT's magic dependency mechanisms... - unmanagedClasspath in Compile <<= Seq(forkjoin, library, reflect, fjbg, jline, asm).map(exportedProducts in Compile in _).join.map(_.flatten), + unmanagedClasspath in Compile <<= Seq(forkjoin, library, reflect, jline, asm).map(exportedProducts in Compile in _).join.map(_.flatten), externalDeps, referenceScala ) diff --git a/project/Packaging.scala b/project/Packaging.scala index eb4e69f99e..b0060283ac 100644 --- a/project/Packaging.scala +++ b/project/Packaging.scala @@ -19,12 +19,12 @@ trait Packaging { self: ScalaBuild.type => genBin <<= genBinTask(genBinRunner, binDir, fullClasspath in Runtime, false), binDir in genBinQuick <<= baseDirectory apply (_ / "target" / "bin"), // Configure the classpath this way to avoid having .jar files and previous layers on the classpath. - fullClasspath in Runtime in genBinQuick <<= Seq(quickComp,quickLib,scalap,actors,swing,fjbg,jline,forkjoin).map(classDirectory in Compile in _).join.map(Attributed.blankSeq), + fullClasspath in Runtime in genBinQuick <<= Seq(quickComp,quickLib,scalap,actors,swing,jline,forkjoin).map(classDirectory in Compile in _).join.map(Attributed.blankSeq), fullClasspath in Runtime in genBinQuick <++= (fullClasspath in Compile in jline), genBinQuick <<= genBinTask(genBinRunner, binDir in genBinQuick, fullClasspath in Runtime in genBinQuick, true), runManmakerMan <<= runManmakerTask(fullClasspath in Runtime in manmaker, runner in manmaker, "scala.tools.docutil.EmitManPage", "man1", ".1"), runManmakerHtml <<= runManmakerTask(fullClasspath in Runtime in manmaker, runner in manmaker, "scala.tools.docutil.EmitHtml", "doc", ".html"), - // TODO - We could *really* clean this up in many ways. Let's look into making a a Seq of "direct jars" (scalaLibrary, scalaCompiler, jline, scalap) + // TODO - We could *really* clean this up in many ways. Let's look into making a Seq of "direct jars" (scalaLibrary, scalaCompiler, jline, scalap) // a seq of "plugin jars" (continuationsPlugin) and "binaries" (genBin) and "documentation" mappings (genBin) that this can aggregate. // really need to figure out a better way to pull jline + jansi. makeDistMappings <<= (genBin, diff --git a/project/Partest.scala b/project/Partest.scala index fbb0a2a980..2ea41ba80b 100644 --- a/project/Partest.scala +++ b/project/Partest.scala @@ -33,11 +33,10 @@ object partest { // What's fun here is that we want "*.scala" files *and* directories in the base directory... def partestResources(base: File, testType: String): PathFinder = testType match { case "res" => base ** "*.res" - case "buildmanager" => base * "*" // TODO - Only allow directories that have "*.scala" children... case _ => base * "*" filter { f => !f.getName.endsWith(".obj") && (f.isDirectory || f.getName.endsWith(".scala")) } } - lazy val partestTestTypes = Seq("run", "jvm", "pos", "neg", "buildmanager", "res", "shootout", "scalap", "specialized", "presentation", "scalacheck") + lazy val partestTestTypes = Seq("run", "jvm", "pos", "neg", "res", "shootout", "scalap", "specialized", "presentation", "scalacheck") // TODO - Figure out how to specify only a subset of resources... def partestTestsTask(testDirs: ScopedSetting[Map[String,File]]): Project.Initialize[Task[Map[String, Seq[File]]]] = diff --git a/project/ShaResolve.scala b/project/ShaResolve.scala index cea2b2d6cc..e5b25a29cf 100644 --- a/project/ShaResolve.scala +++ b/project/ShaResolve.scala @@ -105,6 +105,7 @@ object ShaResolve { def parseShaFile(file: File): (File, String) = IO.read(file).split("\\s") match { case Array(sha, filename) if filename.startsWith("?") => (new File(file.getParentFile, filename.drop(1)), sha) + case Array(sha, filename) if filename.startsWith("*") => (new File(file.getParentFile, filename.drop(1)), sha) case Array(sha, filename) => (new File(file.getParentFile, filename), sha) case _ => error(file.getAbsolutePath + " is an invalid sha file") } diff --git a/project/Testing.scala b/project/Testing.scala index 5de72116a3..5b4135a31a 100644 --- a/project/Testing.scala +++ b/project/Testing.scala @@ -17,7 +17,7 @@ trait Testing { self: ScalaBuild.type => autoScalaLibrary := false ) lazy val continuationsTestsuiteSettings: Seq[Setting[_]] = testsuiteSettings ++ Seq( - scalacOptions in Test <++= (exportedProducts in Compile in continuationsPlugin) map { + scalacOptions in Test <++= (exportedProducts in Compile in continuationsPlugin) map { case Seq(cpDir) => Seq("-Xplugin-require:continuations", "-P:continuations:enable", "-Xplugin:"+cpDir.data.getAbsolutePath) }, partestDirs <<= baseDirectory apply { bd => @@ -27,14 +27,14 @@ trait Testing { self: ScalaBuild.type => } ) val testsuite = ( - Project("testsuite", file(".")) + Project("testsuite", file(".")) settings (testsuiteSettings:_*) - dependsOn (scalaLibrary, scalaCompiler, fjbg, partest, scalacheck) + dependsOn (scalaLibrary, scalaCompiler, partest, scalacheck) ) val continuationsTestsuite = ( Project("continuations-testsuite", file(".")) - settings (continuationsTestsuiteSettings:_*) - dependsOn (partest, scalaLibrary, scalaCompiler, fjbg) + settings (continuationsTestsuiteSettings:_*) + dependsOn (partest, scalaLibrary, scalaCompiler) ) } diff --git a/project/project/Build.scala b/project/project/Build.scala index 902e8b0fb3..d3a08b62ba 100644 --- a/project/project/Build.scala +++ b/project/project/Build.scala @@ -3,5 +3,5 @@ object PluginDef extends Build { override def projects = Seq(root) lazy val root = Project("plugins", file(".")) dependsOn(proguard, git) lazy val proguard = uri("git://github.com/jsuereth/xsbt-proguard-plugin.git#sbt-0.12") - lazy val git = uri("git://github.com/sbt/sbt-git-plugin.git#scala-build") + lazy val git = uri("git://github.com/sbt/sbt-git.git#scala-build") } |