in multiversion/src/main/scala/multiversion/outputs/ArtifactOutput.scala [138:185]
private def buildGenruleAndImportDoc(
o: ArtifactOutput,
): Doc = {
def genrule =
TargetOutput(
kind = "genrule",
"name" -> Docs.literal(s"genrules/${o.label}"),
"srcs" -> Docs.array(s"@${o.label}//file"),
"outs" -> Docs.array(o.mavenLabel),
"cmd" -> Docs.literal("cp $< $@"),
"tags" -> Docs.array(tags(o.dependency): _*)
).toDoc
def sourcesGenrule =
TargetOutput(
kind = "genrule",
"name" -> Docs.literal(s"genrules/${o.sourcesLabel}"),
"srcs" -> Docs.array(s"@${o.sourcesLabel}//file"),
"outs" -> Docs.array(o.mavenSourcesLabel),
"cmd" -> Docs.literal("cp $< $@"),
).toDoc
def scalaImport =
TargetOutput(
kind = "scala_import",
"name" -> Docs.literal("_" + o.label),
"jars" -> Docs.array(o.mavenLabel),
"deps" -> Docs.array(),
"exports" -> Docs.array(),
"tags" -> Docs.array(tags(o.dependency): _*),
"visibility" -> Docs.array("//visibility:public")
).toDoc
def scalaImportWithSrcJar =
TargetOutput(
kind = "scala_import",
"name" -> Docs.literal("_" + o.label),
"jars" -> Docs.array(o.mavenLabel),
"deps" -> Docs.array(),
"exports" -> Docs.array(),
"srcjar" -> Docs.literal(o.mavenSourcesLabel),
"tags" -> Docs.array(tags(o.dependency): _*),
"visibility" -> Docs.array("//visibility:public")
).toDoc
if (o.hasSources) genrule / sourcesGenrule / scalaImportWithSrcJar
else genrule / scalaImport
}