1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-19 19:43:23 +08:00

CPack/WIX: Add CPACK_WIX_ARCHITECTURE to support Windows for ARM installers

This commit is contained in:
jakoblover
2022-05-03 15:07:17 +02:00
committed by Brad King
parent ef10e61b6b
commit cae7e5e38d
3 changed files with 27 additions and 1 deletions

View File

@@ -328,3 +328,12 @@ Windows using WiX.
If this variable is set then the inclusion of WixUIExtensions is skipped,
i.e. the ``-ext "WixUIExtension"`` command line is not included during
the execution of the WiX light tool.
.. variable:: CPACK_WIX_ARCHITECTURE
.. versionadded:: 3.24
This variable can be optionally set to specify the target architecture
of the installer. May for example be set to ``x64`` or ``arm64``.
When unspecified, CPack will default to ``x64`` or ``x86``.

View File

@@ -0,0 +1,6 @@
cpack-wix-arch
--------------
* The :cpack_gen:`CPack WIX Generator` gained a new variable,
:variable:`CPACK_WIX_ARCHITECTURE`, to specify the installer architecture
in order to support computers running Windows for ARM.

View File

@@ -89,10 +89,21 @@ bool cmCPackWIXGenerator::RunCandleCommand(std::string const& sourceFile,
return false;
}
std::string arch;
if (cmValue archOpt = GetOption("CPACK_WIX_ARCHITECTURE")) {
arch = *archOpt;
} else {
arch = GetArchitecture();
cmCPackLogger(
cmCPackLog::LOG_VERBOSE,
"CPACK_WIX_ARCHITECTURE was not set. Invoking WiX with architecture "
<< arch << " . " << std::endl);
}
std::ostringstream command;
command << QuotePath(executable);
command << " -nologo";
command << " -arch " << GetArchitecture();
command << " -arch " << arch;
command << " -out " << QuotePath(objectFile);
for (std::string const& ext : CandleExtensions) {