add NXPackage module

This commit is contained in:
Daniel Wolf 2022-05-13 13:48:44 -04:00
parent 3539424eff
commit 9a47b1fec2
Signed by: nephatrine
GPG Key ID: 59D70EC2E4AAB4D0
15 changed files with 3229 additions and 1 deletions

3
.gitattributes vendored Normal file
View File

@ -0,0 +1,3 @@
* text=auto eol=lf
*.bmp binary
*.ico binary

View File

@ -31,16 +31,25 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/tools")
include(NXProject)
include(NXFormat)
include(NXInstall)
include(NXPackage)
# ==== NXBuild Project ====
nx_project_begin(
CATEGORY "Development/Tools/Building"
MAINTAINER "Daniel Wolf" "nephatrine@gmail.com"
SUPPORT "${PROJECT_HOMEPAGE_URL}/issues"
VENDOR "NephNET" LICENSE "ISC")
VENDOR "NephNET"
LICENSE "ISC")
nx_install_custom(CONTENTS tools COMPONENT DEV)
# cmake-lint: disable=W0106
nx_append(NX_DEBIAN_PACKAGE_REQUIRES "cmake (>= 3.14)")
nx_append(NX_PKGBUILD_PACKAGE_REQUIRES "cmake>=3.14")
nx_append(NX_MINGW_PACKAGE_REQUIRES "\${MINGW_PACKAGE_PREFIX}-cmake>=3.14")
nx_append(NX_RPM_PACKAGE_REQUIRES "cmake >= 3.14")
# ==== FIN. ====
nx_project_end()

78
data/Makefile Normal file
View File

@ -0,0 +1,78 @@
LIGHT_FORE=\#BE4D00
LIGHT_BACK=\#F5E1A4
DARK_FORE=\#E35205
DARK_BACK=\#03090F
all: nsis
clean:
@rm -rf ../build-icons
nsis: nsis-header nsis-panel nsis-icon
nsis-header: ../tools/packaging/header-150x57.bmp
nsis-panel: ../tools/packaging/page-164x314.bmp
nsis-icon: ../tools/packaging/install.ico
../build-icons/logo-color.svg: logo-mono.svg
@mkdir -p ../build-icons
sed "s/#ffffff/$(LIGHT_FORE)/g" $< > $@
../build-icons/logo-simple.svg: logo-simple.svg
@mkdir -p ../build-icons
sed "s/#ffffff/$(LIGHT_FORE)/g" $< > $@
../build-icons/icon-16.png: ../build-icons/logo-simple.svg
rsvg-convert -w 16 -h 16 -a -o $@ $<
../build-icons/icon-16-16.png: ../build-icons/icon-16.png
convert $< -background transparent -gravity Center -extent "16x16" $@
../build-icons/icon-24.png: ../build-icons/logo-simple.svg
rsvg-convert -w 24 -h 24 -a -o $@ $<
../build-icons/icon-24-24.png: ../build-icons/icon-24.png
convert $< -background transparent -gravity Center -extent "24x24" $@
../build-icons/icon-32.png: ../build-icons/logo-color.svg
rsvg-convert -w 32 -h 32 -a -o $@ $<
../build-icons/icon-32-32.png: ../build-icons/icon-32.png
convert $< -background transparent -gravity Center -extent "32x32" $@
../build-icons/icon-48.png: ../build-icons/logo-color.svg
rsvg-convert -w 48 -h 48 -a -o $@ $<
../build-icons/icon-48-48.png: ../build-icons/icon-48.png
convert $< -background transparent -gravity Center -extent "48x48" $@
../build-icons/icon-55.png: ../build-icons/logo-color.svg
rsvg-convert -w 55 -h 55 -a -o $@ $<
../build-icons/icon-55-57.png: ../build-icons/icon-55.png
convert $< -background transparent -gravity Center -extent "57x57" $@
../build-icons/icon-82x160.png: ../build-icons/logo-color.svg
rsvg-convert -w 82 -h 160 -a -o $@ $<
../build-icons/icon-82x160-164.png: ../build-icons/icon-82x160.png
convert $< -background transparent -gravity Center -extent "164x164" $@
../build-icons/icon-256.png: ../build-icons/logo-color.svg
rsvg-convert -w 256 -h 256 -a -o $@ $<
../build-icons/icon-256-256.png: ../build-icons/icon-256.png
convert $< -background transparent -gravity Center -extent "256x256" $@
../tools/packaging/header-150x57.bmp: ../build-icons/icon-55-57.png
convert -size "150x57" gradient:"#FFFFFF"-"$(LIGHT_BACK)" -distort SRT 135 $< -gravity Center -composite "BMP3:header.bmp"
@mv header.bmp $@
../tools/packaging/page-164x314.bmp: ../build-icons/icon-82x160-164.png
convert -size "164x314" gradient:"#FFFFFF"-"$(LIGHT_BACK)" -distort SRT 135 $< -gravity NorthEast -composite "BMP3:page.bmp"
@mv page.bmp $@
../tools/packaging/install.ico: ../build-icons/icon-16-16.png ../build-icons/icon-24-24.png ../build-icons/icon-32-32.png ../build-icons/icon-48-48.png ../build-icons/icon-256-256.png
convert -background transparent -gravity Center $< $@

