Merge pull request #5146 from eed3si9n/wip/bak

Fixes "Could not create directory ...classes.bak"
This commit is contained in:
eugene yokota 2019-10-03 20:41:44 -04:00 committed by GitHub
commit 5f07701b7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 99 additions and 8 deletions

View File

@ -471,13 +471,6 @@ object Defaults extends BuildCommon {
// This is included into JvmPlugin.projectSettings
def compileBase = inTask(console)(compilersSetting :: Nil) ++ compileBaseGlobal ++ Seq(
incOptions := incOptions.value
.withClassfileManagerType(
Option(
TransactionalManagerType
.of(crossTarget.value / "classes.bak", sbt.util.Logger.Null): ClassFileManagerType
).toOptional
),
scalaInstance := scalaInstanceTask.value,
crossVersion := (if (crossPaths.value) CrossVersion.binary else CrossVersion.disabled),
sbtBinaryVersion in pluginCrossBuild := binarySbtVersion(
@ -657,7 +650,20 @@ object Defaults extends BuildCommon {
prev + (version -> (dependencyClasspathFiles / outputFileStamps).value)
},
compileBinaryFileInputs := compileBinaryFileInputs.triggeredBy(compile).value,
incOptions := { incOptions.value.withExternalHooks(externalHooks.value) },
incOptions := {
val old = incOptions.value
old
.withExternalHooks(externalHooks.value)
.withClassfileManagerType(
Option(
TransactionalManagerType
.of( // https://github.com/sbt/sbt/issues/1673
crossTarget.value / s"${prefix(configuration.value.name)}classes.bak",
sbt.util.Logger.Null
): ClassFileManagerType
).toOptional
)
},
compileIncSetup := compileIncSetupTask.value,
console := consoleTask.value,
collectAnalyses := Definition.collectAnalysesTask.map(_ => ()).value,

View File

@ -0,0 +1,45 @@
// https://github.com/sbt/sbt/issues/1673#issuecomment-537327439
val Config_0 = config("config-0").extend(Compile)
val Config_1 = config("config-1").extend(Compile)
val Config_2 = config("config-2").extend(Compile)
val Config_3 = config("config-3").extend(Compile)
val Config_4 = config("config-4").extend(Compile)
val Config_5 = config("config-5").extend(Compile)
val Config_6 = config("config-6").extend(Compile)
val Config_7 = config("config-7").extend(Compile)
val Config_8 = config("config-8").extend(Compile)
val Config_9 = config("config-9").extend(Compile)
val Config_10 = config("config-10").extend(Compile)
val Config_11 = config("config-11").extend(Compile)
val Config_12 = config("config-12").extend(Compile)
val Config_13 = config("config-13").extend(Compile)
val Config_14 = config("config-14").extend(Compile)
val Config_15 = config("config-15").extend(Compile)
val CustomConfigs = List(Config_0, Config_1, Config_2, Config_3, Config_4, Config_5, Config_6, Config_7, Config_8, Config_9, Config_10, Config_11, Config_12, Config_13, Config_14, Config_15)
val t = taskKey[Unit]("")
val p1 = project
.configs(CustomConfigs: _*)
.settings(
t := {
(compile in Config_0).value
(compile in Config_1).value
(compile in Config_2).value
(compile in Config_3).value
(compile in Config_4).value
(compile in Config_5).value
(compile in Config_6).value
(compile in Config_7).value
(compile in Config_8).value
(compile in Config_9).value
(compile in Config_10).value
(compile in Config_11).value
(compile in Config_12).value
(compile in Config_13).value
(compile in Config_14).value
(compile in Config_15).value
}
)
.settings(CustomConfigs.flatMap(c => inConfig(c)(Defaults.testSettings)))

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1,2 @@
class A
object A

View File

@ -0,0 +1 @@
package p1;

View File

@ -0,0 +1,4 @@
package p1
class A
object A

View File

@ -0,0 +1,3 @@
> p1/t;clean;p1/t;clean;p1/t;clean
$ sleep 100
> p1/t;clean;p1/t;clean;p1/t;clean