private def buildGenruleAndImportDoc()

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
  }