Fixes compiler-project/macro-config

This commit is contained in:
Eugene Yokota 2017-07-16 14:26:50 -04:00
parent 12ae6e66ff
commit e1dc83cf08
2 changed files with 12 additions and 8 deletions

View File

@ -13,6 +13,8 @@ This is the RC-1 release of sbt 1.0.
- sbt 0.12 style key dependency operators `<<=`, `<+=`, `<++=` are removed. Please [migrate to :=, +=, and ++=](http://www.scala-sbt.org/0.13/docs/Migrating-from-sbt-012x.html#Migrating+simple+expressions). These operators have been sources of confusion for many users, and have long been removed from 0.13 docs, and have been formally deprecated since sbt 0.13.13.
- Zinc 1 drops support for Scala 2.9 and earlier. Scala 2.10 must use 2.10.2 and above. Scala 2.11 must use 2.11.2 and above. (latest patch releases are recommended)
- Many of the case classes are replaced with pseudo case classes generated using Contraband. Migrate `.copy(foo = xxx)` to `withFoo(xxx)`.
- Java classes under the `xsbti.compile` package such as `IncOptions` hides the constructor. Use the factory method `xsbti.compile.Foo.of(...)`.
- `config("tooling")` must be directly assigned to a `val`, like `val Tooling = config("tooling")`. This captures the lhs identifier into the configuration so we can use it from the shell later.
- Changes `publishTo` and `otherResolvers` from SettingKeys to TaskKeys. [#2059][2059]/[#2662][2662] by [@dwijnand][@dwijnand]
- `PathFinder`'s `.***` method is renamed to `.allPaths` method.
- Drops sbt 0.12 style hyphen-separated key names (use `publishLocal` instead of `publish-local`).
@ -37,7 +39,6 @@ This is the RC-1 release of sbt 1.0.
- sbt 1.0 uses `ConfigRef` in places where `String` was used to reference configuration, such as `update.value.configuration(...)`. Pass in `Configuration`, which implicitly converts to `ConfigRef`.
- Changes `sourceArtifactTypes` and `docArtifactTypes` from `Set[String]` to `Seq[String]` settings.
- Renames `ivyScala: IvyScala` to `scalaModuleInfo: ScalaModuleInfo`.
- Java classes under the `xsbti.compile` package such as `IncOptions` hides the constructor. Use the factory method `xsbti.compile.Foo.of(...)`.
The Scala Center is working with Lightbend to provide [an automatic migration tool][sbt-migration-rewrites].

View File

@ -1,24 +1,27 @@
// Adds a "macro" configuration for macro dependencies.
// Defines "macro" configuration.
// By default, this includes the dependencies of the normal sources.
// Drop the `extend(Compile)` to include no dependencies (not even scala-library) by default.
ivyConfigurations += config("macro").hide.extend(Compile)
lazy val Macro = config("macro").hide.extend(Compile)
// Adds a "macro" configuration for macro dependencies.
ivyConfigurations += Macro
// add the compiler as a dependency for src/macro/
libraryDependencies +=
scalaVersion("org.scala-lang" % "scala-compiler" % _ % "macro").value
scalaVersion("org.scala-lang" % "scala-compiler" % _ % Macro).value
// adds standard compile, console, package tasks for src/macro/
inConfig(config("macro"))(Defaults.configSettings)
inConfig(Macro)(Defaults.configSettings)
// puts the compiled macro on the classpath for the main sources
unmanagedClasspath in Compile ++=
(fullClasspath in config("macro")).value
(fullClasspath in Macro).value
// includes sources in src/macro/ in the main source package
mappings in (Compile, packageSrc) ++=
(mappings in (config("macro"), packageSrc)).value
(mappings in (Macro, packageSrc)).value
// Includes classes compiled from src/macro/ in the main binary
// This can be omitted if the classes in src/macro/ aren't used at runtime
mappings in (Compile, packageBin) ++=
(mappings in (config("macro"), packageBin)).value
(mappings in (Macro, packageBin)).value