diff --git a/main/Defaults.scala b/main/Defaults.scala index 535ddf317..6e4b477b2 100755 --- a/main/Defaults.scala +++ b/main/Defaults.scala @@ -70,6 +70,7 @@ object Defaults extends BuildCommon logBuffered :== false, connectInput :== false, cancelable :== false, + sourcesInBase :== true, autoScalaLibrary :== true, onLoad <<= onLoad ?? idFun[State], onUnload <<= (onUnload ?? idFun[State]), @@ -182,8 +183,8 @@ object Defaults extends BuildCommon docDirectory <<= (crossTarget, configuration) { (outDir, conf) => outDir / (prefix(conf.name) + "api") } ) def addBaseSources = Seq( - unmanagedSources <<= (unmanagedSources, baseDirectory, includeFilter in unmanagedSources, excludeFilter in unmanagedSources) map { - (srcs,b,f,excl) => (srcs +++ b * (f -- excl)).get + unmanagedSources <<= (unmanagedSources, baseDirectory, includeFilter in unmanagedSources, excludeFilter in unmanagedSources, sourcesInBase) map { + (srcs,b,f,excl,enable) => if(enable) (srcs +++ b * (f -- excl)).get else srcs } ) diff --git a/main/Keys.scala b/main/Keys.scala index 07ee6e2bb..8979dd75d 100644 --- a/main/Keys.scala +++ b/main/Keys.scala @@ -88,6 +88,7 @@ object Keys val managedSourceDirectories = SettingKey[Seq[File]]("managed-source-directories", "Managed source directories, which contain sources generated by the build.", BSetting) val managedSources = TaskKey[Seq[File]]("managed-sources", "Sources generated by the build.", BTask) val sources = TaskKey[Seq[File]]("sources", "All sources, both managed and unmanaged.", BTask) + val sourcesInBase = SettingKey[Boolean]("sources-in-base", "If true, sources from the project's base directory are included as main sources.") // Filters val includeFilter = SettingKey[FileFilter]("include-filter", "Filter for including sources and resources files from default directories.", CSetting) diff --git a/sbt/src/sbt-test/project/base-sources/A.scala b/sbt/src/sbt-test/project/base-sources/A.scala new file mode 100644 index 000000000..9977a2836 --- /dev/null +++ b/sbt/src/sbt-test/project/base-sources/A.scala @@ -0,0 +1 @@ +invalid diff --git a/sbt/src/sbt-test/project/base-sources/test b/sbt/src/sbt-test/project/base-sources/test new file mode 100644 index 000000000..7a7f2606b --- /dev/null +++ b/sbt/src/sbt-test/project/base-sources/test @@ -0,0 +1,3 @@ +-> compile +> set sourcesInBase := false +> compile