create_packages.bat 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. rem Path to Git
  2. set GIT_EXE="%ProgramFiles%\Git\bin\git.exe"
  3. rem Path to Inno Setup compiler
  4. set ISCC_EXE="%ProgramFiles(x86)%\Inno Setup 5\ISCC.exe"
  5. rem Path to Windows Installer XML (WiX) toolset
  6. set PATH=%PATH%;"%ProgramFiles(x86)%\WiX Toolset v3.11\bin"
  7. rem The new package will be created from here
  8. set BUILD_PACK_DIR=%TEMP%\doublecmd-%DATE: =%
  9. rem The new package will be saved here
  10. set PACK_DIR=%CD%\windows\release
  11. rem Read version number
  12. for /f tokens^=2delims^=^" %%a in ('findstr "MajorVersionNr" ..\src\doublecmd.lpi') do (set DC_MAJOR=%%a)
  13. for /f tokens^=2delims^=^" %%a in ('findstr "MinorVersionNr" ..\src\doublecmd.lpi') do (set DC_MINOR=%%a)
  14. for /f tokens^=2delims^=^" %%a in ('findstr "RevisionNr" ..\src\doublecmd.lpi') do (set DC_MICRO=%%a)
  15. if [%DC_MINOR%] == [] set DC_MINOR=0
  16. if [%DC_MICRO%] == [] set DC_MICRO=0
  17. set DC_VER=%DC_MAJOR%.%DC_MINOR%.%DC_MICRO%
  18. rem Create temp dir for building
  19. set BUILD_DC_TMP_DIR=%TEMP%\doublecmd-%DC_VER%
  20. rm -rf %BUILD_DC_TMP_DIR%
  21. mkdir %BUILD_DC_TMP_DIR%
  22. %GIT_EXE% -C ..\ checkout-index -a -f --prefix=%BUILD_DC_TMP_DIR%\
  23. rem Get processor architecture
  24. if "%CPU_TARGET%" == "" (
  25. if "%PROCESSOR_ARCHITECTURE%" == "x86" (
  26. set CPU_TARGET=i386
  27. set OS_TARGET=win32
  28. ) else if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
  29. set CPU_TARGET=x86_64
  30. set OS_TARGET=win64
  31. )
  32. )
  33. rem Prepare needed variables
  34. if "%CPU_TARGET%" == "i386" (
  35. set CPU_ARCH=x86
  36. set PF=ProgramFilesFolder
  37. ) else if "%CPU_TARGET%" == "x86_64" (
  38. set CPU_ARCH=x64
  39. set PF=ProgramFiles64Folder
  40. )
  41. rem Save revision number
  42. set OUT=..\units\%CPU_TARGET%-%OS_TARGET%-win32
  43. call ..\src\platform\git2revisioninc.exe.cmd %OUT%
  44. copy %OUT%\dcrevision.inc %BUILD_DC_TMP_DIR%\units\
  45. rem Prepare package build dir
  46. rm -rf %BUILD_PACK_DIR%
  47. mkdir %BUILD_PACK_DIR%
  48. mkdir %BUILD_PACK_DIR%\release
  49. rem Copy needed files
  50. copy windows\doublecmd.iss %BUILD_PACK_DIR%\
  51. copy windows\doublecmd.wxs %BUILD_PACK_DIR%\
  52. copy windows\license.rtf %BUILD_PACK_DIR%\
  53. copy ..\src\doublecmd.ico %BUILD_PACK_DIR%\
  54. rem Copy libraries
  55. copy windows\lib\%CPU_TARGET%\*.sfx %BUILD_DC_TMP_DIR%\
  56. copy windows\lib\%CPU_TARGET%\*.dll %BUILD_DC_TMP_DIR%\
  57. copy windows\lib\%CPU_TARGET%\winpty-agent.exe %BUILD_DC_TMP_DIR%\
  58. cd /D %BUILD_DC_TMP_DIR%
  59. rem Build all components of Double Commander
  60. call build.bat darkwin
  61. rem Prepare install files
  62. call %BUILD_DC_TMP_DIR%\install\windows\install.bat
  63. cd /D %BUILD_PACK_DIR%
  64. rem Create *.exe package
  65. %ISCC_EXE% /F"doublecmd-%DC_VER%.%CPU_TARGET%-%OS_TARGET%" /DDisplayVersion=%DC_VER% doublecmd.iss
  66. rem Move created package
  67. move release\*.exe %PACK_DIR%
  68. rem Create *.msi package
  69. heat dir doublecmd -ag -cg HeatGroup -srd -dr APPLICATIONFOLDER -var var.SourcePath -o include.wxs
  70. candle -arch %CPU_ARCH% -dProductVersion=%DC_VER% -dSourcePath=doublecmd -dProgramFiles=%PF% doublecmd.wxs include.wxs
  71. light -ext WixUIExtension -cultures:en-us include.wixobj doublecmd.wixobj -o %PACK_DIR%\doublecmd-%DC_VER%.%CPU_TARGET%-%OS_TARGET%.msi
  72. rem Create *.zip package
  73. mkdir doublecmd\settings
  74. copy NUL doublecmd\settings\doublecmd.inf
  75. zip -9 -Dr %PACK_DIR%\doublecmd-%DC_VER%.%CPU_TARGET%-%OS_TARGET%.zip doublecmd
  76. rem Clean temp directories
  77. cd \
  78. rm -rf %BUILD_DC_TMP_DIR%
  79. rm -rf %BUILD_PACK_DIR%