summaryrefslogtreecommitdiff
path: root/misc/windows/package.bash
diff options
context:
space:
mode:
Diffstat (limited to 'misc/windows/package.bash')
-rwxr-xr-xmisc/windows/package.bash55
1 files changed, 55 insertions, 0 deletions
diff --git a/misc/windows/package.bash b/misc/windows/package.bash
new file mode 100755
index 000000000..995e47d0a
--- /dev/null
+++ b/misc/windows/package.bash
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+# Copyright 2011 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+set -e
+
+PROGS="
+ candle
+ light
+ heat
+"
+
+echo "%%%%% Checking for WiX executables %%%%%" 1>&2
+for i in $PROGS; do
+ if ! which -a $1 >/dev/null; then
+ echo "Cannot find '$i' on search path." 1>$2
+ exit 1
+ fi
+done
+
+echo "%%%%% Checking the packager's path %%%%%" 1>&2
+if ! test -f ../../src/env.bash; then
+ echo "package.bash must be run from $GOROOT/misc/windows" 1>&2
+fi
+
+echo "%%%%% Setting the go package version info %%%%%" 1>&2
+ver="$(bash ../../src/version.bash | sed 's/ .*//')"
+
+rm -rf go
+mkdir go
+
+echo "%%%%% Cloning the go tree %%%%%" 1>&2
+hg clone -r $(hg id -n | sed 's/+//') $(hg root) go
+
+rm -rf ./go/.hg ./go/.hgignore ./go/.hgtags
+
+echo "%%%%% Copying pkg, bin and src/pkg/runtime/z* %%%%%" 1>&2
+cp -a ../../pkg go/pkg
+cp -a ../../bin go/bin
+cp ../../src/pkg/runtime/z*.c go/src/pkg/runtime/
+cp ../../src/pkg/runtime/z*.go go/src/pkg/runtime/
+cp ../../src/pkg/runtime/z*.h go/src/pkg/runtime/
+
+echo "%%%%% Starting zip packaging %%%%%" 1>&2
+7za a -tzip -mx=9 gowin$GOARCH"_"$ver.zip "go/" >/dev/null
+
+echo "%%%%% Starting Go directory file harvesting %%%%%" 1>&2
+heat dir go -nologo -cg AppFiles -gg -g1 -srd -sfrag -template fragment -dr INSTALLDIR -var var.SourceDir -out AppFiles.wxs
+
+echo "%%%%% Starting installer packaging %%%%%" 1>&2
+candle -nologo -dVersion=$ver -dArch=$GOARCH -dSourceDir=go installer.wxs AppFiles.wxs
+light -nologo -ext WixUIExtension -ext WixUtilExtension installer.wixobj AppFiles.wixobj -o gowin$GOARCH"_"$ver.msi
+
+rm -f *.wixobj AppFiles.wxs *.wixpdb
+