aboutsummaryrefslogtreecommitdiff
path: root/cmake.packaging
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2022-06-27 03:08:59 -0700
committerJustin M. Keyes <justinkz@gmail.com>2022-06-28 04:02:29 -0700
commitf05a2891d3da9f9fcd9c7457ca0c2a54ff65078b (patch)
treede382ef0008871d7e7a41b29172b41bd97a39e05 /cmake.packaging
parent9ddb481d88d3926111e83d512921ebe98bb426ae (diff)
downloadrneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.tar.gz
rneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.tar.bz2
rneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.zip
build: rename build-related dirs
Problem: Dirs "config", "packaging", and "third-party" are all closely related but this is not obvious from the layout. This adds friction for new contributors. Solution: - rename config/ to cmake.config/ - rename test/config/ to test/cmakeconfig/ because it is used in Lua tests: require('test.cmakeconfig.paths'). - rename packaging/ to cmake.packaging/ - rename third-party/ to cmake.deps/ (parallel with .deps/)
Diffstat (limited to 'cmake.packaging')
-rw-r--r--cmake.packaging/CMakeLists.txt64
-rw-r--r--cmake.packaging/WixPatch.xml14
-rw-r--r--cmake.packaging/neovim.icnsbin0 -> 86517 bytes
-rw-r--r--cmake.packaging/neovim.icobin0 -> 122355 bytes
-rw-r--r--cmake.packaging/neovim.pngbin0 -> 6758 bytes
-rw-r--r--cmake.packaging/neovim.svg147
6 files changed, 225 insertions, 0 deletions
diff --git a/cmake.packaging/CMakeLists.txt b/cmake.packaging/CMakeLists.txt
new file mode 100644
index 0000000000..8538075388
--- /dev/null
+++ b/cmake.packaging/CMakeLists.txt
@@ -0,0 +1,64 @@
+set(CPACK_PACKAGE_NAME "Neovim")
+set(CPACK_PACKAGE_VENDOR "neovim.io")
+set(CPACK_PACKAGE_FILE_NAME "nvim")
+
+# 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 ${CMAKE_CURRENT_LIST_DIR}/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.
+ # 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}/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)
diff --git a/cmake.packaging/WixPatch.xml b/cmake.packaging/WixPatch.xml
new file mode 100644
index 0000000000..3cbbb04850
--- /dev/null
+++ b/cmake.packaging/WixPatch.xml
@@ -0,0 +1,14 @@
+<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>
+</CPackWiXPatch>
diff --git a/cmake.packaging/neovim.icns b/cmake.packaging/neovim.icns
new file mode 100644
index 0000000000..df0e982369
--- /dev/null
+++ b/cmake.packaging/neovim.icns
Binary files differ
diff --git a/cmake.packaging/neovim.ico b/cmake.packaging/neovim.ico
new file mode 100644
index 0000000000..e0c151c966
--- /dev/null
+++ b/cmake.packaging/neovim.ico
Binary files differ
diff --git a/cmake.packaging/neovim.png b/cmake.packaging/neovim.png
new file mode 100644
index 0000000000..a3960b41bd
--- /dev/null
+++ b/cmake.packaging/neovim.png
Binary files differ
diff --git a/cmake.packaging/neovim.svg b/cmake.packaging/neovim.svg
new file mode 100644
index 0000000000..d82ad667c1
--- /dev/null
+++ b/cmake.packaging/neovim.svg
@@ -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>