diff options
Diffstat (limited to 'distribution/win32/nsis')
-rw-r--r-- | distribution/win32/nsis/CMakeLists.txt | 17 | ||||
-rwxr-xr-x | distribution/win32/nsis/headerimage.bmp | bin | 0 -> 25818 bytes | |||
-rw-r--r-- | distribution/win32/nsis/install.nsh | 28 | ||||
-rw-r--r-- | distribution/win32/nsis/uninstall.nsh | 30 |
4 files changed, 75 insertions, 0 deletions
diff --git a/distribution/win32/nsis/CMakeLists.txt b/distribution/win32/nsis/CMakeLists.txt new file mode 100644 index 0000000..40d3990 --- /dev/null +++ b/distribution/win32/nsis/CMakeLists.txt @@ -0,0 +1,17 @@ +STRING(REPLACE "/" "\\\\" NATIVE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + +SET(CPACK_GENERATOR "NSIS") +SET(CPACK_PACKAGE_ICON "${NATIVE_CURRENT_SOURCE_DIR}\\\\headerimage.bmp") +SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\xtrkcad.exe") +SET(CPACK_NSIS_HELP_LINK "http://www.xtrkcad.org") + +SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS + "; add part specific to XTrackCAD installation + !include \\\"${NATIVE_CURRENT_SOURCE_DIR}\\\\install.nsh\\\"") + +SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS + "; add part specific to XTrackCAD uninstall + !include \\\"${NATIVE_CURRENT_SOURCE_DIR}\\\\uninstall.nsh\\\"") + +INCLUDE(CPack) + diff --git a/distribution/win32/nsis/headerimage.bmp b/distribution/win32/nsis/headerimage.bmp Binary files differnew file mode 100755 index 0000000..0644c5a --- /dev/null +++ b/distribution/win32/nsis/headerimage.bmp diff --git a/distribution/win32/nsis/install.nsh b/distribution/win32/nsis/install.nsh new file mode 100644 index 0000000..9f14625 --- /dev/null +++ b/distribution/win32/nsis/install.nsh @@ -0,0 +1,28 @@ +; +; This file is included from the CMake generated NSIS file during install. +; + +CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrkCad Help.lnk" "$INSTDIR\share\xtrkcad\xtrkcad.chm" "" "" 0 +CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\XTrkCad ReadMe.lnk" "notepad.exe" "$INSTDIR\share\xtrkcad\ReadMe.txt" + +; +; create file association +; +; back up old value of .xtc + !define Index "Line${__LINE__}" + ReadRegStr $1 HKCR ".xtc" "" + StrCmp $1 "" "${Index}-NoBackup" + StrCmp $1 "XTrackCAD.Design" "${Index}-NoBackup" + WriteRegStr HKCR ".xtc" "backup_val" $1 + "${Index}-NoBackup:" + +; create the new association + WriteRegStr HKCR ".xtc" "" "XTrackCAD.Design" + WriteRegStr HKCR "XTrackCAD.Design" "" "XTrackCAD Layout Design" + WriteRegStr HKCR "XTrackCAD.Design\shell" "" "open" + WriteRegStr HKCR "XTrackCAD.Design\DefaultIcon" "" "$INSTDIR\bin\xtrkcad.exe,0" + WriteRegStr HKCR "XTrackCAD.Design\shell\open\command" "" '$INSTDIR\bin\xtrkcad.exe "%1"' + + System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)' + + !undef Index
\ No newline at end of file diff --git a/distribution/win32/nsis/uninstall.nsh b/distribution/win32/nsis/uninstall.nsh new file mode 100644 index 0000000..b568e21 --- /dev/null +++ b/distribution/win32/nsis/uninstall.nsh @@ -0,0 +1,30 @@ +; +; additional uninstaller instructions +; + +; Remove file association + !define Index "Line${__LINE__}" + ReadRegStr $1 HKCR ".xtc" "" + StrCmp $1 "XTrackCAD.Design" 0 "${Index}-NoOwn" ; only do this if we own it + ReadRegStr $1 HKCR ".xtc" "backup_val" + StrCmp $1 "" 0 "${Index}-Restore" ; if backup="" then delete the whole key + DeleteRegKey HKCR ".xtc" + Goto "${Index}-NoOwn" + "${Index}-Restore:" + WriteRegStr HKCR ".xtc" "" $1 + DeleteRegValue HKCR ".xtc" "backup_val" + + DeleteRegKey HKCR "XTrackCAD.Design" ;Delete key with association settings + + System::Call 'Shell32::SHChangeNotify(i 0x8000000, i 0, i 0, i 0)' + "${Index}-NoOwn:" + !undef Index + +; Remove shortcuts, if any +; SetShellVarContext all + +!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + +Delete "$SMPROGRAMS\$MUI_TEMP\XTrkCad Help.lnk" +Delete "$SMPROGRAMS\$MUI_TEMP\XTrkCad ReadMe.lnk" +
\ No newline at end of file |