diff options
author | Alexandre Teoi <ateoi@users.noreply.github.com> | 2023-04-02 13:36:35 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-02 18:36:35 +0200 |
commit | 53f36806f1b5107c0570ffbf57180a8e08f45b2e (patch) | |
tree | 53120cf9881f763f0fe5bc3815be9d004eeab128 | |
parent | 598ff4f7d17791326a5d991c1c947cce6faf1b1a (diff) | |
download | rneovim-53f36806f1b5107c0570ffbf57180a8e08f45b2e.tar.gz rneovim-53f36806f1b5107c0570ffbf57180a8e08f45b2e.tar.bz2 rneovim-53f36806f1b5107c0570ffbf57180a8e08f45b2e.zip |
feat(packaging): add start menu and desktop shortcuts on Windows
- Create start menu and desktop shortcuts
- Set installation context to per-user, allowing non-administrative users to
install the MSI package
- <https://learn.microsoft.com/windows/win32/msi/installation-context>
- <https://learn.microsoft.com/windows/win32/msi/allusers>
Resolves #18119
-rw-r--r-- | cmake.packaging/CMakeLists.txt | 9 | ||||
-rw-r--r-- | cmake.packaging/WixPatch.xml | 31 |
2 files changed, 26 insertions, 14 deletions
diff --git a/cmake.packaging/CMakeLists.txt b/cmake.packaging/CMakeLists.txt index df43f2806a..b5c91ac457 100644 --- a/cmake.packaging/CMakeLists.txt +++ b/cmake.packaging/CMakeLists.txt @@ -34,8 +34,13 @@ if(WIN32) set(CPACK_WIX_UPGRADE_GUID "207A1A70-7B0C-418A-A153-CA6883E38F4D") set(CPACK_WIX_PRODUCT_ICON ${PROJECT_SOURCE_DIR}/runtime/neovim.ico) - # We use a wix patch to add further options to the installer. At present, it's just to add neovim to the path - # on installation, however, it can be extended. + # Create start menu and desktop shortcuts + set(CPACK_WIX_PROGRAM_MENU_FOLDER "${CPACK_PACKAGE_NAME}") + set(CPACK_PACKAGE_EXECUTABLES "nvim" "Neovim" "nvim-qt" "Neovim Qt") + set(CPACK_CREATE_DESKTOP_LINKS "nvim-qt") + + # We use a wix patch to add further options to the installer. At present, it just adds neovim to the path + # on installation and defines per-user installation, however, it can be extended. # 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) diff --git a/cmake.packaging/WixPatch.xml b/cmake.packaging/WixPatch.xml index 3cbbb04850..1179292636 100644 --- a/cmake.packaging/WixPatch.xml +++ b/cmake.packaging/WixPatch.xml @@ -1,14 +1,21 @@ <CPackWiXPatch> - <!-- Fragment ID is from: <your build dir>/_CPack_Packages/win64/WIX/files.wxs --> - <CPackWiXFragment Id="CM_CP_bin.nvim.exe"> - <Environment - Id='UpdatePath' - Name='PATH' - Action='set' - Permanent='no' - System='yes' - Part='last' - Value='[INSTALL_ROOT]bin' - /> - </CPackWiXFragment> + <!-- Fragment ID is from: <your build dir>/_CPack_Packages/win64/WIX/files.wxs --> + <CPackWiXFragment Id="CM_CP_bin.nvim.exe"> + <Environment + Id='UpdatePath' + Name='PATH' + Action='set' + Permanent='no' + System='no' + Part='last' + Value='[INSTALL_ROOT]bin' + /> + </CPackWiXFragment> + + <!-- Allow installation by non-administrative users --> + <!-- https://learn.microsoft.com/windows/win32/msi/allusers --> + <CPackWiXFragment Id="#PRODUCT"> + <Property Id="ALLUSERS" Value="2" /> + <Property Id="MSIINSTALLPERUSER" Value="1" /> + </CPackWiXFragment> </CPackWiXPatch> |