@@ -12,6 +12,7 @@ import dependency.parser.DependencyParser
12
12
13
13
import java .io .{File , InputStream }
14
14
import java .nio .file .Paths
15
+ import java .util .concurrent .atomic .AtomicBoolean
15
16
16
17
import scala .build .EitherCps .{either , value }
17
18
import scala .build .Ops .EitherOptOps
@@ -324,6 +325,7 @@ final case class SharedOptions(
324
325
s """ [ ${Console .YELLOW }warn ${Console .RESET }] Jars with the ${ScalaCliConsole .GRAY }*-sources.jar ${Console .RESET } name suffix are assumed to be source jars.
325
326
|The following jars were assumed to be source jars and will be treated as such: $assumedSourceJarsString""" .stripMargin
326
327
)
328
+ val resolvedToolkitDependency = SharedOptions .resolveToolkitDependency(withToolkit, logger)
327
329
bo.BuildOptions (
328
330
sourceGeneratorOptions = bo.SourceGeneratorOptions (
329
331
useBuildInfo = sourceGenerator.useBuildInfo,
@@ -394,13 +396,13 @@ final case class SharedOptions(
394
396
SharedOptions .parseDependencies(
395
397
dependencies.dependency.map(Positioned .none),
396
398
ignoreErrors
397
- ) ++ SharedOptions .resolveToolkitDependency(withToolkit, logger)
399
+ ) ++ resolvedToolkitDependency
398
400
),
399
401
extraCompileOnlyDependencies = ShadowingSeq .from(
400
402
SharedOptions .parseDependencies(
401
403
dependencies.compileOnlyDependency.map(Positioned .none),
402
404
ignoreErrors
403
- ) ++ SharedOptions .resolveToolkitDependency(withToolkit, logger)
405
+ ) ++ resolvedToolkitDependency
404
406
)
405
407
),
406
408
internal = bo.InternalOptions (
@@ -720,14 +722,18 @@ object SharedOptions {
720
722
}
721
723
}
722
724
725
+ // TODO: remove this state after resolving https://github.com/VirtusLab/scala-cli/issues/2658
726
+ private val loggedDeprecatedToolkitWarning : AtomicBoolean = AtomicBoolean (false )
723
727
private def resolveToolkitDependency (
724
728
toolkitVersion : Option [String ],
725
729
logger : Logger
726
730
): Seq [Positioned [AnyDependency ]] = {
727
731
if (
728
- toolkitVersion.contains(" latest" )
732
+ ( toolkitVersion.contains(" latest" )
729
733
|| toolkitVersion.contains(Toolkit .typelevel + " :latest" )
730
- || toolkitVersion.contains(Constants .typelevelOrganization + " :latest" )
734
+ || toolkitVersion.contains(
735
+ Constants .typelevelOrganization + " :latest"
736
+ )) && ! loggedDeprecatedToolkitWarning.getAndSet(true )
731
737
) logger.message(
732
738
WarningMessages .deprecatedToolkitLatest(
733
739
s " --toolkit ${toolkitVersion.map(_.replace(" latest" , " default" )).getOrElse(" default" )}"
0 commit comments