From 9f33fe54d9d467179cc78e9918a0b35687f64ab2 Mon Sep 17 00:00:00 2001 From: Nova Date: Mon, 7 Jul 2025 02:40:38 +0330 Subject: [PATCH] Add windows installer --- .github/workflows/build.yml | 8 +++++ res/nekorayDel.ico | Bin 0 -> 67646 bytes script/windows_installer.nsi | 61 +++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 res/nekorayDel.ico create mode 100644 script/windows_installer.nsi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32d8146..005ae12 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,6 +153,13 @@ jobs: ninja -j2 cd .. ./script/deploy_windows64.sh + - name: Build Installer with NSIS + shell: cmd + if: matrix.platform == 'windows-latest' + run: | + cp .\script\windows_installer.nsi . + makensis windows_installer.nsi + cp NekoraySetup.exe deployment/ - name: Linux - Generate MakeFile and Build shell: bash if: matrix.platform == 'ubuntu-22.04' @@ -216,6 +223,7 @@ jobs: zip -9 -r $version_standalone-linux64.zip nekoray rm -rf nekoray #### + mv NekoraySetup.exe $version_standalone-windows64-installer.exe mv windows64 nekoray zip -9 -r $version_standalone-windows64.zip nekoray rm -rf nekoray diff --git a/res/nekorayDel.ico b/res/nekorayDel.ico new file mode 100644 index 0000000000000000000000000000000000000000..b4649250b6c325b6c1bb73586ef08b027ea1b151 GIT binary patch literal 67646 zcmdpf2V4~A_O|zbznk3jc1^V<8ly2WQIl8@d&e${y<>~LVnwhZ9Tht$0#c+G0g)z6 zsue3uu=kQ?Ec<-VnPqg{ELg54-k9IXl%1WOd7snId0#43`Un48ytoqoU!zi;fB&P> z`;{tHszc%_IjNkN-AeqdynpjrU4|hl@A?<%JStWCKR(a@BfU&|o%A;8Kco*y)krcN z-@W$QYiZ@H|d*?s>Uj67J^H)BqG3A}ApILlRv#!;DYSy={^2N6ss(<@~_xm;K zM88*~&gPHnHSYg@ov(VmQLRqbcRsA%<;{;i>iF`zRXe=)+Q;qw-|MfpsPwOYHL6tU zoqD`?ZPKTtPe}5c0>OKvcSvuM-XOh3dW9s<_%D(??>|ZM?BxT)51-{feT>z6>z`MT z)z6>zRxspX%DBiF$#@BdACo>Kefh6{z1r~qz4K1h6 zS-I+*cdAue{^mzDoZhHXePiWMzwrO0?za)u>otzA(a|1?Wa7^)M$GuF-2{tUohL21-F=Gf-5xWXG=1i-L|gNP=swl%c0cQN zSNqIyy3%c$?WHb1F1gsjeBp%_LuOuRGGNmAhP_9f`KJ4@q6S?@oTzUy@M!(ErU$=n z-!r>z%Wmm4jXEXQ{GoMRjRwu5K5bwWTIH)IK_Axo#_yf#UwFRpajlK7zhB+;%@1lg zz5Ac)c5i)L&E~z2sxN-ytq*3s{N~$}UVi&A6B36#>bz{dh^52EZ?pErTu?uHeCNf z&H6qc)@c}C?dztyYBp?@UF(N7d9|8$%&*g`=cxuA`(6CrWcc+aJx2X(WIEwi%Ry7` zv>Q3=Ui&c?Xggs(I!s)Qu2XH%W404|&RvDx3)i5J<$Cm8x*4X+J<)H)HuSUgftkH8 z`q}%Hkw1?E(4REGJ`jT(g3!%kErvV#V4`;tCVK70M9)M_*qVTGTjDX+Jq}~sVljGC zG)8TV!pQZJ7_l}SLsti5@Tvd|a`DF?$88v7vlV96?&xQ^5q%f%IV_yfV}>1{aS1w% zw?gM}i_u}sLbMw_AFW2r(lj47?Vj;~$#FD1Z^%(x!Hzq@V{-%rB&97SZ zyjIV+>(#ogx?QSg+~(YewLZ^#>%I3{b8H{`pCL@;obCHR(7i0 zxZTz!T}?MO=+GmeL8l(OzUkb1&$nF%SMUw46 z2RYuZ9LqT&!Lpx1+llRV^s@_qDY5NypX8XtYqhkUTV5yMbqYe4d9E1huoXZ0Bw_rv z-J~Rp^G;Mq-5=|f0HHBn@i5;Shml)iF=BHxhPmy)&`psTx*-CC*M(#7+As`V6N+K0 zLojqzF!>`0gPemf*hRZPkjFyGIXTbYALzvQaOQhCl9%lLF_7;*V7WI2E%zc{ZARms zL$1F3?z0*3bF$BKcD#p>g1ula*YO?-@mfdn4S%Q0d{+#y z^}rSuyBgAwjg7`BNrvpx(1IaX%m1Hr$K6Y*7ucu_8d z2b3`)RwA>#%kVelR*Sh{D%kQ^C50EXSS#2IU+}wvcVCXL!b^^2V@??~p}rop+#OSh zx8OfPu=h>HBw{~ldpf2B?ZNEGTv)~*#`4qx*kzW$A^X&QvfWdRCCMi^1_v=MBm-l- z6ZmdXiar=X888#vNoM3Vg_q@>geUaz=QEiJkx$L|to=nVP$&FgYJTnIH{a}3E*51U z7{X8YTt(m4y-t7M!1w;~@++@dcQT)@am*-&V^%5bvrGO!4m>YppIHjKj1t%iajfjp zi?BQ;A4?LCVsYGIEZlhjb0TsSJ{eEFJJLM{gQzQnCrmj;eJBTt+*3CS#(jhj%H&v! zuP)Z*@AuWgyuWiW^)Pkv$`EuT{{5`hV>+>(L|Ip8dm1K_Z)b*OV-cTGp4%at@1ukJ zL;K2mmhe4KVi|cv^uv_Ebd27*OW^~vmBf|2*3Th?{1<#*?)#U?y;cv9PedmvJTLo! z#6JLyO~+n)_0@Me8^A$1rH_~Xae3dA-DBPB%JyG=>9sev^qp%1C*tl%axg%0 zUj5vjV<#kI=$J#2ZQ18?jguUcPwe-UU`1*XmL?s;{OEm{8kmOB9ug6%qr8i*ni9Y*W!@rcAC{#Qkbe!o zpDsVx6Mw;8NUj&M-E$I)6OLheaE8Lu16C4u!Cr{EK=i?V{Au5`xNG&2cAxf<&-;Df zao35zi2)oc>EdK)-_Um|I%nt}a!&UP5XEI-w8s zykZ~p^*{Bgg1gASGR_=Vk$u|dA+Dk5O8>LnkJeiJ$#24QbEEgeCaqBUeJ#%FI~v}u z$S8tU;t}e$Vg-A#5w?5>JCf**#qmdIR}yLKXbtFvk$LeM;vF1>}c(UJ?|+bd?LESDf2X(vQA?K$9F+&9>#Gj&8QQ4IQXI`V>`iJ zCE;myu^r{a2W*l3Q$3ev3gt24Gk@JXuDy9XcV-EcnvGc-vS{=`=!FSU>pDnSU z8%>{(cFdkw+tR)X{(`-bqCa@Ng7=jB57`io{;ok7KtAp-c7eQT=16OD8fAghx-|wZ4zaeb&&#Biw?NT%iqs=ZU?vjdaeLx~OLmGAgp;jYUw z&{napm9lb9Kv zgMo}AdOP_kF~a>gzYPDr%megeo=2j+`EblQ zrT8Nc^P$R@svbLu4;4K^+?Ugju%Y}rWt~#| zo9Q8$7_Rua;q+~^cx&}OWuDjz{-T=(Qb#oIr^R0#|MIr~E#~^)ui$sS`lx2T;yHf1 z;3W3{S?T|Wuvf=ewleM_Yg(Hi`bK;Ndyb{(1lcawbr8duk1=JOEpcQ&iMwe#`%~r> zqTg*s`zk)QfqpTM*{@uqo zF$>F*kCBgZ$pe}6V~_Iq1bx6g3N1}KjurGPmL}(8s`!Olc4827NBzkIX5>XP@??Md zr31J>SaK$`aZLwI{;51H)bsk-J*#8&{)V>mgOarPD>_?jfWCa_V)$(K?X!!BcbT6c z_^a_4d15jBuTdU5={pf)A@Q;QfWKDu#l9-|Q^tB(xoPnaO~=BxJgwhHnSB)gwwZ-W z&ci0XK+#FdQuAS*MB9-m{@x+Rf62558JH2mSb{cTN|+XkDaM7ZCe_W%;t9YeNjy>2&dUR#=yJAKl;5-*?Ip|LpnW{s;d;yfiDH#~zpbd)xQJf`CRkRS5! zdoD|3jLN*1mQPe()W)?|bTR|WG0sewHN$h}*ezVOipv~Eb z8RVH2dy2~RkUWR@C*t=P(Izl{WNffF;SlWh6w+k-it6JfP}e`q=4(%;WB+O$}3W$pe{B9zdIVAAiPNgP8jpEWWqhHnbcyi}IhY z`16v(GlakR9#*^aFfTS2!UGHA55PM4sMa5m7`ROKb;rU!o4TYdmtk*^56Cmr1(GA0 zxAWi&jlIfGD(3oI-S>X}m>bd~!UrOQT0Rh&Qv7SyWe2V&sl1@XTddQqV*SZAf;D76 z;y)7$!qOBR#5cRI|5Z%6T|s?rnRpPQ`{n%>#O;IFc?Dmc>$H3zv5Lh0diXzNw;u3} z{#Y71R>%JZ*mg7Yd~)uu!CmDARS#%+z%HYdF?lxqD%RpQ(63^gC3Pk7uLcnNfvX}J zW9?9C?=42nApWV^9Db(67k~8sMSevGsPDKa;Q;l)AMqE=t#=<)e8a``{~nV6r@+7E z7>i$Dd#~Ey7XWwl5xUj>zSZ^r1s)LpdJJvqP`79d*|-Bk)=Qs;_*YsQymkk3Z-Fo# zIUVytlZiWPI3!zQZ72F#&-UvcFHSmyMU30|rCn-y$gSiSV~fJj8s#LE7&JdR%xxcw+XBZ2J9&6+XC+zs_|sCWgjM zJ-0OF1g0<_HNhtiZ6_`I_3ihny-4_Xt^HlA>q~azl=}{UKIWEzFHX_>BL7;Mu2}xX7hJ^rpX&FCyafI;0efv-O*B>AKV-vO`2^ehawD=sOdp#Mv^*gBIjPN#+m--x zk6jqGnLNO}`$%qOf7GTO)cN^?QJ`Mi%91lCz7wk!*V?-xD zIDT9{(2k|l=Vq`URr#*qiwjah&xo5CO9Unchz;V_@_6H6{Iz`WwD`+7OHbz5ZHX|a4iNmM<|6uF!q#|nnqZBI>w+H>f8wO* zl?Qk|(A`?QCi#Dh=-hJUUa<>mJb0gXbni#}d42_JizA#oetrMbuU@41zjc**-(6Y| znraY#!LvLbPMF)akXY$elmOega<|wcXQ71G56#=A8xx$T80U0wwJw+ zR_}}Kt0cBS)pO$WO6^9e-*Bt?^AA23eMOy5{a@ZVNbOj1!@A#5`(f37TFF0%{TSio z`J&<9qH6u`E-w5Z!(ZaES?n_(@0*OV-ifpYTAJXM1e0lY7_-WUn2J5C2!CyEQOz-H zw-0Qf;8`B#a$cT6`V_=ZQ2h**2mXjZbpU-v^HpBId{nF9pclaJQy-y8^|}quE(%Jf zylDM@}v1z-(64HWu4WQz2z3{@A}a%jq^N`*+aUU#5sTDhwhw1 zIKpu&@fX{xE9+WWc958WafDL0mD;@`_l)tlwJ+OO&sFr^64&4F5!cNJJ)}pp_qQW2 z+OaNVzLNNV@j~I>@RQHKDxJSQf#aovKgUiVr;5fxKGVPc`5X(L+P?Bd?CqSqeGewc zTrXeF^&`pLq#m3HJk-uz!C%2z;REslaTguDgtdDs_IX+}mn1!0lHZYe9x6$HUwQ9p z%O1sL?E73!*_S$>^sd?oF*hl(sg{Vj!dHU57JunKmU%KG9KC+7Ugw7as_?x4+pj;a z^VP}u+v7Q2w10d~Z9fB_+kkB^Z(P*#hQ9M`&#CfUs`TAWV?Ovt_Ihjar~DKDKJ!;& z@X`%%p?o?KbHT)x`=YPsalYRKAI|+`yfBvW!dUta<2c7_Jaxy9)EzQcOnnza+Zmyp z3&$SSS>fynjN}}-$bFa_b$~eu<_~urfmOnB_K6lM`blb5+W8OKJ_c*{3XOI3zwzl0 zZA@PP+|@^@L-{YT@QZyc`~^!xwpbgo7Z30k*_#!?Ih)&4F~Og6{rr=u57N-r zavcU*xx$5UqLbKWk$d7VIoz>c%olLJ;%MdxMzM}GiuJ^iZc)r7M`JiieGmPuIp>d? zGqw;P(_DNF^321ONMAGwV}+0S95P>QCV6Gz0`@fagT(xBeCe|&V0)oY&ZR>fUxxDf3r>$-E zFk9q+mDKf)#9wTH^np!df96Q`6>IU2QgTIO$Oj6smZ19%`upaanO|Ve*<6Tv!<_m< zOUyY*?uj%)h&`*)w`xuryEPW$JmaWWk}#S5D^tlAqgVT1so%EOBj*e0Sq<`A?-OY=B=r!(gGqcGzTJ)d%Q;Q+fZ~oA2*sUt{8e)bg z^JQgzi|9+O4`@jK9zLf(PU`Wq#a@2%kNAsC6`7vOdVtLDoI;u&lz{;@?l7HiL;MRl z7g6T4mT>N0K6A$LoU6P;q5h8E=sL$4z2>dr`VKDWJ=?il{JYO~K#w`HzJZo{&2?fP z-t}E%k^4z z>Q7{=lB$3F@yAtPef8CkKKS5+_g{bg^~zj5<-K>_dFL%2zeXAUZ`PK1^W&OzeN0Br zzT1m)qIxadfUXNX&~?#PbYHv`J*+&@$Jz@$rrG1OhRrd}BZ6af`o2%B#7-5+zb?Ki z=K5RRYo67?Le6bP}2k7>B+K9m~aC-lyI0>1aD_8rlq*f>whjq2+)HFz!DNM*YU3Y46eauIo@V z=+qze+nM64wtetr>t3i!;+iM;qGb=%ZP^`Pwj#CchI-uprcIB#pEfiusq)qL$Etk& z{n6@QH$GgeVT;_)zH6OP>-#oopEqrjRHs?{nD?qyUrhdxby%MIpVS#znoazrx1~FJ zSZ+p_MV<~8-B+9!Q3Cb!V^PQ@YyHN`?X4)Iui-JtS|M{|30YnL5;dbU9wFq zTwy}|O)Nb~#N5)G_*3?+x1!5T7gTH53R5dU@*Z0OpjJ7-w` zTPK}ReDUca+0+BsoR61}{5Hl*<^ixLg*EBH>{pcaWE5i0(%|(`>{p56 zS~Jv18+KqA`&fpve`N^g#eZ)yIQ5lR-mUV~z(4rnKR>8de_6Y+i|?6G@0%2EcBmG|5)o^s($9*A|Fmb%Bf*FE|EALU>0U%I=1 zdB6jh6-xYr8JmaX!hBr_OeR~xfi(gL#t5SOhZ6S@9ADk%F|_~W&sD~!%rid7|7iEs z7{!V?CRs~H`V^#pbtvP^VI+w;M+zVC+;HlNfsQ`-qIJ)GmEL$m)+BsZ|K9lIt0ul3 z>F25VcTsp?3%ZIQFxyqZe}e0_=Z?RO_fwCrLI0olCo@+U%{6D3kCAwLCi!3tWxdPf zMYPeJ|3&*fmNA&fz9GDI&prLKkq30=21w3H$vbOvf1($}Hq47TpwuY^d&xD7Wd30! zu^0SDaE_D7l*PZl_gQTV0{>sxeSOAx>%(fM%?3=r-ed6=>i;e1rfezy#J`)xI@J83 z1ID^|QU6o!87rylygcoA=#HtO{inUJ_Is)xklr3`4sdSte$3gy`MS&n%?jJgb^fB! zd5R_M*l%IQoSgKANw27(XOVN-SeN&G%y{SVu2Y{=>_=G+nCoFkzHkJ46o#vPYh^ub zgI#>^W!v7lT>A8Lef*xm@yE5Bne3Le5xd^UUn~FJ=B`K0?>l0&!CNc#!LOp7=lD0nu0Em?s?JuI*PE z$@M75Y}!eCWqs>E)oV|G*0Nv5JOB8oMx)v7MqA(Rq1b(Qn9v4vr9aqx-bQ@hxHCrC zZNf_OsgsiXDXW7&HAY&SSkbsYJrC&N&$`Xr81`th7AQ1_zQAFFzzUGE;5&wM7>@SEnyG7@VV2UiofV8ZEiq%4W@A2h_PJr zY!cTeHl68s>w_9!O(w|CQ}$IJdhhdQ9V1L;x+*mQMgA?_P`85_%oaMpg|=V(e@O9_GtYL9% zC==SADe{2yY5$4%3wBTTdn*3Svl0J_upi7ke53BeFvBAfE=sOe-i_aX4)6Eio@MwG zbG6S|`UItqbPCsyndYB}e)DX9tMchLlIQ>P{=Hna<~N-O?(NBXpy1z~b%AfYk4A3` zTcuY<=E(>TC_S>zaeNHn^Z=@kGcL?{kvvMOeU|m+ue#aK>7jS_4$#1cfm&K zlTiC*%bO?lG#DBBjxIjB`-ZNq=$!6%_4m8acfoMh<64iNi@x)m*o!57x?+p}Jo#7g zm$~Rx>;sw^kxBg1!5)HNE7$yT60!L+?EXV6@X7}@8aM0naiywcOs3oS=2M9&#Zxkf5|p#vHR>`bqR0G=XgAiHePBztPA>Z;iN8H@vCl2v=PD1E zr#){7d-a_DJ=ODuwzAHb4P{OG^39g5Q)CD9xtq&l1_UUitI;Uw$+8uLNHG?N7fo9^LuJBlALNc<%} zv7?OG$y~-i8GrdbeM}$sSmtf1WXpZ&V;!@~7vFX1hoMVZ*Wlb7wV&+|_&@VJzytgh zpPw~o3-+js-#=o-rt3AnZSo?m{qm2mT6CV#dEE3{o!KvCL%S(!r8!E^wAyb`Ha-#$ zK1)6DU_SW6^7puytJg_hRq~aBzhE!qoP9=_|7+BDBrKV0S;_UqrKd^qFk<($vi}U? zoLsISci&Dvz+Lq%WF3hGT=z%*mezE?cHp z$y_U6a^u9@IhW&<%X)x9vR|T{bKc8+m3Yokh{q3z`J-Hw%0B0@lL2xl`~E|p@wZiM zE805H&db`n(%UN}KDOk7g{n%(zc}{vyr$ zQhD$nue@1#V$(iDeq9)x1gr2=Eacj0bGOG~mQM_3ct>NFcNC^GcRI}@oZDc`+!BOY z?!lP0F$j}31YqKZ?f7xMKPIg8#ke&-7_-_NqgQ%iv@^HPUNCpwiZM=G%4jntxNOFF z=gmBJgSo>dnA>l_DBE=yWwQn&mbpF_{(WXFLGS5S=rMIMx=*o0*GUUuGI0UAvG1?< zR4bTGosUT_o3JE21(pGPAKzHa@{MM10N=x#@8KQ6HG(2AZEF}QRH5mfVVKGDv$jPl z+ZkTG&MOR4d45{icB*Hn_L%3UZVlIxC-39E12cR`vh~`*^AVV^DF|aX1ai)gH@@#Z zAhr_cV5x)tVr?sbShdcV_TQWI^7^K2XWu%_+6H{qut^~2C7!J#<@47xl5g3QAQQXzI-;v$^o+#a^%(# zvlcsGuH46F6~<3pfElyqVX3VxESE3A^w~2paBzPN9@-z{CXB%7u|qLx%utLrCygG0 zQ6mSUPj3@+>)KwSwr!hp+W`an_rkydy)a}@9}F98iZQ&-yo|<~55`#YK?;oQqN~l+^mu<;>`T~);#_|eWceXIVkKgImLbk}1){x{Vb!A1m@%v)=8o=) zdFI_Pb3_kJ8)ptjmyJkD%R|xGpKCXWGSh7RO8ehO#<-@^_wvUgaNM`_uEh{M~2vuQGYTZr-SnqyRhQ zXL#b`(J)*%5{|sx?i?dWq=mU)cd!#Y9H+r@d@opz?Sr}FhQh(t5eaFBP;~w`oV|J% zr>+uvQt7q3D7|`*$8zogJxcC%Ki^w?7uorDka6M;lJkB=bmk=l#+M*8?iBp#_r=D> zVt0Hjj_pfDO5_&o@^`?66A`#_atE#yN8ws=G_Dm!;o^}nGSo_XI^(!=w2 z{r9gKqs=z$*t!fSGPWxCUp~GAN7A+;HQX6#;VZG5vf{Ja0+v4x#ggfB5fYk+yi+$( zOngP&wIusm>`Sg{$O{ih7uzS5)^1irr@N%964~HMIVn!eA@UTQ~)Eev~{zp?b zqbPeDt`_h+MUl8%6oIQJBNZOFPCmFvKFHp+Rx{kJ&Ah)W`0`#82liYL;=V+4BEy4Y z7RvF6!HLXmNTUr%4PS+%kX3MZUI-UwSESKr&cApM1()xl=+bQzU%rE)EB8=LI(g** z<|_Ub;Vsux^m#(225}j8u`B%!cBb8h-;PVz5_lYLT+1OKG#dLdlW;s|C-uLhVz;g+ z_!C3&z%}xKyi4A0H*B^WhfOwPU^mMYvEECtH`)~kcCE*;)Gatkoqw%Rt|t!=`>Q3~ zCtWYufg9w3-1v3)aahO2e`oyr_cbx~T0QsY{47sgQ1IWW_yB1UtB@SN8ll_PVw-;` zatklv1aUuh;SNrmzl;0}cTq@Q5d5_~prKB9KowzIBK&fhd_$_}I{7Rr$p73;n9_Kx#0dV{)dt`VcO_!HpKsb+Rj(Rzdbs(Y_-v8 z`jvugZ`yvX{1@c-BZc_K1`~U~VC>Dmj-wZD0(Okr14uUl+V_Hdf9Xpx__tZLP&WaU%-$Y{l7w+m-8YQ1)*a!2jr; zEtogi)Rp6>uDMasQ2tMT*5IqpzH?q;epc{5PrvtSel!Xh2c+(BMX>jJM6&-f@8mt~ zKY0iHOYY!c>0R3YdpL6TE{;n;Rbz1(e*;2_jUDuLADp{7mnOYU|;^91otr>x_b5MbyqAN zQ(TzsdmsOzecO>1vksnaYY`S-jMzQbke)}M{ODa|9lwj5f_o4@{otuP$UCD^c%Xps zUqy0X%-Ep#nm+#2AD8ZtkM1$%tC)9oru~ZDx%Uv2d==aIcObH}c4JRk1P*3};zaIt zTq>mhuZMrhejjA-Tn)R~rlh`z@v<(%eiKS6m5Xm|8UBGB;!BI|GsUE^W3o7a){#pM|vzmHvPXt zNgL_=(Pq&1zs6YMf#0Co53Nsd>Yy*Sx=h<=+NRB4UDtnZyd`T$*({upQ;_M0b9q6y zc#M3X%eczl8_QStFo%~4`_;u*z3C)EVs9WW^BxizlcgR3vhp=JP*Sn(*2=xeemVGy z4ImHXla4c<5Z|IAUXsreIM*j3ArbqtW098?hSP_MH|^FH#{DY(m+1eM?A?Y!>ToZY zNmw?u2f{ZmApWZr{7d%wGS(5B5zX&V2Z;Ws%wK05q0-qrfB3GkI6tVHQIqEez+Zf0 zS)<6-V*H*Hdwg*AP$1474#oc6L2z`8#Bzr`*snYV8>iE-U3nZq(buqR&us+mx&V*R zeC*7;Rv}i3yeoRY4F8Ap|6RooP~(R}<_`);$LV9*xooZQz6XkKA|fUchxR4nU2FAJ&t)B5i=-Ykm0yaU2=i)5azz{W{<8-y8Xp4J-45yVSCql_Q<4TY2GN^@6X(6AdaSo zV3Vs4R<7KMr4H#>?_G?*oi`Ahb`L&bXRv5RDAsYFTSaoJ)$z3Vy7)ij|2>Sq@IfJc z!+gdWOKjKEwwM36YvgyscBElnb`lOz{!0!;;Bw(k+W!~@e~JGtp9rTO+lCVA`J|u~ z%wL(n&3+>MT<5^uW-``UjmP@M6R^&b#I5^^$p~_rhpb&|m;6Y&Y|-hv~UJ!P_%N_m0imt<8rO=lC&i;)nQv4M>QJ zhO1{Pd}B%xo_ZZosn@WAf0I)kdqdlY?Y!Wwk{b63{^AR0h&gRP_Y1fc*_UfeZ)o7| z8v&0kzPPIa?r6%-4XD4LPk;3S?f+%!|I3ogqx@fGO+dk)JaBCHX4uRy!z}a8u$eU! zYnNKUcik#PZSz2^|2Bksy1~=c1};k{W5vReSg~LvHaSeE54;xHInBT*p)4w78=w%$gBzl0nas3|RGY)I)>|Hh2fBuE|-@_d| zng`Auk0Sn2_w&D3@`*oXzm)hF@A0OLn``Dz9E7-FUlisY!G%+&asB)S+&Fg;7fVV| zbYvg0)4~zD-31Oy#$);1!Pw$BNvVOXvYF~knEv_KL-kyq;I%np`v&DD5r6u`#k2v( z(!FsoIRI%1u~@M-3d`5TAm_vlr0gxfpHK2XCl&wh9%}>=7v997GrzNr_cNl{uM@?d z>C_{anK$@_pWR~IaFe;j-Aex*6yIK_HK@Y*Gs?8F4k)iW1x`P?O3A?{btUcjZ& zvp8E+jFTr0;K+eQ@u$X+9hmkK4kL|GVaZURf|{kYC>Jt%|QK z@-M#NvGgEh?v7?3$7Wdb?=SB!DBs>MT=x2L5W8Y#N458a1OR| z9p|k9N$}X72zRdQ>mHs5w}31Ja*dbhwA1hmJB|&$*+|)6%AD};v=4XSzAfaQ&-NhA zt-E({oA~D*;<}70Sd+>ue_rS%(fcRES;LFKwZd?mV*aLtd7jg(^Q8r^$EhR7aOLb} zTsnIRm(Nh{PoKk?qEeLR7a*VVe`xP+QS9;i@7C>n zE|U9fZu+v-%u$|s$y*g)`DBhSYong@0fLd29f!r%&amY=LKVv1!sVLOeJ3=hX}j}I z{(_BMt6{BQI`ediNQ_NGay%(974dON2nvnGrfo6ICq!VAdnnwz6X6zg7;C&U;K?4f zJ$a?9C*Hxn{4<&bOKdcIva<2>@4v&#*B?%6HX}8s5bM_kRQNm!{zc)e@AwjbFPvr! zuqSLIj$~!w8fE|Tne#YLxj$V@>vULMCR;vxe0&2h3lz3^_-Nk&t;5fg#~YiQic+4=6Pt z*7MIE@JEU0fAVxz)Fxyk#^U0sGt~DbC@m;PY0*iXDLqAfa2{7LT*B3h7jgOGX`DWD z6a~k!kewI`cZZo+IBl>$A(K9;zvI9Ev$7cDbTpmu4)HG~{sr`x3bO-Hlt)=z<5KQ8 zOMLe8FTW8VJ556NLCwCCKVcJlqBpW%(rsG^l9OYRks6E4)LqC-*@eXD5bTQBj`$sc zh>Z-yPEvHF@Ieq<*960LgDA_F{dAglbfKNb8b|KbBmuh*_fUlbiXN?U&dr;3Vj>HInTeDenG+`5Ikw{PQj z>X~1D{|VQAyMPPVPok(G2jSbCU^Qp>MgsrR-w}Lyrv+06FFPXft|I^5C}1y8F>5Ln z>HLEHVu2sUCrdHYVga&_6(fr4aBSKZfvv0=2L%KpBPE74I`+}*iN@YNF^Jo-4I#`c z#D#kyKEfOE;XX)+^hZ*35Ins+VQ0S<5g|eF_6%UI=@@H@>@QJb0>+N?EsveQg}|sJ z=6)lPog9VO2ruks{;#6v6#q}&>v*y|qJlQ!@cz9hK5-nE&!5Hbzy1u(-P^!DMi}?* z;_khBxOMLqe!6=NH}BA&{J8{C;Tte>;(+BGroU|uz?_K#EDopnXcYaQ|IhLVT1D*0?wz$j1v2!2$4MzxCe28z{UcJiuNf%KpCm ztMK*>L3&aoa#JF(d#4W$(N0|~jKw+Tdkj5qDPusvzc9@MF+m%!H+v6G79PjXH?9!( z-xch&_}?M^cZmOQ3jROcyMi0HFTme_!`<#38~>eq04rHc8#Lj-?rnEYF^OfMWeib}9YkLu zkoA@AtS?DUp0?l52Jt}-ND6hP4sd3#kt>ev*^b<}tw@V>Lq^0_Bm{b4^%^fE>^(>P znOmS8h)vv!gqRTQO$)*Pv>^ItJ~*7=PyC}vk<9<^sPNgNx38l;O1dxq8se?uf0w*) z>+Y}k_0A34yn7kf$pc4AxYp>*$)06>^nY6xu$VTgQ_e2;>lNWHpC!@fO4z*%n>okE z%|8cjez~j<`C=#Mn1`m6Vw+D0GI#kQD|Q=l;v|Q#9VJY((RA5Gng{7hf=+-_v0$^{m_8Zef#$PTg$#MwYhn}b`_1A=LQ=D`nX|tavT!aa~Bx418X+!gqs)tuC|jW zc_D)}f)nud+m5U_;=jwA_4q*_UuI{|artFEWw>aFE#NrESN)L~k5t--7ge zU#08|{<2@uyU1t9nCrQ4t^~i_yo%p%|AO0he#5Wig`2-$#f{%DE87Eyb8pX`Gj%D4 z=U;zY!7qEUzFpfkt!T_5d{!aAa~+Z?`$>%B;uB-Aaf3hBxyQj}^;S6ZZ(M8)*b6^D z#@TTq!`{fMZDFCq3)i;%`|8`)&>;Z9sB}t-=SXVfM(3T8T3ULpUdc zJzMPC-xIS6X;H55*tnKCfdkl?egb~J?%0>?k0a@{EouJPAMe3f#g{c-*8PdULQ4N{ z`RjtK?^#mJ7~s-b+`M@OKmAI7|5y5Zw=NO;%P2T?RI|c)S!ja>4L<(6W3P@!dE1MH zakSO!1>NF;%p~SU8Pn}aiAG3}AMBkxm><~8-fVxY^h$@Xk2mL$d1HTqC+A+c5r6uU ztSLziUh*&(jsy`a>CuY9DfV8cg^T>#a-M-b_Z=8>`r<5g!~yna<6Fdx<@u<-M1jFDWU&rOW4V z^Ovjm>DESp=}5jdW<1&0zhuvc@H;vcTuumvt_e8~&W5I>emHxX_Czu1%puN?D2kzv?a4mqX-L_zg}!$P_N4{0 zJ`zM5%^ra;H~4LIfYnkL%Ks+p7uhHN2NE|?H?yWdJ%5IIcp>S@RPhn~&l8`_XlDig zv!{e?QvC21}<6lJTTsgT2>uRM6D#C_F~jD;xQQ{o{^CpjzpD;V zaW=HgiQRZta(^OUN)9;JoBB9{avB1^bu-y7wG_wGSs&a(|2uO#4ySXifT;D@72t#g zlZL>Sy>xq%HX|?DjrLpcXYEy2{uTTMBbC^@&wOJ>qysW{II>S~l@cS|pe-+^-%!k$ zA#e94<_R3JcJWvQteu0yymvljKR?q02kAeYCXZ_8{6r{xpuIQs0P_JC4m0n>YfCxT zr<8u8-J%I-+q^lZk6TeLAN1@z7)`!uc;TCR^;-Ykbbuku)pH{UwjZ7tw(6FuTSdQ$ z4G?*}OrI>udoe=X=QHl|!to5&Qy6#UvqqS+%T3ASxhxq2>)E3jySs7D#bz9)4k*m@ zVhwit1O2a$KlSx_>gb#p7i7`S=Mw+(#O&tD7@XqVts?S(tV@s);R0{R8Q4xAMDQ=5 zP0!DyuaV%2(+7MN{1qNhdiRC59^fy&OevqEgu2LP{y4O1YJ?H}r@_g}aJ@hsk8i&I z+I`rtVgLTS@PPVW_W=RAvRC0d<* zmFq4XOj^tP+bjD2?BVVBsWciFj*~iAHH;Rm|1j!Yd;jS{#!)(D$Mdw;&j3P7-KTOHB*_VTT8vZO`%eySKOc2t%TpE znOMGH5Muo8s3W#8_TQq|kPCT%56Qn^q|UPxn=RO#Ag}F-vgceqC(b|7;(s|mjPg(Y zkr%*R0_(z?7h?OWIXKRBJ5Dlg5Z*krdo9i%l{vg}p9lEgEW`iI0YBP*#vsJMfN|s8 z$%E0dSu?b6-9ck9)d|kl71s-d4-yj-|L5oas{E|KRk4?Cl`3z(>#%ryd>(tH3#kJn zz7`vBlK$Xj&XYVtIS$%53#nla)XDsuzP;r3&K?YAoVJnnVG-6X8;Kb2rNn=;VxPs9 zT;d$tbE^MOnZ7}tFLSMx`BubUj!O@0LuQNv<==^O5VzxJuD^1X{d*;xzjvNFLx~Hc zId^lL^GxK^{z#3oi1;5#S7eDYOdEutqw=e>y8GD|j?LU z7)sto=2PwTUCem_%M_bj#4#;qj!4!FkabifpTE^{f-=`CkLxCg?_Ml(Y$^Ze=>teF z&Si=J1%K*)6@QUkk>T7pXXcEZY5xQ8lg!0q|JJF4ew>dON`7+ZdQ?l{L;MTUq(<${ z-<0}-8~G&EApX~=KT3IBDfNFTpEYyG1`O$Ag7!wn=wQ?W?TlJ$Mh=>Z6;?s8U%CSh z){o`^89xK#_ClW0#oExmp@$w|+I&Pz;EG%Mdze?}`WRvdL-xs?Y{;pFvziJx&vh^rpTrTsk&eMOmNIK6L@-lV7gZNBjRvQOg z&SyR$aW(eFt)$)OoP3#wP5jSL7l`hWdnInSLBMJY_Hl4d7mr2%7c)k^rrbj-|LVQP z##}od!d^DPUWTSaeEQZ8NysW zSKjkB{jOF6&y~|lPNZ{fEK(u;K*3+~w}QXm8RflzG5dP@W!k*%Ir7F;>V^}P(QtPQ zY;hRNIWw#1yK&s9e=iX8%Zwk-@AFf1fr^n#?ooocs{_|JpqMxg+9x zQV-CMr?O5M;kJUnY293-$UpIK zFFeq!1v<9qgh`{9XdJA<$ODnEU(D^|@_R`hHHPJl?VojCeZKOxk9dyPZRd>+I>^{v z$-k80Ura2o9AhnjJyvO9wp>4Lm6Fd@daD@UU*mby50)K|0`wx^*P3K zm#M?g^K;<^k?RLM@E})TKz)87X$>ythbrLwyULop$_N0z2J7^}1w1SOg zDC{gFNfEH+etBc4o`1wx{v{u)&!)e9+=nsk-gZHZzr9A{?))V8Xk0lPL$l8iN#9!+>oTnck`Iz$XFFoMHei1jW$q;rQ z&nvXyvObsifZ5Cu#Q9q*zJS;R$q!w4sGcBvpvC_h?{Ql6ljwf>smD3DanYoK_c}Cd zqUqS&Si!!N!UI}cAUdI)aU0F3Ar=~&g(0w89F7%>f;bN_5DR8*LQCT=H}uC-_xN$g z_IY2Y`%L=#kNey8zW8*p?V@p%Ur)w(%mI;#NK(I-+Kkxq?Pu@5^bvDY_UpM`uze zQb&^b0t)^{%{A?sx6+IpFdbHNnJZcph~@MBv24B%M)Pm!=#QuV@#Bu~^SVy|d328- z_ctZqRp+zMyhrx$N`HJ4*90W?635dYEMgArqSOPakM|ObeY;jGc3J#@)6CTg7J_p| zloQuk;M`emB~N!&{6G3)7f-NHmpmYG-F^IZ>h)sx#ont}DqGrd=@+@kx=}7|PGX?M zmhK8)o#B12kw0{=7yM=Im$TIUO5Trg|EX+0gm1Oc^y|<})2nqebZglhCM}wyOADhi z9uR$?)d?MqjK~j0FzY#*^$d5-(s{mEGS?Fe`8Sn1v^2e_JEn&AA9tLe^>v1xMb16x z@6@hc`#<%*te-rj|8V%b+cC$>T03j_5(kJLIK@7W>-5J&7o^bE%lt}-v89*eBC)?p zSryDh2S{&+*6VVBDH`^%t4FKA^wHL9;X>g zip~+;Abx^2mK5wc|Bt??%=;DmONf6Fd(c){jo0*T*A)HQH%Fh=&C#p15qh)|UT8{Q zFrrQ%(GTcCJJ7i~^Fz&yG~GJ((@Yxcps}2@8H+94FnX8;zOM7#Dvs$(<&F2#jQNvd zq<{Uhd=}osZA=H#5|t6QtSet_ijuIEQ`4HXyU(cX()7yn$= zTaz{TBwm-AZeq|f)`2!C_{%x1Em!5W41ePLFy6Ypoa{f0e`=_$l8;bq3hya7US0gJ zQy+*QDm5%EaqWj#cT5}6T{Ez=5e9W`0kd{3(3fk0_ikfEJ|GW}54yHAf{8Klryda9 z(3L#Vfx4hw%g&mi1E*=`Ok0WRQ*6+xrAg5zpM3I-U{Kz;>*MphkDujpRIOUIL;Kdf zuPwI>fc3mh%=a!qG4sJi%()dxPJr?(<0>_J(E;gUb~wYh{v3JW4CxYWfYfwl&7Jf} z2j+8DDKVhfg)8*y72U7s{72!g%LlTSt5*M~M>r_FCVrp%j$%jd`~HmiSYMFml4q2d zMe(&xOOD9;+{vdv`HmAP4 zJ{o(i9*`RGz64jrx6s-WS>umuv{RQTbzfpHu|+9;QOQY`)CY=AXbH3SEvOTW(W^~!Egz5z{ZsSK8rT zr#4MBKARRQ>w~NK%T{VTB8%dWA7CHOC6P(S2KW20iO*@~Z4MECS%*z{Li&DH%(c2e zi?4dFysgxP52tM4?`d_6+)KeKQ7&}l{a(3Wc$^PvReHH;<91suXS%~>*$zw@yIj+{ zSqn|8rj0cNdUVu;dE3yR_h9~2TN{wLpd^R+or8hczsr^R!p)R@Z9Fb(un1k|vDASi z4iJ5y>T6}KZsMk_y{*`9(dB>a-&OfR*5NG5Wi637OJ9JpW;?$x+bgUOoTmRNbxO5& zO?pEjy%uRE4{oO!C)oFEiwS1!l9AUa`GFJp}CX^f%dg8^MzE7XsC(6>`d z^d=v4r#&!f-2$CjwM1L`1uf|pHg5dgozFl2O#UXwL-T>l!$dv*I1oI}HR}EJw~zDP z3a@#q(mO4Ty2me{@6G&IAo}$hiPp`SFJ(O3rdbmV?Q5dU+dPrZn2;p(;bO*DrLtxe z^K25INxfF&T3Jt@xGL-L)AuW&y^tKigLu6R@B8t;{_z97AiN^?mHf~}VlQ!|@4x?nNr!$1s5xt7 zMrd!`j5YJdtesV}4iuK8NIxqz))HM)5D`V@faa8Ri`x*nIZ*F!zwle$ka&!)Zg+T_}wRvBHZ%149h z)T!2$e;cV?y=v8r>Q=2^n@lRKG6Gy#!|(^(ALoPk9*G0{p8%^e*aO| zz4g{xpY`Z8>X@D7c1#^(gVsiEi9hq=fHnCSw7chSKT~rw)kCAm9A#hT zV2D2;`Ts-gLjG-I^bmeg1jnZ(G*-q)Pqz zAH4tWyULp0vZmMnJ!)*8^z-ttdRn}m_5BRJ&)aXm{Y~$#=BHOI^2gAAli4TNg1xfF z%!xA(A~`YQ-%)a=Et=9NYNlB@Wr!v%Y_&%EfTR{%$at@SbSPyl4(w)MW**m9re7{| zGG&c*vDMPsA-S6?tQFnhTFsKLQ*FF9A1FCNT|Yp}7qXV0*nZLd!b9Tg$vpK_T(7Q_ zbJh#Ve+LuSutsdl9`Qw*xs!+PZDaIJufCNlzs~u)FL9ZYXO6LXmtl8o` zOOut3(B|2W@$(rZ5Ztafwex-X3zX~7;@V@+#f z-L3 zNPX!Ta}Mc|jtFs^f5&O@@S|f*TiKa>SN|)%^IxLpA2rsx*s1$Z^Bwu_qrUgFpI7;? zM#~`sCte=dZ#0aX8fn_F9wPWl{MV88Uux%FiG4TLOnNeB-iJAKvrf%0(4;wr_Ath9 z=2eDvH`WYhu66vNPO!Bwr!BTdX5?BN<=T>k?At1oo)#s(mK1mHEO# z$9bLf`AGkX;C_s~XoopBct86}(;}VOV`B01ve|=kN0@e6)cX5x>aj`xgME=#5e!Vxf(Up9nmd((%9a)^Jfe_zQSTuvE$f5q8)?AhgWh8HfH zHXv`&lmW4G#&+K@p?{}oz1r6A)UMHI)tGp0v zHT|xclJ`;ZmpZuU|IYOPwfHwD{;ZRO-}vh~>%aZ1dYAX#f9(T4*Q0E( z$m|bfat_sBf2nSb4?bvI?~9tP{{IwYBF;*xDTlP2g6Rlb#l(Y_;&;5e>Yppe{R<1@2m{8 zPwJ@1)oX~0>i`EshjgAKC%h=pgDs9hVjwfI$x&h#v3gacRV?)N^4+bTtmIRMb9uK)h_h-2JuNXV^sZU2#kinXb6mk Nz-S1JhQQDd0RW2iqE!F@ literal 0 HcmV?d00001 diff --git a/script/windows_installer.nsi b/script/windows_installer.nsi new file mode 100644 index 0000000..76834f9 --- /dev/null +++ b/script/windows_installer.nsi @@ -0,0 +1,61 @@ +Name "Nekoray" +OutFile "NekoraySetup.exe" +InstallDir "$PROGRAMFILES\Nekoray" +RequestExecutionLevel admin + +!include MUI2.nsh +!define MUI_ICON "res\nekoray.ico" +!define MUI_ABORTWARNING +!define MUI_WELCOMEPAGE_TITLE "Welcome to Nekoray Installer" +!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Nekoray." +!define MUI_FINISHPAGE_RUN "$INSTDIR\nekoray.exe" +!define MUI_FINISHPAGE_RUN_TEXT "Launch Nekoray" +!define stopCommand 'powershell -ExecutionPolicy Bypass -WindowStyle Hidden -command "&{Stop-Process -Id (Get-CimInstance -ClassName Win32_Process -Filter $\'Name = $\'$\'nekoray.exe$\'$\'$\' | Where-Object { $$_.ExecutablePath -eq $\'$INSTDIR\nekoray.exe$\' }).ProcessId -Force}"' + + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_LANGUAGE "English" + +UninstallText "This will uninstall Nekoray. Do you wish to continue?" +UninstallIcon "res\nekorayDel.ico" + +Section "Install" + SetOutPath "$INSTDIR" + + ExecWait '${stopCommand}' + + File /r ".\deployment\windows64\*" + + CreateShortcut "$desktop\Nekoray.lnk" "$instdir\nekoray.exe" + + CreateDirectory "$SMPROGRAMS\Nekoray" + CreateShortcut "$SMPROGRAMS\Nekoray\Nekoray.lnk" "$INSTDIR\nekoray.exe" "" "$INSTDIR\nekoray.exe" 0 + CreateShortcut "$SMPROGRAMS\Nekoray\Uninstall Nekoray.lnk" "$INSTDIR\uninstall.exe" + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" "DisplayName" "Nekoray" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" "UninstallString" "$INSTDIR\uninstall.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" "InstallLocation" "$INSTDIR" + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" "NoRepair" 1 + WriteUninstaller "uninstall.exe" +SectionEnd + +Section "Uninstall" + + ExecWait '${stopCommand}' + + Delete "$SMPROGRAMS\Nekoray\Nekoray.lnk" + Delete "$SMPROGRAMS\Nekoray\Uninstall Nekoray.lnk" + Delete "$desktop\Nekoray.lnk" + RMDir "$SMPROGRAMS\Nekoray" + + RMDir /r "$INSTDIR" + + Delete "$INSTDIR\uninstall.exe" + + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nekoray" +SectionEnd \ No newline at end of file