summaryrefslogtreecommitdiffstats
path: root/CMakeScripts/Dist.cmake
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2017-07-23 01:07:03 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-07-23 01:49:14 +0000
commitea172cdb15ba9780da806b5190c9dbb0a74231bd (patch)
tree1e762af06944c9eaa3619f21de96515617081964 /CMakeScripts/Dist.cmake
parentcmake: Add 'dist' target to create Windows .exe installer (diff)
downloadinkscape-ea172cdb15ba9780da806b5190c9dbb0a74231bd.tar.gz
inkscape-ea172cdb15ba9780da806b5190c9dbb0a74231bd.zip
cmake: Add 'dist' target to create Windows .msi installer
- 'dist-win-msi' allows to create a Windows .msi installer using WiX - 'dist-win-msi-fast' has a no compression but is much faster and can be used for testing purposes
Diffstat (limited to 'CMakeScripts/Dist.cmake')
-rw-r--r--CMakeScripts/Dist.cmake47
1 files changed, 44 insertions, 3 deletions
diff --git a/CMakeScripts/Dist.cmake b/CMakeScripts/Dist.cmake
index 2d9d3835c..32e3f5a4f 100644
--- a/CMakeScripts/Dist.cmake
+++ b/CMakeScripts/Dist.cmake
@@ -39,7 +39,6 @@ if(WIN32)
# -----------------------------------------------------------------------------
# 'dist-win-7z' - generate binary 7z archive for Windows
# -----------------------------------------------------------------------------
-
find_program(7z 7z PATHS "C:\\Program Files\\7-Zip"
"C:\\Program Files (x86)\\7-Zip")
if(NOT 7z)
@@ -61,11 +60,9 @@ if(WIN32)
add_dependencies(dist-win-7z install/strip)
add_dependencies(dist-win-7z-fast install/strip)
-
# -----------------------------------------------------------------------------
# 'dist-win-exe' - generate .exe installer (NSIS) for Windows
# -----------------------------------------------------------------------------
-
find_program (makensis makensis PATHS "C:\\Program Files\\NSIS"
"C:\\Program Files (x86)\\NSIS")
if(NOT makensis)
@@ -87,4 +84,48 @@ if(WIN32)
add_dependencies(dist-win-exe install/strip)
add_dependencies(dist-win-exe-fast install/strip)
+
+ # -----------------------------------------------------------------------------
+ # 'dist-win-msi' - generate .exe installer (NSIS) for Windows
+ # -----------------------------------------------------------------------------
+ find_program (candle candle PATHS "C:\\Program Files\\WiX Toolset v3.10\\bin"
+ "C:\\Program Files (x86)\\WiX Toolset v3.10\\bin")
+ find_program (light light PATHS "C:\\Program Files\\WiX Toolset v3.10\\bin"
+ "C:\\Program Files (x86)\\WiX Toolset v3.10\\bin")
+ if(NOT candle)
+ set(candle echo "Could not find 'candle' (part of WiX Toolset). Please add it to your search path." && exit 1 &&)
+ endif()
+ if(NOT light)
+ set(light echo "Could not find 'light' (part of WiX Toolset). Please add it to your search path." && exit 1 &&)
+ endif()
+
+ # default target with fair but slow compression
+ add_custom_target(dist-win-msi
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/packaging/wix ${CMAKE_BINARY_DIR}/wix
+ COMMAND cd wix
+ COMMAND ${CMAKE_COMMAND} -E env INKSCAPE_DIST_PATH=${CMAKE_INSTALL_PREFIX}
+ python ${CMAKE_SOURCE_DIR}/packaging/wix/files.py
+ COMMAND ${CMAKE_COMMAND} -E env INKSCAPE_DIST_PATH=${CMAKE_INSTALL_PREFIX}
+ python ${CMAKE_SOURCE_DIR}/packaging/wix/version.py
+ COMMAND ${candle} inkscape.wxs -ext WiXUtilExtension
+ COMMAND ${candle} files.wxs
+ COMMAND ${light} -ext WixUIExtension -ext WiXUtilExtension inkscape.wixobj files.wixobj
+ -o ${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.msi)
+
+ # moderately fast target with no compression for testing
+ add_custom_target(dist-win-msi-fast
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/packaging/wix ${CMAKE_BINARY_DIR}/wix
+ COMMAND cd wix
+ COMMAND sed -i 's/CompressionLevel="high"/CompressionLevel="none"/' inkscape.wxs
+ COMMAND ${CMAKE_COMMAND} -E env INKSCAPE_DIST_PATH=${CMAKE_INSTALL_PREFIX}
+ python ${CMAKE_SOURCE_DIR}/packaging/wix/files.py
+ COMMAND ${CMAKE_COMMAND} -E env INKSCAPE_DIST_PATH=${CMAKE_INSTALL_PREFIX}
+ python ${CMAKE_SOURCE_DIR}/packaging/wix/version.py
+ COMMAND ${candle} inkscape.wxs -ext WiXUtilExtension
+ COMMAND ${candle} files.wxs
+ COMMAND ${light} -ext WixUIExtension -ext WiXUtilExtension inkscape.wixobj files.wixobj
+ -o ${CMAKE_BINARY_DIR}/${INKSCAPE_DIST_PREFIX}.msi)
+
+ add_dependencies(dist-win-msi install/strip)
+ add_dependencies(dist-win-msi-fast install/strip)
endif()