diff --git a/cmake.packaging/CMakeLists.txt b/cmake.packaging/CMakeLists.txt index 645215ec92..7dd3f211f3 100644 --- a/cmake.packaging/CMakeLists.txt +++ b/cmake.packaging/CMakeLists.txt @@ -39,6 +39,10 @@ if(WIN32) set(CPACK_WIX_PROGRAM_MENU_FOLDER "${CPACK_PACKAGE_NAME}") set(CPACK_PACKAGE_EXECUTABLES "nvim" "Neovim") + set(CPACK_WIX_UI_REF "WixUI_CustomInstallDir") + list(APPEND CPACK_WIX_EXTRA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/WixUI_CustomInstallDir.wxs) + list(APPEND CPACK_WIX_EXTRA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/CustomInstallDirDlg.wxs) + # 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) diff --git a/cmake.packaging/CustomInstallDirDlg.wxs b/cmake.packaging/CustomInstallDirDlg.wxs new file mode 100644 index 0000000000..73864cec0b --- /dev/null +++ b/cmake.packaging/CustomInstallDirDlg.wxs @@ -0,0 +1,41 @@ + + + + + + + + + + + + 1 + + + + + + + + + + Note: besides its installation folder, [ProductName] stores configuration, data, and logs in standard locations. These can be further configured by the $NVIM_APPNAME environment variable. Also, the "base" (root) directories conform to the XDG Base Directory Specification. For more information see: + + + https://neovim.io/doc/user/starting.html#standard-path]]> + + + https://neovim.io/doc/user/starting.html#base-directories]]> + + + https://neovim.io/doc/user/starting.html#$NVIM_APPNAME]]> + + + Install [ProductName] to: + + + + + + + diff --git a/cmake.packaging/WixUI_CustomInstallDir.wxs b/cmake.packaging/WixUI_CustomInstallDir.wxs new file mode 100644 index 0000000000..8015758771 --- /dev/null +++ b/cmake.packaging/WixUI_CustomInstallDir.wxs @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + "1"]]> + + 1 + + NOT Installed + Installed AND PATCH + + 1 + LicenseAccepted = "1" + + 1 + 1 + NOT WIXUI_DONTVALIDATEPATH + "1"]]> + WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1" + 1 + 1 + + NOT Installed + Installed AND NOT PATCH + Installed AND PATCH + + 1 + + 1 + 1 + 1 + + + + + + +