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 @@
-
-
-
-
+
+
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 @@
-
-
-
+
+
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
-
-
+
+
-
+
-
-
-
-
+
+
+
+