diff options
author | Alexandra Dima <alexandra.dima@jetbrains.com> | 2019-07-22 14:27:27 +0200 |
---|---|---|
committer | Samvel Abrahamyan <samvel1024@gmail.com> | 2019-10-12 14:33:07 +0200 |
commit | 670698881ffbf632013b00dcd9340ff66c6024eb (patch) | |
tree | ca2aebb33a0f6a92285e0d71e53da0391d4426fa | |
parent | 5a49a273cf86b58b18395edd05f57c7c209f3fe7 (diff) | |
download | mill-670698881ffbf632013b00dcd9340ff66c6024eb.tar.gz mill-670698881ffbf632013b00dcd9340ff66c6024eb.tar.bz2 mill-670698881ffbf632013b00dcd9340ff66c6024eb.zip |
Modified the construction of the string ids for each BuildTargetIdentifier as there were collisions in case of cross modules. Also fixed bug in the clean cache method. Now, the command is using the rendering of millModuleSegments rather than the module name function.
-rw-r--r-- | contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala | 2 | ||||
-rw-r--r-- | contrib/bsp/src/mill/contrib/bsp/ModuleUtils.scala | 14 |
2 files changed, 9 insertions, 7 deletions
diff --git a/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala b/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala index 1666ed60..9c74f2f0 100644 --- a/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala +++ b/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala @@ -405,7 +405,7 @@ class MillBuildServer(evaluator: Evaluator, var cleaned = true for (targetId <- cleanCacheParams.getTargets.asScala) { val module = targetIdToModule(targetId) - val process = Runtime.getRuntime.exec(s"mill clean ${ModuleUtils.moduleName(module.millModuleSegments)}.compile") + val process = Runtime.getRuntime.exec(s"mill clean ${module.millModuleSegments.render}.compile") val processIn = process.getInputStream val processErr = process.getErrorStream diff --git a/contrib/bsp/src/mill/contrib/bsp/ModuleUtils.scala b/contrib/bsp/src/mill/contrib/bsp/ModuleUtils.scala index 36415c5f..d593bceb 100644 --- a/contrib/bsp/src/mill/contrib/bsp/ModuleUtils.scala +++ b/contrib/bsp/src/mill/contrib/bsp/ModuleUtils.scala @@ -14,7 +14,7 @@ import mill.eval.Evaluator import mill.scalajslib.ScalaJSModule import mill.scalalib.api.Util import mill.scalanativelib._ -import mill.scalalib.{GenIdea, GenIdeaImpl, JavaModule, ScalaModule, TestModule} +import mill.scalalib.{CrossModuleBase, GenIdea, GenIdeaImpl, JavaModule, ScalaModule, TestModule} import mill.util.DummyLogger import os.Path @@ -36,11 +36,11 @@ object ModuleUtils { supportedLanguages: List[String]): Predef.Map[JavaModule, BuildTarget] = { val moduleIdMap = getModuleTargetIdMap(modules, evaluator) - var moduleToTarget = Predef.Map[JavaModule, BuildTarget]() + var moduleToTarget = Map.empty[JavaModule, BuildTarget] for ( module <- modules ) { if (module == rootModule) { - moduleToTarget ++= Map(module -> getRootTarget(module, evaluator)) + moduleToTarget ++= Map(module -> getRootTarget(module, evaluator, moduleIdMap(module))) } else { val dataBuildTarget = computeScalaBuildTarget(module, evaluator) val capabilities = getModuleCapabilities(module, evaluator) @@ -87,10 +87,10 @@ object ModuleUtils { } } - def getRootTarget(rootModule: JavaModule, evaluator: Evaluator): BuildTarget = { + def getRootTarget(rootModule: JavaModule, evaluator: Evaluator, targetId: BuildTargetIdentifier): BuildTarget = { val rootTarget = new BuildTarget( - new BuildTargetIdentifier(rootModule.millSourcePath.toNIO.toAbsolutePath.toUri.toString), + targetId, List.empty[String].asJava, List.empty[String].asJava, List.empty[BuildTargetIdentifier].asJava, @@ -173,8 +173,10 @@ object ModuleUtils { var moduleToTarget = Map[JavaModule, BuildTargetIdentifier]() for ( module <- modules ) { + moduleToTarget ++= Map(module -> new BuildTargetIdentifier( - module.intellijModulePath.toNIO.toAbsolutePath.toUri.toString + (module.millOuterCtx.millSourcePath / os.RelPath(moduleName(module.millModuleSegments))). + toNIO.toAbsolutePath.toUri.toString )) } |