From 24cdb9df598a1c10fffc718255527729595442a1 Mon Sep 17 00:00:00 2001 From: Nils Gladitz Date: Thu, 10 Dec 2015 23:55:07 +0100 Subject: CMake: Mimic NSIS options dialog in WiX installer --- CMakeCPackOptions.cmake.in | 29 ++++++++++- Utilities/Release/WiX/WIX.template.in | 46 +++++++++++++++++ Utilities/Release/WiX/cmake_extra_dialog.wxs | 36 +++++++++++++ Utilities/Release/WiX/install_dir.wxs | 61 +++++++++++++++++++++++ Utilities/Release/WiX/patch_desktop_shortcut.xml | 5 ++ Utilities/Release/WiX/patch_path_env.xml | 26 ++++++++++ Utilities/Release/WiX/ui_banner.jpg | Bin 0 -> 2607 bytes Utilities/Release/WiX/ui_dialog.jpg | Bin 0 -> 13369 bytes Utilities/Release/cpack_wix_ui_banner.jpg | Bin 2607 -> 0 bytes Utilities/Release/cpack_wix_ui_dialog.jpg | Bin 13369 -> 0 bytes 10 files changed, 201 insertions(+), 2 deletions(-) create mode 100644 Utilities/Release/WiX/WIX.template.in create mode 100644 Utilities/Release/WiX/cmake_extra_dialog.wxs create mode 100644 Utilities/Release/WiX/install_dir.wxs create mode 100644 Utilities/Release/WiX/patch_desktop_shortcut.xml create mode 100644 Utilities/Release/WiX/patch_path_env.xml create mode 100644 Utilities/Release/WiX/ui_banner.jpg create mode 100644 Utilities/Release/WiX/ui_dialog.jpg delete mode 100644 Utilities/Release/cpack_wix_ui_banner.jpg delete mode 100644 Utilities/Release/cpack_wix_ui_dialog.jpg diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index 4ebf306..25af0c9 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -234,10 +234,35 @@ if("${CPACK_GENERATOR}" STREQUAL "WIX") set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-dcl:high") set(CPACK_WIX_UI_BANNER - "@CMake_SOURCE_DIR@/Utilities/Release/cpack_wix_ui_banner.jpg" + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/ui_banner.jpg" ) set(CPACK_WIX_UI_DIALOG - "@CMake_SOURCE_DIR@/Utilities/Release/cpack_wix_ui_dialog.jpg" + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/ui_dialog.jpg" ) + + set(CPACK_WIX_EXTRA_SOURCES + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/install_dir.wxs" + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/cmake_extra_dialog.wxs" + ) + + set(CPACK_WIX_UI_REF "CMakeUI_InstallDir") + + set(CPACK_WIX_PATCH_FILE + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/patch_path_env.xml" + ) + + set(CPACK_WIX_TEMPLATE + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/WIX.template.in" + ) + + set(BUILD_QtDialog "@BUILD_QtDialog@") + + if(BUILD_QtDialog) + list(APPEND CPACK_WIX_PATCH_FILE + "@CMake_SOURCE_DIR@/Utilities/Release/WiX/patch_desktop_shortcut.xml" + ) + + set(CPACK_WIX_CANDLE_EXTRA_FLAGS "-dBUILD_QtDialog=1") + endif() endif() diff --git a/Utilities/Release/WiX/WIX.template.in b/Utilities/Release/WiX/WIX.template.in new file mode 100644 index 0000000..094999f --- /dev/null +++ b/Utilities/Release/WiX/WIX.template.in @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + ProductIcon.ico + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/Release/WiX/cmake_extra_dialog.wxs b/Utilities/Release/WiX/cmake_extra_dialog.wxs new file mode 100644 index 0000000..0ee3d99 --- /dev/null +++ b/Utilities/Release/WiX/cmake_extra_dialog.wxs @@ -0,0 +1,36 @@ + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Utilities/Release/WiX/install_dir.wxs b/Utilities/Release/WiX/install_dir.wxs new file mode 100644 index 0000000..883efba --- /dev/null +++ b/Utilities/Release/WiX/install_dir.wxs @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + 1 + "1"]]> + + 1 + + NOT Installed + Installed AND PATCH + + 1 + LicenseAccepted = "1" + + 1 + 1 + NOT WIXUI_DONTVALIDATEPATH + "1"]]> + WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1" + 1 + 1 + + 1 + 1 + + NOT Installed + Installed AND NOT PATCH + Installed AND PATCH + + 1 + + 1 + 1 + 1 + + + + + + + diff --git a/Utilities/Release/WiX/patch_desktop_shortcut.xml b/Utilities/Release/WiX/patch_desktop_shortcut.xml new file mode 100644 index 0000000..d30705d --- /dev/null +++ b/Utilities/Release/WiX/patch_desktop_shortcut.xml @@ -0,0 +1,5 @@ + + + DESKTOP_SHORTCUT_REQUESTED = 1 + + diff --git a/Utilities/Release/WiX/patch_path_env.xml b/Utilities/Release/WiX/patch_path_env.xml new file mode 100644 index 0000000..0e335c4 --- /dev/null +++ b/Utilities/Release/WiX/patch_path_env.xml @@ -0,0 +1,26 @@ + + + + + ADD_CMAKE_TO_PATH = "System" + + + + + + + ADD_CMAKE_TO_PATH = "User" + + + + + + + + + + diff --git a/Utilities/Release/WiX/ui_banner.jpg b/Utilities/Release/WiX/ui_banner.jpg new file mode 100644 index 0000000..8d950a6 Binary files /dev/null and b/Utilities/Release/WiX/ui_banner.jpg differ diff --git a/Utilities/Release/WiX/ui_dialog.jpg b/Utilities/Release/WiX/ui_dialog.jpg new file mode 100644 index 0000000..bb6fa5b Binary files /dev/null and b/Utilities/Release/WiX/ui_dialog.jpg differ diff --git a/Utilities/Release/cpack_wix_ui_banner.jpg b/Utilities/Release/cpack_wix_ui_banner.jpg deleted file mode 100644 index 8d950a6..0000000 Binary files a/Utilities/Release/cpack_wix_ui_banner.jpg and /dev/null differ diff --git a/Utilities/Release/cpack_wix_ui_dialog.jpg b/Utilities/Release/cpack_wix_ui_dialog.jpg deleted file mode 100644 index bb6fa5b..0000000 Binary files a/Utilities/Release/cpack_wix_ui_dialog.jpg and /dev/null differ -- cgit v0.12