mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-19 11:18:40 +08:00
CPack/WiX: Restore default (missing) InstallScope from 3.28 and lower
In commit 60661f6770
(CPack/WiX: Make InstallScope configurable,
2023-11-07, v3.29.0-rc1~413^2) the `CPACK_WIX_INSTALL_SCOPE` default was
set to `perMachine`. While installers created with `perMachine` have
better behavior on their own than installers created without any
`InstallScope`, they do not cleanly convert existing installations on
updates.
Fixes: #26029
This commit is contained in:
@@ -453,19 +453,23 @@ Windows using WiX.
|
|||||||
This variable can be optionally set to specify the ``InstallScope``
|
This variable can be optionally set to specify the ``InstallScope``
|
||||||
of the installer:
|
of the installer:
|
||||||
|
|
||||||
``perMachine`` (default)
|
``perMachine``
|
||||||
Create an installer that installs for all users and requires
|
Create an installer that installs for all users and requires
|
||||||
administrative privileges. Start menu entries created by the
|
administrative privileges. Start menu entries created by the
|
||||||
installer are visible to all users.
|
installer are visible to all users.
|
||||||
|
|
||||||
|
This is the default if :variable:`CPACK_WIX_VERSION` is set to any
|
||||||
|
value other than ``3``.
|
||||||
|
|
||||||
``perUser``
|
``perUser``
|
||||||
Not yet supported. This is reserved for future use.
|
Not yet supported. This is reserved for future use.
|
||||||
|
|
||||||
``NONE``
|
``NONE``
|
||||||
Create an installer without any ``InstallScope`` attribute.
|
Create an installer without any ``InstallScope`` attribute.
|
||||||
|
|
||||||
This is not supported if :variable:`CPACK_WIX_VERSION` is set
|
If :variable:`CPACK_WIX_VERSION` is not set, or is set to ``3``, this
|
||||||
to any value other than ``3``.
|
value is the default to preserve compatibility with 3.28 and lower.
|
||||||
|
Otherwise, this value is not supported.
|
||||||
|
|
||||||
.. deprecated:: 3.29
|
.. deprecated:: 3.29
|
||||||
|
|
||||||
@@ -475,4 +479,13 @@ Windows using WiX.
|
|||||||
but the start menu entry and uninstaller registration are created only
|
but the start menu entry and uninstaller registration are created only
|
||||||
for the current user.
|
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/
|
See https://wixtoolset.org/docs/v3/xsd/wix/package/
|
||||||
|
@@ -11,6 +11,10 @@ if(CPACK_WIX_VERSION VERSION_GREATER_EQUAL 4)
|
|||||||
if(NOT CPACK_WIX_EXECUTABLE)
|
if(NOT CPACK_WIX_EXECUTABLE)
|
||||||
message(FATAL_ERROR "Could not find the 'wix' executable.")
|
message(FATAL_ERROR "Could not find the 'wix' executable.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT DEFINED CPACK_WIX_INSTALL_SCOPE)
|
||||||
|
set(CPACK_WIX_INSTALL_SCOPE "perMachine")
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
find_program(CPACK_WIX_CANDLE_EXECUTABLE candle
|
find_program(CPACK_WIX_CANDLE_EXECUTABLE candle
|
||||||
PATHS "${CPACK_WIX_ROOT}" PATH_SUFFIXES "bin")
|
PATHS "${CPACK_WIX_ROOT}" PATH_SUFFIXES "bin")
|
||||||
@@ -23,8 +27,8 @@ else()
|
|||||||
if(NOT CPACK_WIX_LIGHT_EXECUTABLE)
|
if(NOT CPACK_WIX_LIGHT_EXECUTABLE)
|
||||||
message(FATAL_ERROR "Could not find the WiX light executable.")
|
message(FATAL_ERROR "Could not find the WiX light executable.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT DEFINED CPACK_WIX_INSTALL_SCOPE)
|
if(NOT DEFINED CPACK_WIX_INSTALL_SCOPE)
|
||||||
set(CPACK_WIX_INSTALL_SCOPE "perMachine")
|
set(CPACK_WIX_INSTALL_SCOPE "NONE")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
Reference in New Issue
Block a user