mirror of
https://github.com/neovim/neovim.git
synced 2025-10-21 09:12:07 +00:00
refactor(packaging): Windows: improve MSI, remove NSIS #18069
- Removed NSIS installer. - Prevents undefined behaviour when two installations are performed to the same directory (NSIS + MSI). - Reduced cost of maintaining two installers that do the same thing. - Chose Wix MSI due to its better integration with Windows. - Added Wix patch file to add neovim binaries to the system path during installation. - Replaced neovim installer icons with better looking versions. - Renamed neovim installer icons from logo.ico -> neovim.ico for all icons to better reflect contents.
This commit is contained in:
10
.github/workflows/notes.md
vendored
10
.github/workflows/notes.md
vendored
@@ -16,15 +16,6 @@ ${NVIM_VERSION}
|
||||
|
||||
1. Download **nvim-win64.msi**
|
||||
2. Run the MSI
|
||||
3. Add the Neovim location to your path.
|
||||
- Default location is `C:\Program Files\Neovim`
|
||||
4. Search and run `nvim-qt.exe` or run `nvim.exe` on your CLI of choice.
|
||||
|
||||
#### NSIS
|
||||
|
||||
1. Download **nvim-win64.exe**
|
||||
2. Run the installer.
|
||||
- Ensure that the option to add the installation location to your path is checked if it's your first installation.
|
||||
3. Search and run `nvim-qt.exe` or run `nvim.exe` on your CLI of choice.
|
||||
|
||||
### macOS
|
||||
@@ -70,5 +61,4 @@ ${SHA_APP_IMAGE_ZSYNC}
|
||||
${SHA_MACOS}
|
||||
${SHA_WIN_64_ZIP}
|
||||
${SHA_WIN_64_MSI}
|
||||
${SHA_WIN_64_EXE}
|
||||
```
|
||||
|
7
.github/workflows/release.yml
vendored
7
.github/workflows/release.yml
vendored
@@ -146,11 +146,6 @@ jobs:
|
||||
name: ${{ matrix.archive }}
|
||||
path: build/${{ matrix.archive }}.msi
|
||||
retention-days: 1
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ matrix.archive }}
|
||||
path: build/${{ matrix.archive }}.exe
|
||||
retention-days: 1
|
||||
|
||||
publish:
|
||||
needs: [linux, appimage, macOS, windows]
|
||||
@@ -226,8 +221,6 @@ jobs:
|
||||
echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
|
||||
sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
|
||||
echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
|
||||
sha256sum nvim-win64.exe > nvim-win64.exe.sha256sum
|
||||
echo "SHA_WIN_64_EXE=$(cat nvim-win64.exe.sha256sum)" >> $GITHUB_ENV
|
||||
- name: Publish release
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
@@ -23,7 +23,7 @@ set(CPACK_RESOURCE_FILE_README ${PROJECT_SOURCE_DIR}/README.md)
|
||||
|
||||
if(WIN32)
|
||||
set(CPACK_PACKAGE_FILE_NAME "nvim-win64")
|
||||
set(CPACK_GENERATOR ZIP WIX NSIS)
|
||||
set(CPACK_GENERATOR ZIP WIX)
|
||||
|
||||
# WIX
|
||||
# CPACK_WIX_UPGRADE_GUID should be set, but should never change.
|
||||
@@ -32,31 +32,17 @@ if(WIN32)
|
||||
# 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 ${CMAKE_CURRENT_LIST_DIR}/logo.ico)
|
||||
set(CPACK_WIX_PRODUCT_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.ico)
|
||||
|
||||
# NSIS
|
||||
# install icon
|
||||
set(CPACK_NSIS_MUI_ICON ${CMAKE_CURRENT_LIST_DIR}/logo.ico)
|
||||
|
||||
# uninstall icon
|
||||
set(CPACK_NSIS_MUI_UNIICON ${CMAKE_CURRENT_LIST_DIR}/logo.ico)
|
||||
|
||||
# icon that appears when you search in Add/Remove programs
|
||||
set(CPACK_NSIS_INSTALLED_ICON_NAME ${CMAKE_CURRENT_LIST_DIR}/logo.ico)
|
||||
|
||||
# name that appears in the list in Add/Remove programs
|
||||
set(CPACK_NSIS_DISPLAY_NAME "Neovim")
|
||||
|
||||
# name used in various installer UI locations, such as the title
|
||||
set(CPACK_NSIS_PACKAGE_NAME "Neovim")
|
||||
|
||||
# Allow the user to modify their path to include neovim during
|
||||
# the installation process.
|
||||
set(CPACK_NSIS_MODIFY_PATH TRUE)
|
||||
# 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.
|
||||
# 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")
|
||||
set(CPACK_GENERATOR TGZ)
|
||||
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/logo.icns)
|
||||
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)
|
||||
|
16
packaging/WixPatch.xml
Normal file
16
packaging/WixPatch.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<CPackWiXPatch>
|
||||
<!-- Fragment ID is from: <your build dir>/_CPack_Packages/win64/WIX/files.wxs -->
|
||||
<CPackWiXFragment Id="CM_CP_bin.nvim.exe">
|
||||
<!-- Note: if we were to specify Value='[INSTALL_ROOT]\bin' - with a backslash, the installer will still
|
||||
use a forward slash in the path. -->
|
||||
<Environment
|
||||
Id='UpdatePath'
|
||||
Name='PATH'
|
||||
Action='set'
|
||||
Permanent='no'
|
||||
System='yes'
|
||||
Part='last'
|
||||
Value='[INSTALL_ROOT]/bin'
|
||||
/>
|
||||
</CPackWiXFragment>
|
||||
</CPackWiXPatch>
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 54 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#D" x=".5" y=".5"/><defs><linearGradient x1="50.00%" y1="0.00%" x2="50.00%" y2="100.00%" id="A"><stop stop-color="#16b0ed" stop-opacity=".8" offset="0%"/><stop stop-color="#0f59b2" stop-opacity=".837" offset="100%"/></linearGradient><linearGradient x1="50.00%" y1="0.00%" x2="50.00%" y2="100.00%" id="B"><stop stop-color="#7db643" offset="0%"/><stop stop-color="#367533" offset="100%"/></linearGradient><linearGradient x1="50.00%" y1="-0.00%" x2="50.00%" y2="100.01%" id="C"><stop stop-color="#88c649" stop-opacity=".8" offset="0%"/><stop stop-color="#439240" stop-opacity=".84" offset="100%"/></linearGradient></defs><symbol id="D" overflow="visible"><g stroke="none"><path d="M0 13.761L13.63 0v63.983L0 50.381z" fill="url(#A)"/><path d="M52.664 13.894L38.848.008l.281 63.976 13.63-13.602z" fill="url(#B)"/><path d="M13.621.011l35.435 54.07-9.916 9.915L3.686 10.046z" fill="url(#C)"/><path d="M13.633 25.092l-.019 2.13L2.676 11.069l1.013-1.032z" fill="#000" fill-opacity=".13"/></g></symbol></svg>
|
Before Width: | Height: | Size: 1.2 KiB |
BIN
packaging/neovim.icns
Normal file
BIN
packaging/neovim.icns
Normal file
Binary file not shown.
BIN
packaging/neovim.ico
Normal file
BIN
packaging/neovim.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 120 KiB |
BIN
packaging/neovim.png
Normal file
BIN
packaging/neovim.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.6 KiB |
147
packaging/neovim.svg
Normal file
147
packaging/neovim.svg
Normal file
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="256"
|
||||
height="256"
|
||||
viewBox="0 0 256 256"
|
||||
version="1.1"
|
||||
id="svg4612"
|
||||
sodipodi:docname="neovim.svg"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14">
|
||||
<metadata
|
||||
id="metadata4616">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title>neovim-mark@2x</dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1333"
|
||||
id="namedview4614"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.1945358"
|
||||
inkscape:cx="132.84232"
|
||||
inkscape:cy="196.34741"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="34"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4612" />
|
||||
<title
|
||||
id="title4587">neovim-mark@2x</title>
|
||||
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
|
||||
<defs
|
||||
id="defs4604">
|
||||
<linearGradient
|
||||
x1="167.95833"
|
||||
y1="-0.46142399"
|
||||
x2="167.95833"
|
||||
y2="335.45523"
|
||||
id="linearGradient-1"
|
||||
gradientTransform="scale(0.46142398,2.1672042)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#16B0ED"
|
||||
stop-opacity="0.800235524"
|
||||
offset="0%"
|
||||
id="stop4589" />
|
||||
<stop
|
||||
stop-color="#0F59B2"
|
||||
stop-opacity="0.83700023"
|
||||
offset="100%"
|
||||
id="stop4591" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="1118.3427"
|
||||
y1="-0.46586797"
|
||||
x2="1118.3427"
|
||||
y2="338.68604"
|
||||
id="linearGradient-2"
|
||||
gradientTransform="scale(0.46586797,2.1465309)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#7DB643"
|
||||
offset="0%"
|
||||
id="stop4594" />
|
||||
<stop
|
||||
stop-color="#367533"
|
||||
offset="100%"
|
||||
id="stop4596" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
x1="356.33795"
|
||||
y1="0"
|
||||
x2="356.33795"
|
||||
y2="612.90131"
|
||||
id="linearGradient-3"
|
||||
gradientTransform="scale(0.84189739,1.1877932)"
|
||||
gradientUnits="userSpaceOnUse">
|
||||
<stop
|
||||
stop-color="#88C649"
|
||||
stop-opacity="0.8"
|
||||
offset="0%"
|
||||
id="stop4599" />
|
||||
<stop
|
||||
stop-color="#439240"
|
||||
stop-opacity="0.84"
|
||||
offset="100%"
|
||||
id="stop4601" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g
|
||||
id="Page-1"
|
||||
sketch:type="MSPage"
|
||||
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1"
|
||||
transform="matrix(0.34367476,0,0,0.34367476,25.312651,1.7737533)">
|
||||
<g
|
||||
id="mark-copy"
|
||||
sketch:type="MSLayerGroup"
|
||||
transform="translate(2,3)">
|
||||
<path
|
||||
d="M 0,155.5704 155,-1 V 727 L 0,572.23792 Z"
|
||||
id="Left---green"
|
||||
sketch:type="MSShapeGroup"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient-1)" />
|
||||
<path
|
||||
d="M 443.0604,156.9824 600,-1 596.81879,727 442,572.21994 Z"
|
||||
id="Right---blue"
|
||||
sketch:type="MSShapeGroup"
|
||||
transform="matrix(-1,0,0,1,1042,0)"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient-2)" />
|
||||
<path
|
||||
d="M 154.98629,0 558,615.1897 445.2246,728 42,114.17202 Z"
|
||||
id="Cross---blue"
|
||||
sketch:type="MSShapeGroup"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:url(#linearGradient-3)" />
|
||||
<path
|
||||
d="M 155,283.83232 154.78675,308 31,124.71061 42.461949,113 Z"
|
||||
id="Shadow"
|
||||
sketch:type="MSShapeGroup"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-opacity:0.12999998" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
Reference in New Issue
Block a user