diff --git a/appveyor.yml b/appveyor.yml index 6e67a017..60986965 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -19,10 +19,6 @@ init: install: - set JANET_BUILD=%appveyor_repo_commit:~0,7% - - choco install nsis -y -pre --version 3.05 - # Replace makensis.exe and files with special long string build. This should - # prevent issues when setting PATH during installation. - - 7z e "tools\nsis-3.05-strlen_8192.zip" -o"C:\Program Files (x86)\NSIS\" -y - build_win all - refreshenv # We need to reload vcvars after refreshing @@ -48,7 +44,7 @@ artifacts: - name: "janet-$(janet_outname)-windows-%platform%" path: dist type: Zip - - path: "janet-$(janet_outname)-windows-%platform%-installer.exe" + - path: "janet-$(janet_outname)-windows-%platform%-installer.msi" type: File deploy: diff --git a/build_win.bat b/build_win.bat index f56dbcf1..0e002019 100644 --- a/build_win.bat +++ b/build_win.bat @@ -121,18 +121,29 @@ copy tools\jpm.bat dist\jpm.bat @rem Create installer janet.exe -e "(->> janet/version (peg/match ''(* :d+ `.` :d+ `.` :d+)) first print)" > build\version.txt -janet.exe -e "(print (= (os/arch) :x64))" > build\64bit.txt +janet.exe -e "(print (os/arch))" > build\arch.txt set /p JANET_VERSION= < build\version.txt -set /p SIXTYFOUR= < build\64bit.txt +set /p BUILDARCH= < build\arch.txt echo "JANET_VERSION is %JANET_VERSION%" -"C:\Program Files (x86)\NSIS\makensis.exe" /DVERSION=%JANET_VERSION% /DSIXTYFOUR=%SIXTYFOUR% janet-installer.nsi +if defined APPVEYOR_REPO_TAG_NAME ( + set RELEASE_VERSION=%APPVEYOR_REPO_TAG_NAME% +) else ( + set RELEASE_VERSION=%JANET_VERSION% +) +if defined CI ( + set WIXBIN="c:\Program Files (x86)\WiX Toolset v3.11\bin\" +) else ( + set WIXBIN= +) +%WIXBIN%candle.exe tools\msi\janet.wxs -arch %BUILDARCH% -out build\ +%WIXBIN%light.exe "-sice:ICE38" -b tools\msi -ext WixUIExtension build\janet.wixobj -out janet-%RELEASE_VERSION%-windows-%BUILDARCH%-installer.msi exit /b 0 @rem Run the installer. (Installs to the local user with default settings) :INSTALL -@echo Running Installer... -FOR %%a in (janet-*-windows-*-installer.exe) DO ( - %%a /S /CurrentUser +FOR %%a in (janet-*-windows-*-installer.msi) DO ( + @echo Running Installer %%a... + %%a /QN ) exit /b 0 diff --git a/tools/msi/JanetDialog.png b/tools/msi/JanetDialog.png new file mode 100644 index 00000000..6c789d77 Binary files /dev/null and b/tools/msi/JanetDialog.png differ diff --git a/tools/msi/JanetTopBanner.png b/tools/msi/JanetTopBanner.png new file mode 100644 index 00000000..edd5f9e9 Binary files /dev/null and b/tools/msi/JanetTopBanner.png differ diff --git a/tools/msi/LICENSE.rtf b/tools/msi/LICENSE.rtf new file mode 100644 index 00000000..e45ced57 Binary files /dev/null and b/tools/msi/LICENSE.rtf differ diff --git a/tools/msi/janet.wxs b/tools/msi/janet.wxs new file mode 100644 index 00000000..c747b0d4 --- /dev/null +++ b/tools/msi/janet.wxs @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(var.Description) + $(var.WebPage) + $(var.Manufacturer) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALLUSERS=1 + + + + + + + + NOT ALLUSERS=1 + + + + + + + + + + + + + + + + + + WixAppFolder = "WixPerMachineFolder" + + +