summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-06-06 12:32:00 (GMT)
committerBrad King <brad.king@kitware.com>2024-06-06 12:32:00 (GMT)
commit74e233e8f509095f252b302cc55667e6d1aeb639 (patch)
tree36a2a76ec1f8426eec038ac4aad91a84f44ef451
parent20d1f96dac916032a309244f8e1d79d26ed008ab (diff)
parent01670894849ca79725b39b5bee9f75a4b5b9419b (diff)
downloadCMake-74e233e8f509095f252b302cc55667e6d1aeb639.zip
CMake-74e233e8f509095f252b302cc55667e6d1aeb639.tar.gz
CMake-74e233e8f509095f252b302cc55667e6d1aeb639.tar.bz2
Merge topic 'backport-3.29-cpack-wix-scope-default' into release-3.29
0167089484 CPack/WiX: Restore default (missing) InstallScope from 3.28 and lower Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9586
-rw-r--r--Help/cpack_gen/wix.rst13
-rw-r--r--Help/release/3.29.rst26
-rw-r--r--Modules/Internal/CPack/CPackWIX.cmake2
3 files changed, 32 insertions, 9 deletions
diff --git a/Help/cpack_gen/wix.rst b/Help/cpack_gen/wix.rst
index cb56c9d..43e3ff7 100644
--- a/Help/cpack_gen/wix.rst
+++ b/Help/cpack_gen/wix.rst
@@ -346,7 +346,7 @@ Windows using WiX.
This variable can be optionally set to specify the ``InstallScope``
of the installer:
- ``perMachine`` (default)
+ ``perMachine``
Create an installer that installs for all users and requires
administrative privileges. Start menu entries created by the
installer are visible to all users.
@@ -357,6 +357,8 @@ Windows using WiX.
``NONE``
Create an installer without any ``InstallScope`` attribute.
+ This is the default to preserve compatibility with CPack 3.28 and older.
+
.. deprecated:: 3.29
This value is only for compatibility with the inconsistent behavior used
@@ -365,4 +367,13 @@ Windows using WiX.
but the start menu entry and uninstaller registration are created only
for the current user.
+ .. warning::
+
+ An installation performed by an installer created without any
+ ``InstallScope`` cannot be cleanly updated or replaced by an
+ installer with an ``InstallScope``. In order to transition
+ a project's installers from ``NONE`` to ``perMachine``, the
+ latter installer should be distributed with instructions to
+ first manually uninstall any older version.
+
See https://wixtoolset.org/docs/v3/xsd/wix/package/
diff --git a/Help/release/3.29.rst b/Help/release/3.29.rst
index 3903c91..10912b2 100644
--- a/Help/release/3.29.rst
+++ b/Help/release/3.29.rst
@@ -193,13 +193,6 @@ Other Changes
* The :variable:`CPACK_PRODUCTBUILD_DOMAINS` variable now defaults to true.
See policy :policy:`CMP0161`.
-* The :cpack_gen:`CPack WIX Generator` now produces WiX MSI installers
- that create start menu and uninstall entries for all users by default,
- as documented by the :variable:`CPACK_WIX_INSTALL_SCOPE` variable
- ``perMachine`` value. Previously, without a custom WiX template,
- it produced installers that would only create start menu and uninstall
- entries for the current user, even though they install for all users.
-
Updates
=======
@@ -218,3 +211,22 @@ Changes made since CMake 3.29.0 include the following.
* These versions made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.
+
+3.29.5
+------
+
+* The :cpack_gen:`CPack WIX Generator`'s :variable:`CPACK_WIX_INSTALL_SCOPE`
+ variable, new in 3.29, now defaults to ``NONE``. This restores
+ compatibility with behavior of 3.28 and below: without a custom WiX
+ template, it produces installers that only create start menu and
+ uninstall entries for the current user, even though they install
+ for all users.
+
+ In 3.29.0 through 3.29.4, ``CPACK_WIX_INSTALL_SCOPE`` defaulted to
+ ``perMachine``. This created MSI installers that create start menu
+ and uninstall entries for all users by default. While this behavior
+ is better on its own, these installers do not cleanly replace existing
+ installations created with MSI installers produced by 3.28 and below.
+ 3.29.5 reverts the default for compatibility. Projects may transition
+ to ``perMachine`` on their own schedule by setting
+ ``CPACK_WIX_INSTALL_SCOPE``.
diff --git a/Modules/Internal/CPack/CPackWIX.cmake b/Modules/Internal/CPack/CPackWIX.cmake
index 5fe772e..c40ddd5 100644
--- a/Modules/Internal/CPack/CPackWIX.cmake
+++ b/Modules/Internal/CPack/CPackWIX.cmake
@@ -20,5 +20,5 @@ if(NOT CPACK_WIX_LIGHT_EXECUTABLE)
endif()
if(NOT DEFINED CPACK_WIX_INSTALL_SCOPE)
- set(CPACK_WIX_INSTALL_SCOPE "perMachine")
+ set(CPACK_WIX_INSTALL_SCOPE "NONE")
endif()