41
data/logo-mono.svg Normal file
View File

@ -0,0 +1,41 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="95.368553" height="84.553848" viewBox="0 15 258.28983 228.79277"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="matrix(0.1,0,0,-0.1,-1,258.89583)"
fill="#ffffff" stroke="none">
<path d="M205 2432 c-3 -3 -5 -434 -5 -959 l0 -953 290 0 290 0 0 515 c0 297
4 515 9 515 5 0 353 -229 772 -508 420 -280 770 -512 777 -516 9 -6 12 188 12
953 l0 961 -285 0 -285 0 -2 -515 -3 -515 -170 111 c-93 62 -242 159 -330 217
-88 57 -259 169 -380 249 -600 395 -685 450 -690 445z"/>
<path d="M10 270 l0 -120 136 0 c119 0 135 2 124 15 -8 10 -37 15 -98 17 l-87
3 -3 33 -3 32 90 0 c84 0 91 1 91 20 0 19 -7 20 -91 20 l-90 0 3 33 3 32 87 3
c61 2 90 7 98 17 11 13 -5 15 -124 15 l-136 0 0 -120z"/>
<path d="M310 270 l0 -120 40 0 40 0 0 40 0 40 95 0 95 0 0 80 0 80 -135 0
-135 0 0 -120z m195 45 l0 -40 -57 -3 -58 -3 0 46 0 46 58 -3 57 -3 0 -40z"/>
<path d="M620 270 l0 -120 40 0 40 0 0 50 0 50 60 0 60 0 0 -50 0 -50 40 0 40
0 0 120 0 120 -40 0 -40 0 0 -50 0 -50 -60 0 -60 0 0 50 0 50 -40 0 -40 0 0
-120z"/>
<path d="M940 270 l0 -120 35 0 35 0 0 50 0 50 65 0 65 0 0 -50 0 -50 35 0 35
0 0 120 0 120 -135 0 -135 0 0 -120z m198 53 l3 -33 -65 0 c-66 0 -66 0 -66
28 0 40 6 43 70 40 54 -3 55 -4 58 -35z"/>
<path d="M1250 376 c6 -8 33 -16 58 -18 l47 -3 3 -102 3 -103 34 0 35 0 0 105
0 105 44 0 c26 0 48 6 56 15 11 13 -6 15 -140 15 -132 0 -151 -2 -140 -14z"/>
<path d="M1560 270 l0 -120 35 0 34 0 3 103 3 102 63 3 62 3 0 -30 c0 -30 -1
-30 -61 -33 l-60 -3 68 -73 c65 -71 70 -74 108 -70 l40 3 -42 46 c-24 25 -43
49 -43 52 0 3 15 7 33 9 17 2 31 6 30 11 -2 4 -3 32 -3 62 l0 55 -135 0 -135
0 0 -120z"/>
<path d="M1890 270 l0 -120 35 0 35 0 0 120 0 120 -35 0 -35 0 0 -120z"/>
<path d="M2010 293 c0 -132 4 -143 46 -143 l34 0 0 60 c0 33 2 60 6 60 3 0 42
-24 87 -53 45 -30 88 -57 95 -61 9 -6 12 20 12 113 l0 121 -40 0 -39 0 -3 -60
-3 -61 -92 61 c-51 33 -95 60 -98 60 -3 0 -5 -44 -5 -97z"/>
<path d="M2330 270 l0 -120 136 0 c119 0 135 2 124 15 -8 10 -37 15 -98 17
l-87 3 -3 32 -3 32 93 3 c75 2 93 6 93 18 0 12 -18 16 -93 18 l-93 3 3 32 3
32 87 3 c61 2 90 7 98 17 11 13 -5 15 -124 15 l-136 0 0 -120z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

