diff --git a/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake b/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake index fa2566ec06..be9ce12911 100644 --- a/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake +++ b/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake @@ -1,9 +1,11 @@ # Qt host tools are not yet available natively on windows-arm64. set(CMake_TEST_GUI "OFF" CACHE BOOL "") -set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "") -set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "") set(BUILD_QtDialog "OFF" CACHE BOOL "") set(CMAKE_PREFIX_PATH "" CACHE STRING "") +set(CMake_TEST_CPACK_WIX "ON" CACHE BOOL "") +set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "") +set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "") + include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_msvc_cxx_modules_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common_ninja.cmake") diff --git a/.gitlab/ci/configure_windows_i386_package.cmake b/.gitlab/ci/configure_windows_i386_package.cmake index 65e1dcb345..c80ebcce2e 100644 --- a/.gitlab/ci/configure_windows_i386_package.cmake +++ b/.gitlab/ci/configure_windows_i386_package.cmake @@ -1,6 +1,9 @@ # CPack package file name component for this platform. set(CPACK_SYSTEM_NAME "windows-i386" CACHE STRING "") +# Tell WiX to package for this architecture. +set(CPACK_WIX_ARCHITECTURE "x86" CACHE STRING "") + # Use APIs from at most Windows 7 set(CMAKE_C_FLAGS "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000" CACHE STRING "") set(CMAKE_CXX_FLAGS "-GR -EHsc -D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000" CACHE STRING "") diff --git a/.gitlab/ci/configure_windows_package_common.cmake b/.gitlab/ci/configure_windows_package_common.cmake index 541a5414f1..11bfad5b6f 100644 --- a/.gitlab/ci/configure_windows_package_common.cmake +++ b/.gitlab/ci/configure_windows_package_common.cmake @@ -19,6 +19,8 @@ set(CMake_TEST_Qt5 OFF CACHE BOOL "") set(CMake_TEST_Qt6 OFF CACHE BOOL "") set(Python_FIND_REGISTRY NEVER CACHE STRING "") +set(CMake_BUILD_WIX_CUSTOM_ACTION ON CACHE BOOL "") + set(CMake_CPACK_CUSTOM_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/CMakeCPack.cmake" CACHE FILEPATH "") include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake index e224a58322..c32c8e2fd2 100644 --- a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake +++ b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake @@ -3,6 +3,8 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") set(CMake_TEST_ISPC "ON" CACHE STRING "") set(CMake_TEST_Swift "ON" CACHE STRING "") endif() + +set(CMake_TEST_CPACK_WIX "ON" CACHE BOOL "") set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "") set(CMake_TEST_TLS_VERSION "1.2" CACHE STRING "") diff --git a/.gitlab/ci/configure_windows_x86_64_package.cmake b/.gitlab/ci/configure_windows_x86_64_package.cmake index 3a141a7a7f..051e3fc629 100644 --- a/.gitlab/ci/configure_windows_x86_64_package.cmake +++ b/.gitlab/ci/configure_windows_x86_64_package.cmake @@ -1,6 +1,9 @@ # CPack package file name component for this platform. set(CPACK_SYSTEM_NAME "windows-x86_64" CACHE STRING "") +# Tell WiX to package for this architecture. +set(CPACK_WIX_ARCHITECTURE "x64" CACHE STRING "") + # Use APIs from at most Windows 7 set(CMAKE_C_FLAGS "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000" CACHE STRING "") set(CMAKE_CXX_FLAGS "-GR -EHsc -D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000" CACHE STRING "") diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake index 798affd2f2..a0c0e54ffa 100644 --- a/CMakeCPack.cmake +++ b/CMakeCPack.cmake @@ -229,15 +229,12 @@ endif() set(CPACK_WIX_UPGRADE_GUID "8ffd1d72-b7f1-11e2-8ee5-00238bca4991") -if(MSVC AND NOT "$ENV{WIX}" STREQUAL "") - set(WIX_CUSTOM_ACTION_ENABLED TRUE) +if(CMake_BUILD_WIX_CUSTOM_ACTION) if(CMAKE_CONFIGURATION_TYPES) - set(WIX_CUSTOM_ACTION_MULTI_CONFIG TRUE) + set(CMake_BUILD_WIX_CUSTOM_ACTION_MULTI_CONFIG TRUE) else() - set(WIX_CUSTOM_ACTION_MULTI_CONFIG FALSE) + set(CMake_BUILD_WIX_CUSTOM_ACTION_MULTI_CONFIG FALSE) endif() -else() - set(WIX_CUSTOM_ACTION_ENABLED FALSE) endif() # Set the options file that needs to be included inside CMakeCPackOptions.cmake diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index 7aacf8eceb..00ffe5e819 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -268,14 +268,14 @@ if("${CPACK_GENERATOR}" STREQUAL "WIX") "@CMake_SOURCE_DIR@/Utilities/Release/WiX/cmake_extra_dialog.wxs" ) - set(_WIX_CUSTOM_ACTION_ENABLED "@WIX_CUSTOM_ACTION_ENABLED@") + set(_WIX_CUSTOM_ACTION_ENABLED "@CMake_BUILD_WIX_CUSTOM_ACTION@") if(_WIX_CUSTOM_ACTION_ENABLED) list(APPEND CPACK_WIX_EXTRA_SOURCES "@CMake_SOURCE_DIR@/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs" ) list(APPEND CPACK_WIX_CANDLE_EXTRA_FLAGS -dCHECK_NSIS=1) - set(_WIX_CUSTOM_ACTION_MULTI_CONFIG "@WIX_CUSTOM_ACTION_MULTI_CONFIG@") + set(_WIX_CUSTOM_ACTION_MULTI_CONFIG "@CMake_BUILD_WIX_CUSTOM_ACTION_MULTI_CONFIG@") if(_WIX_CUSTOM_ACTION_MULTI_CONFIG) if(CPACK_BUILD_CONFIG) set(_WIX_CUSTOM_ACTION_CONFIG "${CPACK_BUILD_CONFIG}") diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 42f856361c..52aba53af1 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -978,16 +978,8 @@ if(BUILD_TESTING) endif() endif() - # On Windows run the CPackWiXGenerator test - # if the WiX Toolset seems to be available if(WIN32) - file(TO_CMAKE_PATH "$ENV{WIX}" WIX_ROOT) - - find_program(WIX_LIGHT_EXECUTABLE light - PATHS "${WIX_ROOT}/bin" - DOC "WiX Toolset light.exe location") - - if(WIX_LIGHT_EXECUTABLE) + if(CMake_TEST_CPACK_WIX) add_test(CPackWiXGenerator ${CMAKE_CTEST_COMMAND} -C \${CTEST_CONFIGURATION_TYPE} --build-and-test diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index 2a8c8553d6..5e6ef0a361 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -13,7 +13,7 @@ else() add_subdirectory(Sphinx) endif() -if(WIX_CUSTOM_ACTION_ENABLED) +if(CMake_BUILD_WIX_CUSTOM_ACTION) add_subdirectory(Release/WiX) endif() diff --git a/Utilities/Release/WiX/cmake_extra_dialog.wxs b/Utilities/Release/WiX/cmake_extra_dialog.wxs index 0ee3d99e7f..247b6271eb 100644 --- a/Utilities/Release/WiX/cmake_extra_dialog.wxs +++ b/Utilities/Release/WiX/cmake_extra_dialog.wxs @@ -1,36 +1,36 @@ - - - - + + + + - - + + - - 1 - + + 1 + - - - - - + + + + + - + - - - - - - - + + + + + + + - - - - - - + + + + + + diff --git a/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs b/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs index 8fe60f2cd2..88335f871f 100644 --- a/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs +++ b/Utilities/Release/WiX/cmake_nsis_overwrite_dialog.wxs @@ -1,21 +1,21 @@ - - - - - 1 - - - - Uninstall.exe was detected in your chosen installation prefix. - This indicates a conflicting NSIS based installation of CMake. + + + + + 1 + + + + Uninstall.exe was detected in your chosen installation prefix. + This indicates a conflicting NSIS based installation of CMake. - Please uninstall your old CMake installation or choose a different - installation directory. - - - - - - + Please uninstall your old CMake installation or choose a different + installation directory. + + + + + + diff --git a/Utilities/Release/WiX/custom_action_dll.wxs.in b/Utilities/Release/WiX/custom_action_dll.wxs.in index 021e63c5f4..64e976298a 100644 --- a/Utilities/Release/WiX/custom_action_dll.wxs.in +++ b/Utilities/Release/WiX/custom_action_dll.wxs.in @@ -1,6 +1,6 @@ - - - + + + diff --git a/Utilities/Release/WiX/install_dir.wxs b/Utilities/Release/WiX/install_dir.wxs index 49b74e37d7..b0e795ac36 100644 --- a/Utilities/Release/WiX/install_dir.wxs +++ b/Utilities/Release/WiX/install_dir.wxs @@ -1,72 +1,72 @@ - - - - - + + + + + - - + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - 1 - "1"]]> + 1 + "1"]]> - 1 + 1 - NOT Installed - Installed AND PATCH + NOT Installed + Installed AND PATCH - 1 - LicenseAccepted = "1" + 1 + LicenseAccepted = "1" - 1 - 1 - NOT WIXUI_DONTVALIDATEPATH - "1"]]> - - 1 - CMAKE_NSIS_OVERWRITE_DETECTED="1" - - 1]]> - 1 - 1 + 1 + 1 + NOT WIXUI_DONTVALIDATEPATH + "1"]]> + + 1 + CMAKE_NSIS_OVERWRITE_DETECTED="1" + + 1]]> + 1 + 1 - 1 - 1 + 1 + 1 - NOT Installed - Installed AND NOT PATCH - Installed AND PATCH + NOT Installed + Installed AND NOT PATCH + Installed AND PATCH - 1 + 1 - 1 - 1 - 1 + 1 + 1 + 1 - - + + - + - - - - + + + +