diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..09be01613 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +src/windows/sbtconfig.txt eol=crlf diff --git a/project/build.scala b/project/build.scala index b3e4ba4ab..61adf4122 100644 --- a/project/build.scala +++ b/project/build.scala @@ -3,7 +3,11 @@ import Keys._ object SbtExtras extends Build { // This build creates a SBT plugin with handy features *and* bundles the SBT script for distribution. - val root = Project("sbt-packaging", file(".")) settings(Packaging.settings:_*) + val root = Project("sbt-packaging", file(".")) settings(Packaging.settings:_*) settings( + sbtVersion <<= sbtVersion apply { v => + sys.props.getOrElse("sbt.build.version", sys.env.getOrElse("sbt.build.version", v)) + } + ) val meta = Project("metapackage", file("metapackage")) settings(MetaPackaging.settings(root):_*) } diff --git a/project/packaging.scala b/project/packaging.scala index 1ae5c6151..a6604f72d 100644 --- a/project/packaging.scala +++ b/project/packaging.scala @@ -49,7 +49,7 @@ object Packaging { fixedLinuxScriptDir <<= target / "linux-scripts", fixedUniversalScriptDir <<= target / "universal-scripts", linuxFixedScripts <<= (fixedScriptDir, fixedLinuxScriptDir) map fixScripts("/usr/lib/sbt/sbt-launch.jar", "/usr/share/sbt/sbt-launch-lib.bash"), - universalFixedScripts <<= (fixedScriptDir, fixedUniversalScriptDir) map fixScripts("\\$(dirname \\$0)/sbt-launch.jar", "\\$(dirname \\$0)/sbt-launch-lib.bash"), + universalFixedScripts <<= (fixedScriptDir, fixedUniversalScriptDir) map fixScripts("\\$(dirname \\$(realpath \\$0))/sbt-launch.jar", "\\$(dirname \\$(realpath \\$0))/sbt-launch-lib.bash"), sbtLaunchJarUrl <<= sbtVersion apply downloadUrlForVersion, sbtLaunchJarLocation <<= target apply (_ / "sbt-launch.jar"), sbtLaunchJar <<= (sbtLaunchJarUrl, sbtLaunchJarLocation) map { (uri, file) => @@ -143,7 +143,10 @@ object Packaging { // WINDOWS SPECIFIC name in Windows := "sbt", - lightOptions ++= Seq("-ext", "WixUIExtension", "-cultures:en-us"), + candleOptions ++= Seq("-ext", "WixUtilExtension"), + lightOptions ++= Seq("-ext", "WixUIExtension", + "-ext", "WixUtilExtension", + "-cultures:en-us"), wixConfig <<= (sbtVersion, sourceDirectory in Windows) map makeWindowsXml, //wixFile <<= sourceDirectory in Windows map (_ / "sbt.xml"), mappings in packageMsi in Windows <+= sbtLaunchJar map { f => f -> "sbt-launch.jar" }, @@ -151,6 +154,7 @@ object Packaging { mappings in packageMsi in Windows <++= sourceDirectory in Windows map { d => Seq( (d / "sbt.bat") -> "sbt.bat", (d / "sbt") -> "sbt", + (d / "sbtconfig.txt") -> "sbtconfig.txt", (d / "jansi-license.txt") -> "jansi-license.txt" )}, mappings in packageMsi in Windows <+= (compile in Compile, classDirectory in Compile) map { (c, d) => @@ -190,13 +194,14 @@ object Packaging { ) def makeWindowsXml(sbtVersion: String, sourceDir: File): scala.xml.Node = { - val version = (sbtVersion split "\\.") match { + val version = (sbtVersion split "[^\\d]" filterNot (_.isEmpty)) match { case Array(major,minor,bugfix, _*) => Seq(major,minor,bugfix, "1") mkString "." case Array(major,minor) => Seq(major,minor,"0","1") mkString "." case Array(major) => Seq(major,"0","0","1") mkString "." } ( - + + + + + + + - + + + + @@ -222,12 +236,19 @@ object Packaging { - + + + + + + + + @@ -243,7 +264,19 @@ object Packaging { - + + + + + + + + + @@ -251,10 +284,14 @@ object Packaging { + - + + + +