diff --git a/main/src/main/scala/sbt/BuildPaths.scala b/main/src/main/scala/sbt/BuildPaths.scala index ba4219615..064f50107 100644 --- a/main/src/main/scala/sbt/BuildPaths.scala +++ b/main/src/main/scala/sbt/BuildPaths.scala @@ -8,6 +8,7 @@ package sbt import java.io.File +import java.util.Locale import KeyRanks.DSetting import sbt.io.{ GlobFilter, Path } @@ -114,7 +115,9 @@ object BuildPaths { private[this] def defaultDependencyBase(globalBase: File) = globalBase / "dependency" private[this] def defaultGlobalZinc(globalBase: File) = globalBase / "zinc" - def configurationSources(base: File): Seq[File] = (base * (GlobFilter("*.sbt") - ".sbt")).get + def configurationSources(base: File): Seq[File] = + (base * (GlobFilter("*.sbt") - ".sbt")).get + .sortBy(_.getName.toLowerCase(Locale.ENGLISH)) def pluginDirectory(definitionBase: File) = definitionBase / PluginsDirectoryName def evalOutputDirectory(base: File) = outputDirectory(base) / "config-classes" diff --git a/sbt/src/sbt-test/project/setting-order/a.sbt b/sbt/src/sbt-test/project/setting-order/a.sbt new file mode 100644 index 000000000..02cd89214 --- /dev/null +++ b/sbt/src/sbt-test/project/setting-order/a.sbt @@ -0,0 +1 @@ +Compile / scalacOptions += "a" diff --git a/sbt/src/sbt-test/project/setting-order/b.sbt b/sbt/src/sbt-test/project/setting-order/b.sbt new file mode 100644 index 000000000..e2ae0f78a --- /dev/null +++ b/sbt/src/sbt-test/project/setting-order/b.sbt @@ -0,0 +1 @@ +Compile / scalacOptions += "b" diff --git a/sbt/src/sbt-test/project/setting-order/build.sbt b/sbt/src/sbt-test/project/setting-order/build.sbt new file mode 100644 index 000000000..69d74540d --- /dev/null +++ b/sbt/src/sbt-test/project/setting-order/build.sbt @@ -0,0 +1,12 @@ +val check = taskKey[Unit]("") + +lazy val root = (project in file(".")) + .settings( + Compile / scalacOptions += "multi-project", + check := { + val xs = (Compile / scalacOptions).value + assert(xs.toList == List("multi-project", "a", "b", "bare", "c"), s"$xs") + } + ) + +Compile / scalacOptions += "bare" diff --git a/sbt/src/sbt-test/project/setting-order/c.sbt b/sbt/src/sbt-test/project/setting-order/c.sbt new file mode 100644 index 000000000..07a70ce8d --- /dev/null +++ b/sbt/src/sbt-test/project/setting-order/c.sbt @@ -0,0 +1 @@ +Compile / scalacOptions += "c" diff --git a/sbt/src/sbt-test/project/setting-order/test b/sbt/src/sbt-test/project/setting-order/test new file mode 100644 index 000000000..15675b169 --- /dev/null +++ b/sbt/src/sbt-test/project/setting-order/test @@ -0,0 +1 @@ +> check