aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpmichaud <pmichaud@pobox.com>2012-07-28 02:08:34 -0500
committerpmichaud <pmichaud@pobox.com>2012-07-28 02:08:34 -0500
commit12b921c0c021f28ddfa0e41346eb6e162eb16e80 (patch)
tree07451b87698a4da382dc29e8e6be7df3bdb4292d
parent9132003e48d4d0be818e368aa03533ce84547ae3 (diff)
Refactor .msi building process a fair bit.
-rw-r--r--skel/tools/build/Makefile.in17
-rw-r--r--skel/tools/build/star-product.wxs64
-rw-r--r--skel/tools/build/wxs-patch.pl15
3 files changed, 70 insertions, 26 deletions
diff --git a/skel/tools/build/Makefile.in b/skel/tools/build/Makefile.in
index 84d7499..deeefa4 100644
--- a/skel/tools/build/Makefile.in
+++ b/skel/tools/build/Makefile.in
@@ -4,7 +4,7 @@
PARROT = parrot-4.6.0
NQP = nqp-2012.07
RAKUDO = rakudo-2012.07
-STAR = rakudo-star-2012.07
+STAR_VERSION = 2012.07
PARROT_ARGS =
@@ -49,7 +49,6 @@ LINKARGS = $(LDFLAGS) $(LD_LOAD_FLAGS) $(LIBPARROT) @libs@ @icu_shared@
PERL6_EXE = perl6$(EXE)
PERL6_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6
-STAR_WXS = $(STAR).wxs
# This list must be kept in order, modules always coming after their
# dependencies
@@ -157,14 +156,10 @@ CRITIC_FILES=Configure.pl tools/build/
perlcritic:
perlcritic -1 --profile tools/util/perlcritic.conf $(CRITIC_FILES)
-$(STAR_WXS): $(PARROT_BIN_DIR) $(PREFIX_DIR)
+msi:
-$(CP) c:/strawberry/c/bin/libgcc_s_sjlj-1.dll $(PARROT_BIN_DIR)
- cmd /c heat dir $(PREFIX_DIR) -gg -sfrag -template product -cg RakudoStar -out $(STAR_WXS)
- $(PERL) -ibak tools/build/wxs-patch.pl $(STAR_WXS)
-
-wxs: $(STAR_WXS)
-
-msi: $(STAR_WXS)
- cmd /c candle $(STAR_WXS)
- cmd /c light -b $(PREFIX_DIR) $(STAR).wixobj
+ cmd /c heat dir rakudo -gg -sfrag -cg RakudoStar -dr INSTALLROOT -srd -out star-files.wxs
+ cmd /c candle star-files.wxs
+ cmd /c candle -dSTARVERSION=$(STAR_VERSION) tools/build/star-product.wxs
+ cmd /c light -b $(PREFIX_DIR) -ext WixUIExtension star-files.wixobj star-product.wixobj -o rakudo-star-$(STAR_VERSION).msi
diff --git a/skel/tools/build/star-product.wxs b/skel/tools/build/star-product.wxs
new file mode 100644
index 0000000..7dd0247
--- /dev/null
+++ b/skel/tools/build/star-product.wxs
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+ <Product Id="*" Language="1033" Manufacturer="Rakudo Perl 6" Name="Rakudo Star $(var.STARVERSION)" UpgradeCode="{08B7EB05-7EAC-4B60-9F5B-AF6E367FE0FD}" Version="1.0.0">
+ <Package Compressed="yes" InstallerVersion="200" />
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="INSTALLLOCATION" Name="rakudo" />
+
+ <!-- start menu shortcuts, adapted from http://wix.sourceforge.net/manual-wix3/create_start_menu_shortcut.htm -->
+ <Directory Id="ProgramMenuFolder">
+ <Directory Id="RakudoMenuFolder" Name="Rakudo Perl 6">
+ <Component Id="RakudoStartItems" Guid="B5BD7AEC-C8dC-4F84-AF2E-4A417350D642">
+ <Shortcut Id="RakudoShortcut"
+ Name="Rakudo Perl 6"
+ Target="[INSTALLLOCATION]bin\perl6.exe"
+ WorkingDirectory="INSTALLLOCATION" />
+ <RemoveFolder Id="RakudoMenuFolder" On="uninstall" />
+ <RegistryValue Root="HKCU" Key="Software\Microsoft\RakudoPerl6" Name="installed" Type="integer" Value="1" KeyPath="yes" />
+ </Component>
+ </Directory>
+ </Directory>
+ </Directory>
+
+ <Feature Id="ProductFeature" Level="1" Title="Rakudo Star $(var.STARVERSION)">
+ <ComponentGroupRef Id="RakudoStar" />
+ <ComponentRef Id="RakudoStartItems" />
+ </Feature>
+ <Media Id="1" Cabinet="product.cab" EmbedCab="yes" />
+
+ <!-- This is just like WixUI_Minimal but we skip the EULA part -->
+ <UI Id="WixUI_Minimal">
+ <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
+ <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
+ <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
+
+ <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
+ <Property Id="WixUI_Mode" Value="Minimal" />
+
+ <DialogRef Id="ErrorDlg" />
+ <DialogRef Id="FatalError" />
+ <DialogRef Id="FilesInUse" />
+ <DialogRef Id="MsiRMFilesInUse" />
+ <DialogRef Id="PrepareDlg" />
+ <DialogRef Id="ProgressDlg" />
+ <DialogRef Id="ResumeDlg" />
+ <DialogRef Id="UserExit" />
+ <DialogRef Id="WelcomeDlg" />
+
+ <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish>
+ <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
+
+ <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
+
+ <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
+
+ <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
+ <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
+ <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
+
+ <Property Id="ARPNOMODIFY" Value="1" />
+ </UI>
+
+ <UIRef Id="WixUI_Common" />
+ </Product>
+</Wix>
diff --git a/skel/tools/build/wxs-patch.pl b/skel/tools/build/wxs-patch.pl
deleted file mode 100644
index 120c9b2..0000000
--- a/skel/tools/build/wxs-patch.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-#! perl
-
-open my $fh, '<', 'VERSION'
- or die "Cannot open VERSION for reading: $!";
-my $VERSION = <$fh>; chomp $VERSION;
-close $fh;
-
-while (<>) {
- s/PUT-COMPANY-NAME-HERE/Rakudo Perl 6/g;
- s/PUT-PRODUCT-NAME-HERE/Rakudo Star $VERSION/g;
- s/PUT-FEATURE-TITLE-HERE/Rakudo Star $VERSION/g;
- print;
-}
-
-