scalafx-utils/project/SettingTemplate.scala

61 lines
1.9 KiB
Scala
Raw Normal View History

/* Note: This file is shared among many projects. Avoid putting project-specific things here. */
import sbt._
import sbt.Keys._
import java.net.URL
trait SettingTemplate {
val buildOrganization: String
val buildOrganizationName: String
val buildOrganizationUrl: Option[URL] = None
val projectDescription: String
val projectStartYear: Int
val projectHomepage: Option[URL] = None
val buildScalaVersion: String
val extraScalaVersions: Seq[String] = Seq.empty
val minimumJavaVersion: String = "1.8"
val defaultOptimize: Boolean = true
val defaultOptimizeGlobal: Boolean = false
val inlinePatterns: Seq[String] = Seq("!akka.**","!slick.**")
val autoAddCompileOptions: Boolean = true
val parallelBuild: Boolean = true
val cachedResolution: Boolean = true
val sonatypeResolver: Boolean = false
val projectLicenses: Seq[(String, URL)]
val defaultNewBackend: Boolean = false
val developerInfo: scala.xml.Elem
val buildMetadata: Seq[Setting[_]]
def sourceLocation(branch: String): Option[URL] = None
}
object SettingTemplate {
trait GithubProject extends SettingTemplate {
val githubOrganization: String
val githubProject: String
val githubOrgPageFallback: Boolean = true
lazy val githubPage = url(s"https://github.com/${githubOrganization}/${githubProject}")
2017-10-28 02:35:53 +00:00
override def sourceLocation(branch: String) = Some(url(s"${githubPage.toExternalForm}/blob/$branch"))
lazy val buildMetadata = Vector(
licenses := projectLicenses,
homepage := Some(projectHomepage.getOrElse(githubPage)),
description := projectDescription,
startYear := Some(projectStartYear),
scmInfo := Some(ScmInfo(githubPage, s"scm:git:git@github.com:${githubOrganization}/${githubProject}.git"))
)
}
trait ApacheLicensed extends SettingTemplate {
final val projectLicenses = Seq("Apache License, Version 2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0.txt"))
}
}