convert-zip-msi.bat 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. @echo off
  2. rem This script converts portable *.zip package to *.msi package
  3. rem Check command arguments
  4. if "%1" == "" (
  5. echo.
  6. echo Syntax:
  7. echo.
  8. echo %~nx0 ^<Full path to portable .zip package^>
  9. goto :eof
  10. )
  11. rem Path to Windows Installer XML (WiX) toolset
  12. set PATH=%PATH%;"C:\Program Files (x86)\WiX Toolset v3.11\bin"
  13. rem The new package will be created from here
  14. set BUILD_PACK_DIR=%TEMP%\doublecmd-%DATE: =%
  15. rem The new package will be saved here
  16. set PACK_DIR=%~dp0/release
  17. rem Determine package file name
  18. for /f %%i in ("%1") do set PACKAGE=%%~ni
  19. rem Get package version and architecture
  20. for /f "tokens=1,2,3,4,5 delims=-." %%a in ("%PACKAGE%") do (
  21. set DC_VER=%%b.%%c.%%d
  22. set CPU_TARGET=%%e
  23. )
  24. rem Prepare needed variables
  25. if "%CPU_TARGET%" == "i386" (
  26. set CPU_TARGET=x86
  27. set PF=ProgramFilesFolder
  28. ) else if "%CPU_TARGET%" == "x86_64" (
  29. set CPU_TARGET=x64
  30. set PF=ProgramFiles64Folder
  31. )
  32. rem Prepare package build dir
  33. mkdir %BUILD_PACK_DIR%
  34. rem Extract archive
  35. unzip %1 -d %BUILD_PACK_DIR%
  36. rem Copy needed files
  37. copy license.rtf %BUILD_PACK_DIR%\
  38. copy doublecmd.wxs %BUILD_PACK_DIR%\
  39. copy ..\..\src\doublecmd.ico %BUILD_PACK_DIR%\
  40. pushd %BUILD_PACK_DIR%
  41. del /Q doublecmd\settings\doublecmd.inf
  42. heat dir doublecmd -ag -cg HeatGroup -srd -dr APPLICATIONFOLDER -var var.SourcePath -o include.wxs
  43. candle -arch %CPU_TARGET% -dProductVersion=%DC_VER% -dSourcePath=doublecmd -dProgramFiles=%PF% doublecmd.wxs include.wxs
  44. light -ext WixUIExtension -cultures:en-us include.wixobj doublecmd.wixobj -o %PACKAGE%.msi
  45. rem Move created package
  46. move %PACKAGE%.msi %PACK_DIR%/
  47. rem Clean temp directories
  48. popd
  49. rmdir /S /Q %BUILD_PACK_DIR%