17
data/logo-simple.svg Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="79.384613" height="70.892311" viewBox="0 15 214.99999 191.82625"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="matrix(0.1,0,0,-0.1,-20,258.89583)"
fill="#ffffff" stroke="none">
<path d="M205 2432 c-3 -3 -5 -434 -5 -959 l0 -953 290 0 290 0 0 515 c0 297
4 515 9 515 5 0 353 -229 772 -508 420 -280 770 -512 777 -516 9 -6 12 188 12
953 l0 961 -285 0 -285 0 -2 -515 -3 -515 -170 111 c-93 62 -242 159 -330 217
-88 57 -259 169 -380 249 -600 395 -685 450 -690 445z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 775 B

13
tools/CPackOptions.cmake Normal file
View File

@ -0,0 +1,13 @@
# Packaging Options
if(CPACK_PACKAGE_FILE_NAME STREQUAL "${CPACK_SOURCE_PACKAGE_FILE_NAME}")
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY ON)
endif()
if(CPACK_GENERATOR MATCHES "NSIS")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_NSIS_FILE_NAME}")
endif()
if(DEFINED CPACK_RPM_PACKAGE_SOURCES AND CPACK_RPM_PACKAGE_SOURCES)
set(CPACK_RPM_PACKAGE_NAME "${CPACK_RPM_PACKAGE_SOURCE}")
endif()

2819
tools/NXPackage.cmake Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,54 @@
# Maintainer: @CPACK_PKGBUILD_PACKAGE_MAINTAINER@
pkgbase=@CPACK_MINGW_PACKAGE_SOURCE@
pkgname=("@CPACK_MINGW_PACKAGE_NAME@")
pkgver=@CPACK_PKGBUILD_PACKAGE_VERSION@
pkgrel=@CPACK_PKGBUILD_PACKAGE_RELEASE@
pkgdesc='@CPACK_PACKAGE_DESCRIPTION_SUMMARY@ (mingw-w64)'
arch=('@CPACK_MINGW_PACKAGE_ARCHITECTURE@')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang32' 'clang64')
url='@CPACK_PKGBUILD_PACKAGE_HOMEPAGE@'
license=('@CPACK_PKGBUILD_PACKAGE_LICENSE@')
depends=(@CPACK_MINGW_PACKAGE_DEPENDS@)
optdepends=(@CPACK_MINGW_PACKAGE_OPTIONAL@)
makedepends=(@CPACK_MINGW_BUILDREQUIRES@)
options=('strip' 'staticlibs')
source=('@CPACK_SOURCE_PACKAGE_FILE_NAME@.tar.gz')
sha256sums=('SKIP')
prepare() {
cd "${srcdir}/@CPACK_SOURCE_PACKAGE_FILE_NAME@"
}
build() {
[[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}"
mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}"
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=@CMAKE_BUILD_TYPE@")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
if which ninja 2>/dev/null; then
SHAIHULUD=Ninja
else
SHAIHULUD="MSYS Makefiles"
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" ${MINGW_PREFIX}/bin/cmake -G "${SHAIHULUD}" -DNXINSTALL_IS_MINGW=ON -DNXINSTALL_IS_SYSTEM=ON -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} -DCPACK_GENERATOR=External -DCPACK_SOURCE_GENERATOR=TGZ "${extra_config[@]}" "${srcdir}/@CPACK_SOURCE_PACKAGE_FILE_NAME@"
${MINGW_PREFIX}/bin/cmake --build .
}
check() {
cd "${srcdir}/build-${CARCH}"
if [[ -e CTestTestfile.cmake ]]; then
${MINGW_PREFIX}/bin/cmake --build . --target test
fi
}
package() {
cd "${srcdir}/build-${CARCH}"
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build . --target install
}

