From a92455fda4aa774b17d7651bdd4bb341e07f87ff Mon Sep 17 00:00:00 2001 From: Xenofon Konitsas <38171523+huskeee@users.noreply.github.com> Date: Sun, 9 Aug 2020 22:55:37 +0300 Subject: [PATCH] Create installer script and assets (#303) First commit of installer script and assets. --- installer/LICENSE | 21 +++ installer/assets/header.bmp | Bin 0 -> 34254 bytes installer/assets/pixel-install.ico | Bin 0 -> 5390 bytes installer/assets/pixel-uninstall.ico | Bin 0 -> 5390 bytes installer/assets/wizard.bmp | Bin 0 -> 206038 bytes installer/installer.pot | 63 ++++++++ installer/pixelorama.nsi | 227 +++++++++++++++++++++++++++ 7 files changed, 311 insertions(+) create mode 100644 installer/LICENSE create mode 100644 installer/assets/header.bmp create mode 100644 installer/assets/pixel-install.ico create mode 100644 installer/assets/pixel-uninstall.ico create mode 100644 installer/assets/wizard.bmp create mode 100644 installer/installer.pot create mode 100644 installer/pixelorama.nsi diff --git a/installer/LICENSE b/installer/LICENSE new file mode 100644 index 000000000..2825d3556 --- /dev/null +++ b/installer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 OverloadedOrama + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/installer/assets/header.bmp b/installer/assets/header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e9612b85d2b38abdc853946321a4aeb33c6b0a69 GIT binary patch literal 34254 zcmeI3`&U&(6vyo!=nv?p*6M|owJJ#kD$_DuDHkq}EH9|kO2lNL1(GHY5fKHwT;(D7 z0L-j})NuKh5D=30<#o9{1Vr&s_Rv!MX}9;Bd&YAv7Xe*@*=DWHIn0@v{hd9ZvuEZk zoi?W~ah&*h9e=x_WuQ$#du-g3_*?lYe|+3HGWEyD%?sE#2Fw66zzi@0%m6dM3@`)C z05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM z3@`)C05iZ0Fa!T(2Htzx9oQb-7>pI06P|bq*dE;&j1^Y~H&0-DbYn19T#?`S=rxd= zTOe#h;^v|M&)9e`$j?{mtLAS%2oTqqh zeCbX*SAC~#+9vx6nLQ8khR~CjR{)FrKbCDQrgvd?*i7*I%mV_*mU=+otUU04V~wn{ z{F890Eq%)lSw7fYk#-t`E4|vXgjI=RoVmICU}K_L+{<>TGh*QqnD?f)CT<1bgE1$+ zsmawBI&w}sxH}0y*@VpmvUcC+WONyy&>1ywHl;brE z=OS?O4CuQ0542sp4V{;6f$41@$&TSU4@gZm3%_kxzpkYZys?a8=Ra{ebY8wK+NplD z*V3AHsqu@&k=cyYl5b8G{Ixt?;hO|@6$;WK;(a?5j5Fbi?YD07CO6O>njg%|W_W9x!usk#h zmMw||YsXcE4IEE;)*ew#&*skz0N)qhgwMlPK+*9E5sNyE$-aWaIA%{Msjz~z^A|C9 zyLNsD;UVE77Th;##wuZ|%FW6?4~-l3Ee>vML*7W#mGA`xR*Dyaq>ps)g97SlRBt zp%NLNljYU{TD022O`pnks*i__D^-{Cm2xkwQCe2$ez;tTx^5oO)OAgcoqU|G?ijG{YPoXOq5B)xD9R~X zO~d7?qrL^2dw$2YYl^}Zt}($2yU}_E<%)8w)|c}=#fR2G8|ERMP8_H9?|bEn{Ly<* zZ@V<4kB5z`l8Posh>k^zaab&_S4|?%R5tcN4z5?)cn+7VU3vR}+P6{;FRc@O*VryX z6TW*D)*e_Nmn{3$a&_oLrAA8(tU+BhtrwJex=*fJ`))!7YRbsS6S??qT($Jx5IWN~ zXG@*hIH>ol!lQJ0)i~0aRkrSjE86?5j)->QLzySl$HT^zt9|>?lT|V%dw)0~;~Ihc zq0Q!OXmsSDHheFg*FocisbH~e2U^c)Kl>9hx^u@jqK|`zilL&uOY~iM@B}2UqqC?d zY|q{e#b+A9j`fd~Hh|fjqchs0S-XCNQ`qO4=s2l|=60xj6**%nRKy#g`P31xTbrTS zYK64COz>OaA@Y^U)B+y`o&n!iLv-t46RvN?<&CiC+k-kSG&bXew}b}TSJN1r^_tUi z;PlTe;@zY^XdM^(cFb#Kc>XYB3>)lMWQ@N*cpSE6e+}*Zx8Q7JFO*a^0?7>)J&d2v&wZsJd{we^^gYC56 z!8#rNHz8=6ua1LF$!W4}byKfgYXjZiRrcT5j`E7usIQVL`+)UxI9yR3U!0>d$9eF> z3_J&>qv4q_IHViq8t^>mrksZ@DO-hK^7nJYIib7gaH&oUjVZwW9r29TK^lWrt9nm; zGX_YN3?Jisr=6a0el+s4!lV4M^o`wjJ9fZEJLU&2?3qC9%(3aOWL z(AY>T^-JHEX$-FPQdx3BsvIBXos=Y{@4@O*ImKAjEPPqZ!-%Ma7B^$N7uC zH!xRY_wPc!T(%OwXXf42%!7QtqI{l)&!~L{TIk%6G0Rsmkukb4WT75f7e|wA_BD1K zbL=_x%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm r1Iz$3zzi@0%m6dM3@`)C05iZ0Fayj0Gr$Zm1Iz$3zzi@0W68k3t3w8$ literal 0 HcmV?d00001 diff --git a/installer/assets/pixel-install.ico b/installer/assets/pixel-install.ico new file mode 100644 index 0000000000000000000000000000000000000000..f2106d611b39a8a13d9d5c0ec9c9dbf629056bb2 GIT binary patch literal 5390 zcmeHLJ#Q015Pf^M_hB0;bV-+#lvK1y&;LODgNQ1Y=<)~X5GA5diDW4S{EEmOt!co8 z<>k%H?tS>qrjKr=J$v4JGqbyA&13^O2eX+owGm`>o? zoIt-cxT3Dwt+}G0odB`aR=}*XEXqn1V$+hR0?sT)Tma{kL*@-&T1s7(ML?EO6rimD zOBaXGnMYw(1bkx=P`OBLSiEFOfIRp89VT*r4Qwxg^%<~~9p#)I>5}G(b4`3hjcC){ z(O2p$OEF$^N`02`CDV_=L+Y&5SgEyAXQj4wYwc8L2S+vm(+NDc6L6jK((cW-=?!!g21WPYk zLi&LWmvc0PI2fULL&$+BVe%}qW!ScbV04D@kPHlJ2S|c-T=5QSp(GIXjaH6Gazy;_ z-MEOGtn)m9ORpLX?O|hmK?qy+fsgC0CHx8q9|QI-V2gk??yv+K5ZI8w#)NM3a^xKQ zmZQ#LLvBmmjy~cax|1=(kDz_*icxMjQy*K7?1OZ#he=O6>|+lP54gR(o$d{CSkstJ z;2EEQ)ZXL6`=UNB@SZn?`j|jin)1$s?W!HjYd=(}zN##3O~D6ro` z6hyj7!3f636fwN?LEB~fTaySWIxl8Qx2!FaPcEM~Kc#zY+(pYDvN1yRA7NFH{Ar90 z{~x|t-qmN{cG?wV8LcjuNlcX#0*6Q8xb literal 0 HcmV?d00001 diff --git a/installer/assets/pixel-uninstall.ico b/installer/assets/pixel-uninstall.ico new file mode 100644 index 0000000000000000000000000000000000000000..2003b2df819c9be5f2a03a99ee437182a059d0ed GIT binary patch literal 5390 zcmeHLyKdV+5FF?3xA=I9y(W_Yxm7;2nVLYqNjmz!ze-w`PAUfe){N zH`LGtgw>BX+$C}yj^EoSRNo))>+^f;b~{{MU7@aPJU%{Rzu&`qKXjUr`2^+@crhoy z64Du2S{ALDr77(Qh^4jyX61RB7pf4OmRuFc)M6|HvP?K6Nn!xg2HPnh+b~}26uK?d z(>6=?MSmyvIA|xYqM>xx6rjVlI7 zXIYBzmQ(7pjIR^PVx5)xDs?s1+gNMoI;+PwU*;2d$tU1?r7J$Eb458MoXhi~JSPNI zyhj*nxD_Ia9Z}*8R7OH0Xq2Mo5%7X&NMRn9(ahm#eegSY2RqQP5Ka|B$=zihb~(ptv4hvLH*HYJz% z{hk#wj7E=SbN7Ed{3nk(@i@Yx!UHy769StN*qG35UJ1E`eJi0Z!GYY7x)XhB`brF$ z-dRll!|V6LEu-9V#y+-5X^f2XJ|^D`(#xKopPTQ7`}_O(yJ6()W@tWvmvjQXGCFuL z=hDTnMn;))S(YxQ1i~smDlpdgp+MM}Wq3DVtjKV#R=ouqrsSo+a_TLsxCpHBD~l2Q z8HplSm^=N=t?{&l%YwjsWe-7U3&s~gSx!8Fb9Mq`;}K z38X0nMY&im^;Ni3Jw%{Ai>*|ELL+E`M$qyFzhx%0VgLXD literal 0 HcmV?d00001 diff --git a/installer/assets/wizard.bmp b/installer/assets/wizard.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3e2973f2de78309f8a7eab65f4e761deb4fa046c GIT binary patch literal 206038 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 P00S7n00uD7bp!toElr4! literal 0 HcmV?d00001 diff --git a/installer/installer.pot b/installer/installer.pot new file mode 100644 index 000000000..fbfe2417e --- /dev/null +++ b/installer/installer.pot @@ -0,0 +1,63 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: Pixelorama 0.8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-08-08 22:43\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: \n" + +#. SecInstall +#: .\pixelorama.nsi:72 +msgid "Install ${APPNAME}" +msgstr "" + +#. SecStartmenu +#: .\pixelorama.nsi:73 +msgid "Create Start Menu shortcuts (optional)" +msgstr "" + +#. SecDesktop +#: .\pixelorama.nsi:74 +msgid "Create shortcut on Desktop (optional)" +msgstr "" + +#. un.SecUninstall +#: .\pixelorama.nsi:75 +msgid "Uninstall ${APPNAME} ${APPVERSION}" +msgstr "" + +#. un.SecConfig +#: .\pixelorama.nsi:76 +msgid "Remove configuration files (optional)" +msgstr "" + +#. DESC_SecInstall +#: .\pixelorama.nsi:178 +msgid "Installs ${APPNAME} ${APPVERSION}." +msgstr "" + +#. DESC_SecStartmenu +#: .\pixelorama.nsi:179 +msgid "Creates Start Menu shortcuts for ${APPNAME}." +msgstr "" + +#. DESC_SecDesktop +#: .\pixelorama.nsi:180 +msgid "Creates a Desktop shortcut for ${APPNAME}." +msgstr "" + +#. DESC_un.SecUninstall +#: .\pixelorama.nsi:181 +msgid "Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts." +msgstr "" + +#. DESC_un.SecConfig +#: .\pixelorama.nsi:182 +msgid "Removes configuration files for ${APPNAME}." +msgstr "" diff --git a/installer/pixelorama.nsi b/installer/pixelorama.nsi new file mode 100644 index 000000000..d827acdfe --- /dev/null +++ b/installer/pixelorama.nsi @@ -0,0 +1,227 @@ +; Pixelorama Installer NSIS Script +; Copyright Xenofon Konitsas (huskee) 2020 + + +; Helper variables so that we don't change 20 instances of the version for every update + + !define APPNAME "Pixelorama" + !define APPVERSION "0.8-dev" + !define COMPANYNAME "Orama Interactive" + + +; Include the Modern UI library + + !include "MUI2.nsh" + + +; Basic Installer Info + + Name "${APPNAME} ${APPVERSION}" + OutFile "${APPNAME}_${APPVERSION}_setup.exe" + Unicode True + + +; Default installation folder + + InstallDir "$APPDATA\${COMPANYNAME}\${APPNAME}" + + +; Get installation folder from registry if available + + InstallDirRegKey HKCU "Software\${COMPANYNAME}\${APPNAME}" "InstallDir" + + +; Request application privileges for Vista and later + + RequestExecutionLevel admin + + +; Interface Settings + + !define MUI_ICON "assets\pixel-install.ico" + !define MUI_UNICON "assets\pixel-uninstall.ico" + !define MUI_WELCOMEFINISHPAGE_BITMAP "assets\wizard.bmp" + !define MUI_UNWELCOMEFINISHPAGE_BITMAP "assets\wizard.bmp" + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_RIGHT + !define MUI_HEADERIMAGE_BITMAP "assets\header.bmp" + !define MUI_HEADERIMAGE_UNBITMAP "assets\header.bmp" + !define MUI_ABORTWARNING + !define MUI_COMPONENTSPAGE_SMALLDESC + !define MUI_FINISHPAGE_NOAUTOCLOSE + !define MUI_UNFINISHPAGE_NOAUTOCLOSE + !define MUI_FINISHPAGE_RUN "pixelorama.exe" + +; Language selection settings + + !define MUI_LANGDLL_ALLLANGUAGES + + +; Installer pages + + !insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE "LICENSE" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_COMPONENTS + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !insertmacro MUI_UNPAGE_FINISH + + +; Multilingual support + + !insertmacro MUI_LANGUAGE "English" + ;@INSERT_TRANSLATIONS@ + + + ; Assign language strings to installer/uninstaller section names + + LangString SecInstall ${LANG_ENGLISH} "Install ${APPNAME}" + LangString SecStartmenu ${LANG_ENGLISH} "Create Start Menu shortcuts (optional)" + LangString SecDesktop ${LANG_ENGLISH} "Create shortcut on Desktop (optional)" + LangString un.SecUninstall ${LANG_ENGLISH} "Uninstall ${APPNAME} ${APPVERSION}" + LangString un.SecConfig ${LANG_ENGLISH} "Remove configuration files (optional)" + + +; Installer sections + + Section "$(SecInstall)" SecInstall ; Main install section + + SectionIn RO ; Non optional section + + ; Set the installation folder as the output directory + SetOutPath "$INSTDIR" + + ; Copy all files to install directory + File "pixelorama.exe" + File "pixelorama.pck" + File "libgifexporter.windows.64.dll" + + SetOutPath "$INSTDIR\pixelorama" + File /nonfatal /a /r "pixelorama\*" + + ; Store installation folder in the registry + WriteRegStr HKCU "Software\${COMPANYNAME}\${APPNAME}" "InstallDir" $INSTDIR + + ; Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + ; Create Add/Remove Programs entry + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "DisplayName" "${APPNAME}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "UninstallString" "$INSTDIR\Uninstall.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "InstallLocation" "$INSTDIR" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "Publisher" "${COMPANYNAME}" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "HelpLink" "https://orama-interactive.github.io/Pixelorama-Docs" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "DisplayVersion" "${APPVERSION}" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" \ + "NoRepair" 1 + + SectionEnd + + + Section /o "$(SecStartmenu)" SecStartmenu ; Create Start Menu shortcuts + + ; Create folder in Start Menu\Programs and create shortcuts for app and uninstaller + CreateDirectory "$SMPROGRAMS\${COMPANYNAME}" + + CreateShortCut "$SMPROGRAMS\${COMPANYNAME}\Pixelorama ${APPVERSION}.lnk" "$INSTDIR\Pixelorama.exe" + CreateShortCut "$SMPROGRAMS\${COMPANYNAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + + SectionEnd + + + Section /o "$(SecDesktop)" SecDesktop ; Create Desktop shortcut + + ; Create shortcut for app on desktop + CreateShortCut "$DESKTOP\${APPNAME} ${APPVERSION}.lnk" "$INSTDIR\Pixelorama.exe" + + SectionEnd + + +; Installer functions + + Function .onInit + !insertmacro MUI_LANGDLL_DISPLAY + + FunctionEnd + + +; Uninstaller sections + + Section "un.$(un.SecUninstall)" un.SecUninstall ; Main uninstall section + + SectionIn RO + + ; Delete all files and folders created by the installer + Delete "$INSTDIR\Uninstall.exe" + Delete "$INSTDIR\Pixelorama.exe" + Delete "$INSTDIR\Pixelorama.pck" + Delete "$INSTDIR\libgifexporter.windows.64.dll" + RMDir /r "$INSTDIR\pixelorama" + + ; Delete shortcuts + RMDir /r "$SMPROGRAMS\${COMPANYNAME}" + Delete "$DESKTOP\${APPNAME} ${APPVERSION}.lnk" + + ; Delete the install folder + SetOutPath "$APPDATA" + RMDir /r "${COMPANYNAME}" + + ; If empty, delete the application's registry key + DeleteRegKey /ifempty HKCU "Software\${COMPANYNAME}\${APPNAME}" + + ; Delete the Add/Remove Programs entry + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" + + SectionEnd + + + Section "un.$(un.SecConfig)" un.SecConfig ; Configuration removal section + + ; Delete the application's settings file + Delete "$APPDATA\Godot\app_userdata\Pixelorama\cache.ini" + + SectionEnd + + +; Section description language strings for multilingual support + + LangString DESC_SecInstall ${LANG_ENGLISH} "Installs ${APPNAME} ${APPVERSION}." + LangString DESC_SecStartmenu ${LANG_ENGLISH} "Creates Start Menu shortcuts for ${APPNAME}." + LangString DESC_SecDesktop ${LANG_ENGLISH} "Creates a Desktop shortcut for ${APPNAME}." + LangString DESC_un.SecUninstall ${LANG_ENGLISH} "Uninstalls ${APPNAME} ${APPVERSION} and removes all shortcuts." + LangString DESC_un.SecConfig ${LANG_ENGLISH} "Removes configuration files for ${APPNAME}." + + +; Assign language strings to installer/uninstaller descriptions + + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + + !insertmacro MUI_DESCRIPTION_TEXT ${SecInstall} $(DESC_SecInstall) + !insertmacro MUI_DESCRIPTION_TEXT ${SecStartmenu} $(DESC_SecStartmenu) + !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} $(DESC_SecDesktop) + + !insertmacro MUI_FUNCTION_DESCRIPTION_END + + + !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN + + !insertmacro MUI_DESCRIPTION_TEXT ${un.SecUninstall} $(DESC_un.SecUninstall) + !insertmacro MUI_DESCRIPTION_TEXT ${un.SecConfig} $(DESC_un.SecConfig) + + !insertmacro MUI_UNFUNCTION_DESCRIPTION_END + + \ No newline at end of file