Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


lazy val commonSettings = Seq( // These settings are shared for both the default project (daf310) and the daf311 subproject.
  name := "dfdl-schema",

  organization := "org.apache",

  version := "1.0.0",


  libraryDependencies ++= Seq(
    "org.apache" % "some-linked-schema" % "1.0.0",
    // If we do not mark some-charset-plugin as a provided dependency, then this jar will have a
    // transitive dependency to one of the _2.12 or _2.13 some-charset-plugin jars, depending on
    // what version of Daffodil this project is built and published with. And this would mean
    // that any projects that depend on this this jar will also depend on a specific version of
    // the some-charset-plugin, which might not match the version of Daffodil they actually want to
    // use. By using provided, we avoid this issue, but it means projects depending on this this
    // project must manually add the appropriate some-charset-plugin dependency based on the
    // version of Daffodil they are using.
    "org.apache" %% "some-charset-plugin" % "1.0.0" % "provided",
    "org.apache.daffodil" %% "daffodil-sapi" % daffodilVersion.value % "test",
  ),


  daffodilPackageBinInfos := Seq(
    DaffodilBinInfo("/comorg/owlcyberdefenseapache/link16some-with-jreapschema.dfdl.xsd", Some("JreapMessage"),
      config = Some(sourceDirectory.value.getParentFile / "config.xml")),
    DaffodilBinInfo("/com/owlcyberdefense/link16-with-jreap.dfdl.xsd", Some("jreapMessages"), Some("jreap-messages"),
      config = Some(sourceDirectory.value.getParentFile / "config.xml"))
  ),


  // Other project specific settings can go here
)


// This will be the default project as it is in the "." current working directory
lazy val daf310 = project.in(file("."))
  .enablePlugins(DaffodilPlugin)
  .settings(commonSettings)
  .settings(
    daffodilVersion := "3.10.0",
    daffodilPackageBinVersions := Seq("3.10.0")
  )
  .settings(
    // daf311 disables publishing since it creates duplicate jars. We still want to publish
    // "parser" artifacts if they are built, so we copy just those artifacts from daf311
    artifacts ++= (daf311/artifacts).value.filter(_.`type` == "parser"),
    packagedArtifacts ++= (daf311/packagedArtifacts).value.filter { case (art, _) => art.`type` == "parser" }
  )


lazy val daf311 = project.in(file("daf311"))
  .enablePlugins(DaffodilPlugin)
  .settings(commonSettings)
  .settings(
    daffodilVersion := "3.11.0",
    daffodilPackageBinVersions := Seq("3.11.0"),
  )
  .settings(
    // use the exact same sources as the root project
    sourceDirectory := baseDirectory.value.getParentFile / "src",
    // this is a schema jar so it is not cross versioned. Since it uses the exact same sources
    // as the root, it means the jars daf311 creates are exactly the same as the root jars. So
    // we disable publishing of these jars
    publish / skip := true
  )