View File

@ -0,0 +1,8 @@
package_@sPKGBuildComponent_Name@() {
arch=('@sPKGBuildComponent_Architecture@')
depends=(@sPKGBuildComponent_Depends@)
optdepends=(@sPKGBuildComponent_Optional@)
cd "${srcdir}/build-${CARCH}"
cmake --build . --target package
cp -av @sPKGBuildComponent_SourceDir@/. "${pkgdir}/"
}

View File

@ -0,0 +1,53 @@
# Maintainer: @CPACK_PKGBUILD_PACKAGE_MAINTAINER@
pkgbase=@CPACK_PKGBUILD_PACKAGE_SOURCE@
pkgname=(@sPKGBuild_Packages@)
pkgver=@CPACK_PKGBUILD_PACKAGE_VERSION@
pkgrel=@CPACK_PKGBUILD_PACKAGE_RELEASE@
pkgdesc='@CPACK_PACKAGE_DESCRIPTION_SUMMARY@ (msys)'
arch=('@CPACK_PKGBUILD_PACKAGE_ARCHITECTURE@')
url='@CPACK_PKGBUILD_PACKAGE_HOMEPAGE@'
license=('@CPACK_PKGBUILD_PACKAGE_LICENSE@')
depends=(@CPACK_PKGBUILD_PACKAGE_DEPENDS@)
optdepends=(@CPACK_PKGBUILD_PACKAGE_OPTIONAL@)
makedepends=(@CPACK_PKGBUILD_BUILDREQUIRES@)
options=('strip' 'staticlibs')
source=('@CPACK_SOURCE_PACKAGE_FILE_NAME@.tar.gz')
sha256sums=('SKIP')
prepare() {
cd "${srcdir}/@CPACK_SOURCE_PACKAGE_FILE_NAME@"
}
build() {
[[ -d "${srcdir}/build-${CARCH}" ]] && rm -rf "${srcdir}/build-${CARCH}"
mkdir -p "${srcdir}/build-${CARCH}" && cd "${srcdir}/build-${CARCH}"
declare -a extra_config
if check_option "debug" "n"; then
extra_config+=("-DCMAKE_BUILD_TYPE=@CMAKE_BUILD_TYPE@")
else
extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
fi
if which ninja 2>/dev/null; then
SHAIHULUD=Ninja
else
SHAIHULUD="Unix Makefiles"
fi
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" cmake -G "${SHAIHULUD}" -DNXINSTALL_IS_SYSTEM=ON -DCMAKE_INSTALL_PREFIX=${MSYSTEM_PREFIX} -DCPACK_GENERATOR=External -DCPACK_SOURCE_GENERATOR=TGZ "${extra_config[@]}" "${srcdir}/@CPACK_SOURCE_PACKAGE_FILE_NAME@"
cmake --build .
}
check() {
cd "${srcdir}/build-${CARCH}"
if [[ -e CTestTestfile.cmake ]]; then
cmake --build . --target test
fi
}
@sPKGBuild_PackageTag@() {
cd "${srcdir}/build-${CARCH}"
DESTDIR="${pkgdir}" cmake --build . --target install
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
tools/packaging/install.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,4 @@
Section @sNSISComponent_Disabled@ "@sNSISComponent_Name@" @sNSISComponent_Tag@ @sNSISComponent_Required@
SetOutPath "$INSTDIR"
File /r "@sNSISComponent_SourceDir@\*.*"
SectionEnd

View File

@ -0,0 +1,129 @@
Target "@CPACK_NSIS_PACKAGE_ARCHITECTURE@"
;--------------------------------
;Includes
!include "MUI2.nsh"
!include "WinVer.nsh"
;--------------------------------
;Variables
Var STARTMENU_FOLDER
Var STARTMENU_UNFOLDER
;--------------------------------
;Basics
Name "@CPACK_NSIS_PACKAGE_NAME@"
OutFile "@CMAKE_CURRENT_BINARY_DIR@\@CPACK_NSIS_FILE_NAME@.exe"
InstallDir "@CPACK_NSIS_INSTALL_ROOT@\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
InstallDirRegKey HKCU "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" ""
RequestExecutionLevel user
SetCompressor @CPACK_NSIS_COMPRESSOR@
VIProductVersion "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@.@CPACK_PACKAGE_VERSION_TWEAK@"
VIAddVersionKey "ProductName" "@CPACK_NSIS_PACKAGE_NAME@"
VIAddVersionKey "ProductVersion" "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@.@CPACK_PACKAGE_VERSION_TWEAK@"
VIAddVersionKey "FileDescription" "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@"
VIAddVersionKey "LegalCopyright" "Copyright © @_CURRENT_YEAR@ @CPACK_PACKAGE_MAINTAINER@"
VIAddVersionKey "FileVersion" "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@.@CPACK_PACKAGE_VERSION_TWEAK@"
!define MUI_PAGE_HEADER_TEXT "@CPACK_NSIS_PACKAGE_NAME@ v@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@"
!define MUI_PAGE_HEADER_SUBTEXT "<@CPACK_PACKAGE_DESCRIPTION_SUMMARY@>"
!define MUI_BGCOLOR "FFFFFF"
!define MUI_TEXTCOLOR "BE4D00"
!define MUI_ABORTWARNING
!define MUI_ICON "@CPACK_NSIS_MUI_ICON@"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "@CPACK_NSIS_MUI_HEADERIMAGE@"
!define MUI_WELCOMEFINISHPAGE_BITMAP "@CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP@"
!define MUI_UNICON "@CPACK_NSIS_MUI_UNIICON@"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP@"
!define MUI_LICENSEPAGE_CHECKBOX
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "SHCTX"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "StartMenu"
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\@NX_NATIVE_PATH_DOCUMENTATION@\README.md"
!define MUI_FINISHPAGE_LINK "Visit Project Homepage"
!define MUI_FINISHPAGE_LINK_LOCATION "@CPACK_NSIS_URL_INFO_ABOUT@"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
@sNSIS_MUI_FINISHPAGE_RUN@
;--------------------------------
;Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
;Languages
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Italian"
!insertmacro MUI_LANGUAGE "Japanese"
!insertmacro MUI_LANGUAGE "Korean"
!insertmacro MUI_LANGUAGE "Polish"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "Spanish"
;--------------------------------
;Data Files
@sNSIS_LaunchApplication@
Section "-Default Installation"
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "DisplayName" "@CPACK_NSIS_DISPLAY_NAME@"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "DisplayVersion" "@CPACK_PACKAGE_VERSION@"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "Publisher" "@CPACK_PACKAGE_VENDOR@"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "UninstallString" "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "NoRepair" "1"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "NoModify" "1"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "HelpLink" "@CPACK_NSIS_HELP_LINK@"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "URLInfoAbout" "@CPACK_NSIS_URL_INFO_ABOUT@"
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "Contact" "@CPACK_NSIS_CONTACT@"
@CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS@
@sNSISRoutine_Install@
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall @CPACK_NSIS_PACKAGE_NAME@.lnk" "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
@sNSIS_CreateShortCut@
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@" "StartMenu" "$STARTMENU_FOLDER"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
Section "Uninstall"
!insertmacro MUI_STARTMENU_GETFOLDER Application $STARTMENU_UNFOLDER
Delete "$SMPROGRAMS\$STARTMENU_UNFOLDER\Uninstall @CPACK_NSIS_PACKAGE_NAME@.lnk"
@sNSIS_DeleteShortCut@
RMDir "$SMPROGRAMS\$STARTMENU_UNFOLDER"
@CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS@
DeleteRegKey /ifempty HKCU "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_NSIS_PACKAGE_NAME@"
Delete "$INSTDIR\@CPACK_NSIS_UNINSTALL_NAME@.exe"
@sNSISRoutine_Uninstall@
SectionEnd

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB