From 6fadbec797bb7bb0160fb24c253be49961970945 Mon Sep 17 00:00:00 2001 From: Tomasz Janczuk Date: Wed, 14 Sep 2011 14:51:49 -0700 Subject: [PATCH] wix project to create msi installer for windows Fixes #1706. --- .gitignore | 1 + tools/msi/LICENSE.rtf | Bin 0 -> 4304 bytes tools/msi/getnodeversion.py | 9 ++++++++ tools/msi/nodemsi.sln | 20 +++++++++++++++++ tools/msi/nodemsi.wixproj | 46 ++++++++++++++++++++++++++++++++++++++ tools/msi/product.wxs | 53 ++++++++++++++++++++++++++++++++++++++++++++ vcbuild.bat | 16 +++++++++++-- 7 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 tools/msi/LICENSE.rtf create mode 100644 tools/msi/getnodeversion.py create mode 100644 tools/msi/nodemsi.sln create mode 100644 tools/msi/nodemsi.wixproj create mode 100644 tools/msi/product.wxs diff --git a/.gitignore b/.gitignore index e77d5df..68b5843 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ node_g Debug/ Release/ *.sln +!nodemsi.sln *.suo *.vcproj *.vcxproj diff --git a/tools/msi/LICENSE.rtf b/tools/msi/LICENSE.rtf new file mode 100644 index 0000000000000000000000000000000000000000..8afd3275546e453bac86483d52ecf06ef9075f78 GIT binary patch literal 4304 zcmbVQZExE~628v``X2`Qa%~|?vXk7!Ee<$JqHNyDk|5D_4G0KUs@F zAY}>1<@!KdBMP|Gp^cG}^oBSRTiGF}Vdp@lG!_T++6h&tVoL({%0sOY;x2*1W z&}XT`9`&@T6`>&GM6drgx`4DO>B?RHlG&1PWrQMi{;A zKV{Z*^&*C8!u5p++Z>39KC;Y~P=yD*Js6#kAcw7d=`6Sh|?3~u4fg5lC|Hosp)SJyFJ&nBY~ z4+kMI27^gh+k=n8Nf6z1XcXK8SB!H(GpK4@W!V}m-Cc+LoGl0V9mdgY%3cj;(|Cce z9XP#+zns5|mSKm2MYIIy#?!?NhB(eR20PG%!_%-<#X0an`;sb%a1d`1gCi;$g~0?0 zmrW+7Cnrv_{*iL%VOV^GmtT%bGW+sAX4%Y-9l4iqNIk4~BbLJhs_Ksii1 zD9>E2jQ}y*6T4je?IHS_JokP|AUbajmQDzl=!_oTbtu<~CoF(TWodg4@49%-G}(65 zmDbxF>;MX`yWPlK3TUt6L-?tR6r?O@upAxTKf%l9;E8;AZn1gH)XpCjsNgB6`gyn3 z&>C%z_&~ORZ-hxO4&+Bj0M4lwbcw~j7&BDtDRE}r>v7mR6L zsXQfnuukqyFgvYt+uMsx7ri+?jb#i@6qcr9duUpd!^fT+gWAOM36y6DxB`}_?Bz>1 zEcg@Cv6g+D*EW!BtA0P$$YedVz5~TQ z5)y@yIW3(m)|iDp_BO>TjiqPzdXC>pZ95`cUZv^8i?&yJJ2TDC9qiwZXivrzNd?><9JSU-hj>X z(#)JI--EUNOQcPZ-7%35nTSBj4Ow%(+EQH{Q2i6sI<`rNTFdh9!DUU-D|6vC+U(w^ z!t7P?9=XF7=yKUjz{43>B;h64i4Q1)jcInRA)0Qds$Cl#ob%agG1i36d|t2APpIdA z(|Db|B-gew@;yo%qw6$rTq?u*JtE=X2fiy2!r~F`q(Y?Otq1KxR zSHp|0I8EV8@+l7Z&cTuy{ei`v74wGV`v*&YbHU&qx>1SI%vN-V3ngxd-T|EUiws2l zz2Nw+p1$lN_H=Ch?efIBn0ftf-`pnr4kSOyq;g`74kEv(u`z#pgAu+3<_8iFLgg$% z!nHYKCiu12v$!HBl23HC+4h>S*d|aEd2$~fxs%Q>FW=$*niUj2qV|EtHF4*CgTQ46 zH1`jhH<77Tp|RVGt(QD5EbVg8f}3DN!F!9&b92sE!Gm+P*rijOU1b_HkRw1rmBv=pOtR + + + Debug + x86 + 3.5 + {1d808ff0-b5a9-4be9-859d-b334b6f48be2} + 2.0 + node + Package + $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets + $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets + 0.0.0.0 + + + ..\..\$(Configuration)\ + obj\$(Configuration)\ + Debug;ProductVersion=$(NodeVersion) + + + ..\..\$(Configuration)\ + obj\$(Configuration)\ + Debug;ProductVersion=$(NodeVersion) + + + + + + + + + + $(WixExtDir)\WixUIExtension.dll + WixUIExtension + + + + + \ No newline at end of file diff --git a/tools/msi/product.wxs b/tools/msi/product.wxs new file mode 100644 index 0000000..89a6129 --- /dev/null +++ b/tools/msi/product.wxs @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcbuild.bat b/vcbuild.bat index 90e89d9..fb56574 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -18,6 +18,7 @@ set noprojgen= set nobuild= set test= set test_args= +set msi= :next-arg if "%1"=="" goto args-done @@ -33,6 +34,7 @@ if /i "%1"=="test-simple" set test=test-simple&goto arg-ok if /i "%1"=="test-message" set test=test-message&goto arg-ok if /i "%1"=="test-all" set test=test-all&goto arg-ok if /i "%1"=="test" set test=test&goto arg-ok +if /i "%1"=="msi" set msi=1&goto arg-ok :arg-ok shift goto next-arg @@ -51,7 +53,7 @@ echo Project files generated. :msbuild @rem Skip project generation if requested. -if defined nobuild goto run +if defined nobuild goto msi @rem Bail out early if not running in VS build env. if defined VCINSTALLDIR goto msbuild-found @@ -70,6 +72,15 @@ goto run msbuild node.sln /t:%target% /p:Configuration=%config% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo if errorlevel 1 goto exit +:msi +@rem Skip msi generation if not requested +if not defined msi goto run +python "%~dp0tools\msi\getnodeversion.py" < "%~dp0src\node_version.h" > "%temp%\node_version.txt" +if not errorlevel 0 echo Cannot determine current version of node.js & goto exit +for /F "tokens=*" %%i in (%temp%\node_version.txt) do set NODE_VERSION=%%i +msbuild "%~dp0tools\msi\nodemsi.sln" /t:Clean,Build /p:Configuration=%config% /p:NodeVersion=%NODE_VERSION% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo +if errorlevel 1 goto exit + :run @rem Run tests if requested. if "%test%"=="" goto exit @@ -94,9 +105,10 @@ echo Failed to create vc project files. goto exit :help -echo vcbuild.bat [debug/release] [test-all/test-uv/test-internet/test-pummel/test-simple/test-message] [clean] [noprojgen] [nobuild] +echo vcbuild.bat [debug/release] [msi] [test-all/test-uv/test-internet/test-pummel/test-simple/test-message] [clean] [noprojgen] [nobuild] echo Examples: echo vcbuild.bat : builds debug build +echo vcbuild.bat release msi : builds release build and MSI installer package echo vcbuild.bat test : builds debug build and runs tests echo vcbuild.bat release test-uv: builds release build and runs --libuv tests goto exit -- 2.7.4