mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
1f58e27600
Problem:
The windows installer did not have the AllUsers property which leads to
the installer being misidentified as per user installer.
Currently the installer already requires administrative privileges and
installs into the system-wide ProgramFiles directory, but the start menu
entry and uninstaller registration are created only for the current user.
Issue: #29885
https://cmake.org/cmake/help/latest/cpack_gen/wix.html#variable:CPACK_WIX_INSTALL_SCOPE
Solution:
With setting CPACK_WIX_INSTALL_SCOPE to "perMachine" the generated msi
installer includes the Property ALLUSERS=1.
Additionally the start menu entries and uninstaller registration will be
created for all users.
(cherry picked from commit 88f07d6ca4
)
70 lines
2.8 KiB
CMake
70 lines
2.8 KiB
CMake
set(CPACK_PACKAGE_NAME "Neovim")
|
|
set(CPACK_PACKAGE_VENDOR "neovim.io")
|
|
set(CPACK_PACKAGE_FILE_NAME "nvim")
|
|
set(CPACK_PACKAGE_DIRECTORY ${PROJECT_BINARY_DIR})
|
|
|
|
# From the GitHub About section
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Vim-fork focused on extensibility and usability.")
|
|
|
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
|
|
|
|
# Pull the versions defined with the top level CMakeLists.txt
|
|
set(CPACK_PACKAGE_VERSION_MAJOR ${NVIM_VERSION_MAJOR})
|
|
set(CPACK_PACKAGE_VERSION_MINOR ${NVIM_VERSION_MINOR})
|
|
set(CPACK_PACKAGE_VERSION_PATCH ${NVIM_VERSION_PATCH})
|
|
|
|
# CPACK_VERBATIM_VARIABLES ensures that the variables prefixed with *CPACK_*
|
|
# are correctly passed to the cpack program.
|
|
# This should always be set to true.
|
|
set(CPACK_VERBATIM_VARIABLES TRUE)
|
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
|
|
set(CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/README.md)
|
|
|
|
|
|
if(WIN32)
|
|
set(CPACK_PACKAGE_FILE_NAME "nvim-win64")
|
|
set(CPACK_GENERATOR ZIP WIX)
|
|
|
|
# WIX
|
|
# CPACK_WIX_UPGRADE_GUID should be set, but should never change.
|
|
# CPACK_WIX_PRODUCT_GUID should not be set (leave as default to auto-generate).
|
|
|
|
# The following guid is just a randomly generated guid that's been pasted here.
|
|
# It has no special meaning other than to supply it to WIX.
|
|
set(CPACK_WIX_UPGRADE_GUID "207A1A70-7B0C-418A-A153-CA6883E38F4D")
|
|
set(CPACK_WIX_PRODUCT_ICON ${PROJECT_SOURCE_DIR}/runtime/neovim.ico)
|
|
|
|
# Create start menu and desktop shortcuts
|
|
set(CPACK_WIX_PROGRAM_MENU_FOLDER "${CPACK_PACKAGE_NAME}")
|
|
set(CPACK_PACKAGE_EXECUTABLES "nvim" "Neovim")
|
|
set(CPACK_WIX_INSTALL_SCOPE "perMachine")
|
|
|
|
# We use a wix patch to add further options to the installer.
|
|
# See: https://cmake.org/cmake/help/v3.7/module/CPackWIX.html#variable:CPACK_WIX_PATCH_FILE
|
|
list(APPEND CPACK_WIX_EXTENSIONS WixUtilExtension)
|
|
list(APPEND CPACK_WIX_PATCH_FILE ${CMAKE_CURRENT_LIST_DIR}/WixPatch.xml)
|
|
elseif(APPLE)
|
|
set(CPACK_PACKAGE_FILE_NAME "nvim-macos-${CMAKE_SYSTEM_PROCESSOR}")
|
|
set(CPACK_GENERATOR TGZ)
|
|
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set(CPACK_PACKAGE_FILE_NAME "nvim-linux64")
|
|
set(CPACK_GENERATOR TGZ DEB)
|
|
set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required
|
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required
|
|
|
|
# Automatically compute required shared lib dependencies.
|
|
# Unfortunately, you "just need to know" that this has a hidden
|
|
# dependency on dpkg-shlibdeps whilst using a debian based host.
|
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS TRUE)
|
|
else()
|
|
set(CPACK_GENERATOR TGZ)
|
|
endif()
|
|
|
|
# CPack variables are loaded in on the call to include(CPack). If you set
|
|
# variables *after* the inclusion, they don't get updated within the CPack
|
|
# config. Note that some CPack commands should still be run after it, such
|
|
# as cpack_add_component().
|
|
include(CPack)
|