From 71912cfdbdbfb9c622a7796a8c920e736bc100fc Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Fri, 29 Jun 2018 02:07:02 -0400 Subject: [PATCH] Refactor Companion Windows install and installer targets (#5949) * [companion][build][Windows] Refactor 'install' and 'installer' targets: Use qtwindeploy to collect Qt dependencies; 'install' with WIN_DO_FULL_INSTALL=YES now really copies everything needed; Simplified NSIS script, now also supports MinGW build; Refactor libeay search. * Rename nsis input script. * Fix NSIS input script name in CMakeLists.txt. * [Companion][build] Create new Windows icon with more sizes; move icon files out of src root. --- companion/src/CMakeLists.txt | 123 +++++------ companion/src/companion.qrc | 2 +- companion/src/icon.ico | Bin 79774 -> 0 bytes companion/src/icon.rc | 1 - companion/src/{ => images}/icon.png | Bin companion/src/images/winicons/icon.rc | 1 + companion/src/images/winicons/opentx.ico | Bin 0 -> 491622 bytes companion/src/images/winicons/opentx_128.ico | Bin 0 -> 67646 bytes companion/src/images/winicons/opentx_16.ico | Bin 0 -> 1150 bytes companion/src/images/winicons/opentx_20.ico | Bin 0 -> 1742 bytes companion/src/images/winicons/opentx_24.ico | Bin 0 -> 2462 bytes companion/src/images/winicons/opentx_256.ico | Bin 0 -> 270398 bytes companion/src/images/winicons/opentx_30.ico | Bin 0 -> 3782 bytes companion/src/images/winicons/opentx_32.ico | Bin 0 -> 4286 bytes companion/src/images/winicons/opentx_36.ico | Bin 0 -> 5534 bytes companion/src/images/winicons/opentx_40.ico | Bin 0 -> 6782 bytes companion/src/images/winicons/opentx_48.ico | Bin 0 -> 9662 bytes companion/src/images/winicons/opentx_60.ico | Bin 0 -> 14942 bytes companion/src/images/winicons/opentx_64.ico | Bin 0 -> 16958 bytes companion/src/images/winicons/opentx_72.ico | Bin 0 -> 21662 bytes companion/src/images/winicons/opentx_80.ico | Bin 0 -> 26622 bytes companion/src/images/winicons/opentx_96.ico | Bin 0 -> 38078 bytes .../targets/windows/companion-msys.nsi.in | 200 ----------------- .../{companion-vs.nsi.in => companion.nsi.in} | 114 +++------- .../targets/windows/simulator-msys.nsi.in | 204 ------------------ companion/targets/windows/simulator-vs.nsi.in | 204 ------------------ 26 files changed, 83 insertions(+), 766 deletions(-) delete mode 100644 companion/src/icon.ico delete mode 100644 companion/src/icon.rc rename companion/src/{ => images}/icon.png (100%) create mode 100644 companion/src/images/winicons/icon.rc create mode 100644 companion/src/images/winicons/opentx.ico create mode 100644 companion/src/images/winicons/opentx_128.ico create mode 100644 companion/src/images/winicons/opentx_16.ico create mode 100644 companion/src/images/winicons/opentx_20.ico create mode 100644 companion/src/images/winicons/opentx_24.ico create mode 100644 companion/src/images/winicons/opentx_256.ico create mode 100644 companion/src/images/winicons/opentx_30.ico create mode 100644 companion/src/images/winicons/opentx_32.ico create mode 100644 companion/src/images/winicons/opentx_36.ico create mode 100644 companion/src/images/winicons/opentx_40.ico create mode 100644 companion/src/images/winicons/opentx_48.ico create mode 100644 companion/src/images/winicons/opentx_60.ico create mode 100644 companion/src/images/winicons/opentx_64.ico create mode 100644 companion/src/images/winicons/opentx_72.ico create mode 100644 companion/src/images/winicons/opentx_80.ico create mode 100644 companion/src/images/winicons/opentx_96.ico delete mode 100644 companion/targets/windows/companion-msys.nsi.in rename companion/targets/windows/{companion-vs.nsi.in => companion.nsi.in} (66%) delete mode 100644 companion/targets/windows/simulator-msys.nsi.in delete mode 100644 companion/targets/windows/simulator-vs.nsi.in diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index fd7233eb2..e0db4adf4 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -303,7 +303,7 @@ set(companion_UIS ) if(WIN32) - set(icon_RC icon.rc) + set(icon_RC images/winicons/icon.rc) endif() qt5_wrap_ui(companion_SRCS ${companion_UIS}) @@ -362,13 +362,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") elseif(WIN32) - set(QT_DLL_DIR ${QT_LIB_DIR}) - set(INSTALL_TEMP_QTDLL_FILES Qt5Core Qt5Gui Qt5Widgets Qt5Xml Qt5Network Qt5PrintSupport Qt5Multimedia Qt5Svg) - set(INSTALL_TEMP_ICUDLL_FILES icudt54.dll icuin54.dll icuuc54.dll) - if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(INSTALL_TEMP_QTDLL_SFX "d") - endif() - if(NOT WIN_DO_FULL_INSTALL) # Just copy supporting DLLs to build folder set(INSTALL_DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") @@ -382,106 +375,90 @@ elseif(WIN32) install(TARGETS ${SIMULATOR_NAME} DESTINATION ${INSTALL_DESTINATION}) install(FILES ${simulator_plugins} DESTINATION "${INSTALL_DESTINATION}") # supporting utilities - set(INSTALL_TEMP_FILES avrdude.exe avrdude.conf dfu-util.exe libusb0.dll libusb-1.0.dll) + set(INSTALL_TEMP_FILES avrdude.exe avrdude.conf dfu-util.exe libusb0.dll libusb-1.0.dll license.txt) foreach(tmpfile ${INSTALL_TEMP_FILES}) install(FILES "${COMPANION_SRC_DIRECTORY}/../targets/windows/${tmpfile}" DESTINATION ${INSTALL_DESTINATION}) endforeach() endif() # WIN_DO_FULL_INSTALL - # Qt dlls - foreach(tmpfile ${INSTALL_TEMP_QTDLL_FILES}) - install(FILES ${QT_DLL_DIR}/${tmpfile}${INSTALL_TEMP_QTDLL_SFX}.dll DESTINATION ${INSTALL_DESTINATION}) - endforeach() - install(FILES ${QT_DLL_DIR}/../plugins/platforms/qwindows${INSTALL_TEMP_QTDLL_SFX}.dll DESTINATION ${INSTALL_DESTINATION}/platforms) - # ICU dlls - foreach(tmpfile ${INSTALL_TEMP_ICUDLL_FILES}) - # Qt5.7+ doesn't use icu dlls anymore, hence optional - install(FILES ${QT_DLL_DIR}/${tmpfile}.dll DESTINATION ${INSTALL_DESTINATION} OPTIONAL) - endforeach() + # Qt dlls (using windeployqt) + ## Qt translations are already packaged into our custom qrc. Pckg size could be further reduced with: [--no-system-d3d-compiler] [--no-angle] + set(wdqtopts --no-translations --no-opengl-sw) + if(CMAKE_BUILD_TYPE STREQUAL "Release") + set(wdqtopts ${wdqtopts} --release) # release builds aren't always properly detected with mingw + endif() + if(MSVC) + set(wdqtopts ${wdqtopts} --no-compiler-runtime) # --compiler-runtime includes vcredist_x86, but we just copy the required DLLs manually + endif() + set(wdqtopts ${wdqtopts} -dir "${INSTALL_DESTINATION}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${COMPANION_NAME}.exe" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${SIMULATOR_NAME}.exe") + # Add installer command to execute windeployqt + install(CODE "execute_process(COMMAND \"${QT_BIN_DIR}/windeployqt.exe\" ${wdqtopts})") + # SDL dll - if(SDL_FOUND AND SDL_LIBRARY_PATH AND EXISTS "${SDL_LIBRARY_PATH}/SDL.dll") + if(SDL_FOUND AND EXISTS "${SDL_LIBRARY_PATH}/SDL.dll") set(SDL_DIR ${SDL_LIBRARY_PATH}) # this is also used by NSIS installer script install(FILES ${SDL_DIR}/SDL.dll DESTINATION ${INSTALL_DESTINATION}) elseif(SDL_FOUND) - message(WARNING "Installer: SDL.dll not found!") + message(WARNING "Installer: SDL.dll not found, set SDL_LIBRARY_PATH manually.") endif() - # libeay (SSL) dlls (used by QtNetwork) - set(EAY_LIB_DIR "") # this is also used by NSIS installer script - # Mingw-w64 comes with the required DLLs - if (MINGW AND IS_DIRECTORY "${MINGW_DIR}/../opt/bin/libeay32.dll") - set(EAY_LIB_DIR "${MINGW_DIR}/../opt/bin") - # check the user-configured WIN_EXTRA_LIBS_PATH for an OpenSSL folder - elseif(EXISTS "${WIN_EXTRA_LIBS_PATH}/OpenSSL/libeay32.dll") - set(EAY_LIB_DIR "${WIN_EXTRA_LIBS_PATH}/OpenSSL") - # most build setups will still have the (now legacy) PyQt dependency, so check for that next - elseif(EXISTS "${PYTHON_DIRECTORY}/lib/site-packages/PyQt4/libeay32.dll") - set(EAY_LIB_DIR "${PYTHON_DIRECTORY}/lib/site-packages/PyQt4") - else() - # the "slow" way -- look for an OpenSSL install - find_package("OpenSSL") - if (OPENSSL_FOUND) - set(EAY_LIB_DIR "${OPENSSL_INCLUDE_DIR}/../bin") - endif() - endif() + # libeay (SSL) dlls (used by QtNetwork) -- not strictly required but avoids possible issues with downloads and Qt warnings. + file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" WIN_PROGRAM_FILES) + find_path(EAY_LIB_DIR libeay32.dll HINTS + "${WIN_PROGRAM_FILES}/OpenSSL" "${WIN_PROGRAM_FILES}/OpenSSL-Win32" + "C:/OpenSSL/" "C:/OpenSSL-Win32/" + "${WIN_EXTRA_LIBS_PATH}" "${WIN_EXTRA_LIBS_PATH}/OpenSSL" "${WIN_EXTRA_LIBS_PATH}/OpenSSL-Win32" + "${MINGW_DIR}/../opt/bin" + "${PYTHON_DIRECTORY}/lib/site-packages/PyQt4" + PATH_SUFFIXES bin + DOC "Path to libeay32.dll and ssleay32.dll (OpenSSL)" + ) if (EAY_LIB_DIR) install(FILES "${EAY_LIB_DIR}/libeay32.dll" "${EAY_LIB_DIR}/ssleay32.dll" DESTINATION ${INSTALL_DESTINATION} OPTIONAL) + else() + message(WARNING "Installer: SSL libs not found, set EAY_LIB_DIR manually.") endif() # C++/system dlls, depends on compiler if(MSVC) - string(REPLACE "\\" "/" WIN_SYSDIR "$ENV{windir}") - set(WIN_SYSDIR "${WIN_SYSDIR}/SysWOW64") # This would be "system32" for a 64-bit build or on x86... but how to tell? - if(IS_DIRECTORY "${WIN_SYSDIR}") - install(FILES "${WIN_SYSDIR}/msvcp140.dll" "${WIN_SYSDIR}/vcruntime140.dll" DESTINATION ${INSTALL_DESTINATION} OPTIONAL) + file(TO_CMAKE_PATH "$ENV{windir}/SysWOW64" WIN_SYSDIR) # This would be "system32" for a 64-bit build or on x86... but how to tell? + if (NOT EXISTS "${WIN_SYSDIR}") + file(TO_CMAKE_PATH "$ENV{windir}/system32" WIN_SYSDIR) # Must be 32-bit Windows. endif() + install(FILES "${WIN_SYSDIR}/msvcp140.dll" "${WIN_SYSDIR}/vcruntime140.dll" DESTINATION ${INSTALL_DESTINATION} OPTIONAL) if(WIN_PTHREAD_DLL) install(FILES "${WIN_PTHREAD_DLL}" DESTINATION ${INSTALL_DESTINATION}) endif() - elseif(MINGW) - install(FILES "${MINGW_DIR}/libgcc_s_dw2-1.dll" "${MINGW_DIR}/libstdc++-6.dll" "${MINGW_DIR}/libwinpthread-1.dll" DESTINATION ${INSTALL_DESTINATION}) endif() endif() # WIN32 install ############# Packaging #################### -# Create Windows installer with NSIS (only works for MSVC for now) +# Create Windows installer with NSIS if(WIN32) - if(MSVC) - set(COMPANION_NSI_IN_FILE companion-vs.nsi.in) - set(SIMULATOR_NSI_IN_FILE simulator-vs.nsi.in) - else() - set(COMPANION_NSI_IN_FILE companion-msys.nsi.in) - set(SIMULATOR_NSI_IN_FILE simulator-msys.nsi.in) - endif() - - set(SYSDIR "$ENV{windir}/system32") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${COMPANION_NSI_IN_FILE} ${PROJECT_BINARY_DIR}/companion/companion.nsi @ONLY) - #configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/${SIMULATOR_NSI_IN_FILE} ${PROJECT_BINARY_DIR}/companion/simulator.nsi @ONLY) find_program(NSIS_EXE makensis.exe PATHS "C:/Program Files/NSIS" "C:/Program Files (x86)/NSIS" "C:/Programs/NSIS" + "${WIN_EXTRA_LIBS_PATH}/NSIS" + ) + + if (NSIS_EXE) + file(TO_NATIVE_PATH "${INSTALL_DESTINATION}" NSIS_DISTRO) # all files in here will be included in installer + set(NSI_FILE "${PROJECT_BINARY_DIR}/companion/companion.nsi") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../targets/windows/companion.nsi.in" "${NSI_FILE}" @ONLY) + + add_custom_target(installer + # The 'install' target prepares all the distro files, make sure it has been executed first. + COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target install + COMMAND "${NSIS_EXE}" "${NSI_FILE}" + DEPENDS "${NSI_FILE}" + COMMENT "Building Windows NSIS installer..." ) + endif() - add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/companion/companion-windows.exe - COMMAND "${NSIS_EXE}" ARGS ${PROJECT_BINARY_DIR}/companion/companion.nsi - DEPENDS companion simulator opentx-simulators ${PROJECT_BINARY_DIR}/companion/companion.nsi - COMMENT "Companion Windows NSIS Installer") - -# add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/companion/simulator-install.exe -# COMMAND "${NSIS_EXE}" ARGS ${PROJECT_BINARY_DIR}/companion/simulator.nsi -# DEPENDS simulator ${PROJECT_BINARY_DIR}/companion/simulator.nsi -# COMMENT "Simulator Windows NSIS Installer") - - add_custom_target(installer - DEPENDS ${PROJECT_BINARY_DIR}/companion/companion-windows.exe -# DEPENDS ${PROJECT_BINARY_DIR}/companion/simulator-windows.exe - SOURCES ${PROJECT_BINARY_DIR}/companion/companion.nsi -# SOURCES ${PROJECT_BINARY_DIR}/companion/simulator.nsi - ) endif() set(CPACK_PACKAGE_NAME "companion${C9X_NAME_SUFFIX}") diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index 568d6a66d..4fa2a8c80 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -1,7 +1,7 @@ images/customize.png - icon.png + images/icon.png ../../CREDITS.txt ../releasenotes.txt images/screenshot.png diff --git a/companion/src/icon.ico b/companion/src/icon.ico deleted file mode 100644 index e81c703b70eb253c1d145451c335e65f76987408..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79774 zcmeHQ30zIh`=1uA3L&8sMU+&slu*hRN+?SUkxG%KKdEMSQbDo)b=6h!5d7ha$&mlyBh!83W5ILfyM93_} zgMt{>-7gce8EJ-w->-WUa`q)5T3Xb#7>Si8>8GHP(TI?KW+so%CPL=v(G_Av`LrZ21 z89MB#l+&szEPJ&w5<9i-TGT_uZOdnjoRt;j`Ek2m_UwfCT+0_x)y+MhZ}t4R z=;H%{bR)4xqlXj*A z8;U7zY%DU_JOx8r!Np{;VbJh39o(O9oqa22L<_S4uT&!Y%^S6`o9X2%S00x?%GeYh zKF-SO%JxAECZG1vD9%rMabuS;nY?*>wVB}JpyGKi=eu@!C%2JMxk9BCbYDby%IUf( zE&TF+*SvelCOc;5C)&nOO^wW-78rfpIsfg&cGJwQtX>;kFvv~ucHTE;tI;Z14f#Py z4pZa@2W*LpQ}Zc%a6K=<`tD(S(FK*I4#@uI&f(yU&=&dy&kvt}q@`hXOi3;$@b+X& z%ZrPJM8}&gRgL!Akl?v#(UG7gViKh*gT{X_eCd%WqK^wz&d3HDF zY+6v38gVXI^!9P*Nmj{oU)?#?LSev#Wl|j{r+D?ynRU&s>_KW+^yyv-`aVxHS{Ur{ zfA>5wdBVXnXQEuwsyCxOhv$EAdVYOd=9dq}wvGoUB~2Yz_2y_Fr<}{-?^M;~njdi~ z9N==gq@S9a+T0!cLEqClx#ug-r5V#@HK$$^YB6w~hhXGD|K7^OSC8!OFDfW-<;s

sjFKQ=Tun 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 vnf_$MLtce%W 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 Yx)_n6=+$vwy`8$4I-@YU#K!safBmvn$p8QV diff --git a/companion/src/icon.rc b/companion/src/icon.rc deleted file mode 100644 index 8f9d9ca03..000000000 --- a/companion/src/icon.rc +++ /dev/null @@ -1 +0,0 @@ -IDI_ICON1 ICON DISCARDABLE "icon.ico" diff --git a/companion/src/icon.png b/companion/src/images/icon.png similarity index 100% rename from companion/src/icon.png rename to companion/src/images/icon.png diff --git a/companion/src/images/winicons/icon.rc b/companion/src/images/winicons/icon.rc new file mode 100644 index 000000000..298347189 --- /dev/null +++ b/companion/src/images/winicons/icon.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "opentx.ico" diff --git a/companion/src/images/winicons/opentx.ico b/companion/src/images/winicons/opentx.ico new file mode 100644 index 0000000000000000000000000000000000000000..903ad909883458dd3c9a0e67ca63d31b7b825801 GIT binary patch literal 491622 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 literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_16.ico b/companion/src/images/winicons/opentx_16.ico new file mode 100644 index 0000000000000000000000000000000000000000..9b138b9d11a2c2ecb3a35fd29667e317d3bebaed GIT binary patch literal 1150 zcmc&yJ8pwO5M2vngKSF%3q)awl<8d1TNJ4|N4NpFNk<(;Nu=aJNQjOm*Wd<|c?*LH zvL!1ig7tVav-5U7MyVP9wp+#TJM}nM%2!I=GdRSNF3zN4KKt5qfZspF{6CnT>+W_t zDvE;e_`cuu^Ty{d3^01!_BMQp^}V~UJLo;n>+&Bs@1xI!4M2w&?9tp8^*9%e)C5no zxaX=KcRVpf4|`Ns?7!$u)1>`=Pp8vK?=K8PS}vF89Y}4={mvNmk38&MfD6R_F*`KC zGh?&^+qQ?j>*AxA&im~1WoBq!Cow)V4CCTn7HUE6#wEvb2y?FIYvS*nR`!bcgC8_a z(@>u0lq3nkmc1edA2=Kinvch$X55GVah9g3X5`m(O;uItnCQV#6zQC@EHzt}rF)v{ u;p6`Ri$0EHt#8|wvMd|)=rag{Ay@jBJ4Fv)>Z30FYde$KZ)8sU{qqeZiL<)^ literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_20.ico b/companion/src/images/winicons/opentx_20.ico new file mode 100644 index 0000000000000000000000000000000000000000..bb4a484ad0ea2200063f12be186d8985ad04fa43 GIT binary patch literal 1742 zcmb`HOGuPa7>56m7T#iX&BXWfz>Nb@AoU8-#zZ!x}&fA7ivBc`+@c>`)A}Uc}h-`gZ*_l9H_6aM@>x) zYHMrZ^?FhFunu((>X4qE4($qKZ<0Kv3FQJ_3(#(m>qPv2IWIPw4Mw9;#YaR$KnSf( zlokbBhE4sqo6Q&)7(iQF8+<;W%C)Db zN9A2sR)&p@4FrQh6crW0Znvv@XmD^4eSLjsZ*LF#rKF@_cz76db92f=)<^bcX=w?Q zlap$XC~XhLE4SPotxwRbBD%@iGpnJu52< lX=!QdUG~Oeu^=NO0|^NUYOj8dHJMBjCtfFg-_!Es+7HqPg=YW& literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_24.ico b/companion/src/images/winicons/opentx_24.ico new file mode 100644 index 0000000000000000000000000000000000000000..d90107c1bccb69d77d06a3cb4f86699d2e5efe77 GIT binary patch literal 2462 zcmdUwzfYP$7{`wvK`AL|6I^#_BHGAe?k1feOl_%8dEc7{D+85$q zV%|HJiXAo1q6_b&?Lzz~8vCQs#vX2-zeYBjRgXW-%*>pQ={hq$8B9Dk5v`9sbvXl< z%SCHzYn0FDX=i80cQ1MYuk zePiKW(c>Mbul*<6;c%EDkqBWw;36kuV`CkAwOXw-H8myYO-@dd-|v_6;OB5S2)Uk^ zm>|s4V=ESm)M~Y;TCK|53=R%bAP|skeV)_ll(ya7UE1H@r$iz_KA+F@SzcbIqoX70 z@9#JHZnvA-?KX{%k4xM7`Z}$yuF6>82%k(QBjZzi#E8B1_4S$j+1XjD*XuG)osT`C zjE;^jbtn{)OtgoGhY5ETZFyg`JD}G14{Hwj@0FkAai)R* literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_256.ico b/companion/src/images/winicons/opentx_256.ico new file mode 100644 index 0000000000000000000000000000000000000000..40aabf00ec0b831d70fe832a99b22c83b0b39dcc GIT binary patch literal 270398 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 Rpap0FT7VXy1=4JR{{ya2l2-r# literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_30.ico b/companion/src/images/winicons/opentx_30.ico new file mode 100644 index 0000000000000000000000000000000000000000..8e2965dfd07abb7b3951642173f8ad90dacea564 GIT binary patch literal 3782 zcmc(iSxlT&6vsaX3KV256uLqb1}vna6lv)oZA^?YEGA$OD@G)N5)w?*1Yas)Nhwi8 zR6tpjMMGEuggyb`%>)`C(55X-fHvCYfvq$x2~9(f|Nou&hM7|PAYF$1=6-iO|9j3o z_s)l=IpA;qehuHjTA!z;?bI|a9H2=v0k-pV27S{WW>kau>n{|4gSqDfwW#?Ikmn3F z>8G9UfddC5H8oX{n3yO#cI?>bcfijJ( z*4EbK*s)`qZGMjVwABC_K`gMsNF4 z!^U^uCqSQyfIpz!ouCv@lQH4Am%+xm{=Y75ya(v-4}kGb2aezaz_nBZ?gz(hX!3b$ zy6&)72pH#|!MEUjP+_TaOuohZ5f8Tz2?^ar9I~7hk(BQ2&l>O zSC9-gYd#%a+6@F}0JW+t`>y7Y->hWSiism+r4%$#!r zo3*!=&pb0}pcUx*T50plJbxEFLD#{-K@0|i8dFqMWW6_*mzU+}(W9!}(b3V~2JdN} zANt5Uq6EAFc!$(k;F;P7?6sA@PEJmem6at;O-)i+St+BVqgLJf_wP$bM~75bS4(Ye zt#u9Re#nPC<`VA>#`PUQ`z-Z)gL(cbFyG6%zS4DZagpxsZmZUl9`f??%yUh!MIWiz z488=OfVwQd2GrE^jlWCmGh@~5>gsxuoVD*{)=ANPF`s&W0N(k$3nRdWUGwiBbz49e zCKPmi61*>1Vh+VfY;3H=#l@*{>FMbyEiEl_@7_Jt zKQl8UIXOA1ud%UFhKGm6&CN~CyLyvZm&MCjg z#>P}$wzajXebaThhyDHia^uDgHIH#hN=i~=PnQsiG*nC`lUf7q(gxo(d9HkXd}L^7NWF9B=jRJ;a9?;H zIy*bn9BKsw1jwaJm(-rv`pdYwySvM&Q>SEhc2=%kyCxG86GETa7ZVes;(PJpMYaB( zo*orX?sHjLnM_Sh$;ilvOioTpa&oeoLtEqH literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_32.ico b/companion/src/images/winicons/opentx_32.ico new file mode 100644 index 0000000000000000000000000000000000000000..c9768b74b612fbe4d67db70a0ef9b4abbe3c2a9b GIT binary patch literal 4286 zcmeHJ+e?&N6#qs|k7f~G20Q_TFo)y?%RLzCB|YHvU9M z8~8RxE*OU0FpR4V78y4gkmGsHx-aLBAcCVW;^8;69QgV9QFwT`10f+H*8JEwUuPM? zCeHB)ndZYX4`dx|ls!gwwk%IfOeFnTT3Y(n{yzKoXrhP5CvJR(vb@u@gFWUq7{~A@ zBqZqcw6L)7t^IlS(a2~w@rlPIhVB77o#7475wG%j zjpuEqzJtfN4AepC-HaadWB(%t;!t$6M~-`T2SGdqdc73q!?=yC|OVfPwleIqqG& zCvMKr-ri2Ft*zAD+)OPkEf)UO)m3V0Y7%){TN_12M*i>TG5b{aAL4w<@Mi=tni+aO z;=Xpn-`Ce?;XH1Ul9F=dCz1W(cSpsDJLj^-@i)&EKkD(4aYoZ?XX)+jJ&w|%OZqG6 zC_dC#aU%!$PQKBXFEks}wzjCaxLDRDB_(2m_smfrGrvJWK{PivN1L0QG(0>^v$M0( zb2&LVVq0BZEo=NY)%RjOFfbsxk&zLan3$lku`#hpPfwR~m6erISXh|&hhb-Dr^N^S z)zs98kBW*4(FF$w)AI5%O-)S^a#dMbDf-67Myjo?rR3yfu>-$)cLM?fC^R&bFv4eA zTAIX*xXa7SX@7rTeBiFpW5B$>zn{?CSy@@4Ltep+oap@cFN*w5PEJyGcDCpg|G~k5 z)mrC1?YXP>{j@oM L690V6ANPC(WNeV^ literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_36.ico b/companion/src/images/winicons/opentx_36.ico new file mode 100644 index 0000000000000000000000000000000000000000..bdad904ee3e7ae808c52f3291ea50f4b5e7d7cd2 GIT binary patch literal 5534 zcmeI0X-rgC6vu}h%9El6GPIqYu6+(F;Ta(m-PFW;78C2eg->1EO6AsFOs^#6@*tPYgSj}|Zkd=99ATBx%fBmigM@Y!>E z*mnltxZeZDjWPTh&}aIYaViF`T0F0Z>q;Hi4d{z*z!*`Bj?-7TpK3kuw14=`Zv)O7 z&Nr=zx_$ukQ!;Sx8_)YkkCTrvncIvPwGieFb6(rHFD}i*t)>bQo~f zp`Sgchx>LR;QmD&g!7)`Yi-oU^`IR513g||UZPpMcC9>m^vKx1u3WhyadC0#J*s01=JD?8iAf~j2Z2?$GB=T{F9WFByDYN(%#-Kn>TNkLx&E@^XJbE zJ>1`WdU~X_wN*MhJEgX^RzgBTtbNiqp8@7DeZjd+KfDh(<~xACVLfx3c06;uV!z;d z$8mf^$P_n6j~N9%8k0ZI&lZ{X5IRAQc_$ZLHuKKL6V~w|attg4EgF*VotOJ6Y%QJHw`t?aYy8nLd5GOq(`MA|oS(b^KPg z<8w%`ZBC+&zhBH|v-tV>>2aL&golSqb91wtJ$qIrCnx3j@#89nK0ZFmJ|iPTjvYHD zTefU*?86wZzP?^~uDx{Wl3c%jUBTZ4)Ut5lLOFBhjA~1Lixw@CQ>RYJ`Sa%`D=W)I zPheo6baZs69Ohi+8g%a5IW^~+nwpe7*92aB_wIG^5y#xRb*p-R>>&$&2%&u&~fY5B1)@eOoSGyeKItDXNd0oE*7#@19(^a6tkB0%XaO zCGzs+OF4P+q*PT^Nm*H$%$_}4^+g|Yt>neC0prEEu^s)fbm>y{tvhz?khHWkxpCu$ zdgeNtpP%odr?j+G^))&=YV^VQ(nojh+>u$cW=VE-wmf+7Kz$SA!F$FaJw09dOaEr$ zSp0^Gi3y=ksfXV}d#>#R0|PQXJ}!Iq?2(5LAF8#FHo#&-X{4aBu`yxn_@4R4-(9zE z-BS1T7q5N$_DM`kj1ix~!9kTzTF=3Q2W8u~ZEEkCKYzaJD>pY+>A8IQvdYcM%1Wbs zK|z7Canv(&=1e(#`n2-l>eZ_yIXPLjZ{M!Q-@kvqvS*xm9XN16f`Hf`FZ{LlE_ym?dkW6hd1s_o*%i-ozub~=WAeSN|`!JU7o zhs>QjS9sRow^vtJtGvMSvm(=p6{XObU`+FT+^#3)L2mS)(q#a%W literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_40.ico b/companion/src/images/winicons/opentx_40.ico new file mode 100644 index 0000000000000000000000000000000000000000..4b2fd415a9d3b65c2fd0bf3c57e0a7443841ffa6 GIT binary patch literal 6782 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 literal 0 HcmV?d00001 diff --git a/companion/src/images/winicons/opentx_64.ico b/companion/src/images/winicons/opentx_64.ico new file mode 100644 index 0000000000000000000000000000000000000000..58161533e5b9d928c46105cab52679cae2d5946e GIT binary patch literal 16958 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 "${_TEMPFILE}"' - !else - ; Posix - sh - !system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME}" > "${_TEMPFILE}"; fi' - !endif - !include '${_TEMPFILE}' - !delfile '${_TEMPFILE}' - !undef _TEMPFILE -!macroend -!define !defineifexist "!insertmacro !defineifexist" - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "@CMAKE_CURRENT_SOURCE_DIR@\..\targets\windows\license.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - - ;Start Menu Folder Page Configuration - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenTX" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - - !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder - - !insertmacro MUI_PAGE_INSTFILES - - # These indented statements modify settings for MUI_PAGE_FINISH - !define MUI_FINISHPAGE_NOAUTOCLOSE - !define MUI_FINISHPAGE_RUN - !define MUI_FINISHPAGE_RUN_CHECKED - !define MUI_FINISHPAGE_RUN_TEXT "Launch OpenTX Simulator" - !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" - !insertmacro MUI_PAGE_FINISH - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - !insertmacro MUI_LANGUAGE "French" - -;-------------------------------- -;Installer Sections - -Section "OpenTX Simulator" SecDummy - - SetOutPath "$INSTDIR" - - File "@CMAKE_CURRENT_SOURCE_DIR@\..\targets\windows\license.txt" - File "Release\simulator.exe" - File "Release\opentx-*-simulator.dll" - - ${!defineifexist} PTHREAD_WINDIR "C:\Programs\pthreads\Pre-built.2\lib\pthreadVC2.dll" - !ifdef PTHREAD_WINDIR - File "C:\Programs\pthreads\Pre-built.2\lib\pthreadVC2.dll" - !else - File "@SYSDIR@\system32\pthreadVC2.dll" - !endif - File "C:\Programs\xerces-vc\bin\xerces-c_3_1.dll" - File "C:\Programs\SDL\lib\SDL.dll" - File "@SYSDIR@\msvcp100.dll" - File "@SYSDIR@\msvcr100.dll" - File "@QT_BINARY_DIR@\QtCore4.dll" - File "@QT_BINARY_DIR@\QtGui4.dll" - File "@QT_BINARY_DIR@\QtNetwork4.dll" - File "@QT_BINARY_DIR@\Phonon4.dll" - File "@QT_BINARY_DIR@\QtXml4.dll" - - CreateDirectory "$INSTDIR\phonon_backend" - SetOutPath "$INSTDIR\phonon_backend" - File "@QT_BINARY_DIR@\..\plugins\phonon_backend\Phonon_ds94.dll" - - CreateDirectory "$INSTDIR\lang" - SetOutPath "$INSTDIR\lang" - File "src\*.qm" - - SetOutPath "$INSTDIR" - ;Store installation folder - WriteRegStr HKCU "Software\OpenTX" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - ;Registry information for add/remove programs - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayName" "OpenTX Simulator" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayIcon" "$\"$INSTDIR\simulator.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "Publisher" "OpenTX" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "URLInfoAbout" "http://www.open-tx.org" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - CreateDirectory "$SMPROGRAMS\$StartMenuFolder" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\simulator.lnk" "$INSTDIR\simulator.exe" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_END - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "Simulator for OpenTX" - LangString DESC_SecDummy ${LANG_FRENCH} "Simulateur pour OpenTX" - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\license.txt" - Delete "$INSTDIR\simulator.exe" - Delete "$INSTDIR\pthreadVC2.dll" - Delete "$INSTDIR\xerces-c_3_1.dll" - Delete "$INSTDIR\SDL.dll" - Delete "$INSTDIR\msvcp100.dll" - Delete "$INSTDIR\msvcr100.dll" - Delete "$INSTDIR\QtCore4.dll" - Delete "$INSTDIR\QtGui4.dll" - Delete "$INSTDIR\QtXml4.dll" - Delete "$INSTDIR\QtNetwork4.dll" - Delete "$INSTDIR\Phonon4.dll" - Delete "$INSTDIR\Uninstall.exe" - Delete "$INSTDIR\lang\*.*" - Delete "$INSTDIR\opentx-*-simulator.dll" - - RMDir "$INSTDIR\lang" - RMDir "$INSTDIR" - - !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder - - Delete "$SMPROGRAMS\$StartMenuFolder\simulator.lnk" - Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" - RMDir "$SMPROGRAMS\$StartMenuFolder" - - DeleteRegKey /ifempty HKCU "Software\OpenTX" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" - -SectionEnd - -Function LaunchLink - ExecShell "" "$INSTDIR\simulator.exe" -FunctionEnd diff --git a/companion/targets/windows/simulator-vs.nsi.in b/companion/targets/windows/simulator-vs.nsi.in deleted file mode 100644 index 1b479e0c3..000000000 --- a/companion/targets/windows/simulator-vs.nsi.in +++ /dev/null @@ -1,204 +0,0 @@ -;NSIS Modern User Interface -;Start Menu Folder Selection Example Script -;Written by Joost Verburg - -;-------------------------------- -;Include Modern UI - - !include "MUI2.nsh" - -;-------------------------------- -;General - - ;Name and file - Name "OpenTX Simulator" - OutFile "simulator-windows-@VERSION@.exe" - - ;Default installation folder - InstallDir "$PROGRAMFILES\OpenTX" - - ;Get installation folder from registry if available - InstallDirRegKey HKCU "Software\OpenTX" "" - - ;Compressor options - SetCompressor /FINAL /SOLID lzma - SetCompressorDictSize 64 - - ;Request application privileges for Windows Vista - RequestExecutionLevel admin - -;-------------------------------- -;Variables - - Var StartMenuFolder - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - -;-------------------------------- -;File Exists Macro - -; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation -!macro !defineifexist _VAR_NAME _FILE_NAME - !tempfile _TEMPFILE - !ifdef NSIS_WIN32_MAKENSIS - ; Windows - cmd.exe - !system 'if exist "${_FILE_NAME}" echo !define ${_VAR_NAME} > "${_TEMPFILE}"' - !else - ; Posix - sh - !system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME}" > "${_TEMPFILE}"; fi' - !endif - !include '${_TEMPFILE}' - !delfile '${_TEMPFILE}' - !undef _TEMPFILE -!macroend -!define !defineifexist "!insertmacro !defineifexist" - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "@CMAKE_CURRENT_SOURCE_DIR@\..\targets\windows\license.txt" - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - - ;Start Menu Folder Page Configuration - !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" - !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenTX" - !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" - - !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder - - !insertmacro MUI_PAGE_INSTFILES - - # These indented statements modify settings for MUI_PAGE_FINISH - !define MUI_FINISHPAGE_NOAUTOCLOSE - !define MUI_FINISHPAGE_RUN - !define MUI_FINISHPAGE_RUN_CHECKED - !define MUI_FINISHPAGE_RUN_TEXT "Launch OpenTX Simulator" - !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" - !insertmacro MUI_PAGE_FINISH - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - !insertmacro MUI_LANGUAGE "French" - -;-------------------------------- -;Installer Sections - -Section "OpenTX Simulator" SecDummy - - SetOutPath "$INSTDIR" - - File "@CMAKE_CURRENT_SOURCE_DIR@\..\targets\windows\license.txt" - File "Release\simulator.exe" - File "Release\opentx-*-simulator.dll" - - ${!defineifexist} PTHREAD_WINDIR "C:\Programs\pthreads\Pre-built.2\lib\pthreadVC2.dll" - !ifdef PTHREAD_WINDIR - File "C:\Programs\pthreads\Pre-built.2\lib\pthreadVC2.dll" - !else - File "@SYSDIR@\system32\pthreadVC2.dll" - !endif - File "C:\Programs\xerces-vc\bin\xerces-c_3_1.dll" - File "C:\Programs\SDL\lib\SDL.dll" - File "@SYSDIR@\msvcp100.dll" - File "@SYSDIR@\msvcr100.dll" - File "@QT_BINARY_DIR@\QtCore4.dll" - File "@QT_BINARY_DIR@\QtGui4.dll" - File "@QT_BINARY_DIR@\QtNetwork4.dll" - File "@QT_BINARY_DIR@\Phonon4.dll" - File "@QT_BINARY_DIR@\QtXml4.dll" - - CreateDirectory "$INSTDIR\phonon_backend" - SetOutPath "$INSTDIR\phonon_backend" - File "@QT_BINARY_DIR@\..\plugins\phonon_backend\Phonon_ds94.dll" - - CreateDirectory "$INSTDIR\lang" - SetOutPath "$INSTDIR\lang" - File "src\*.qm" - - SetOutPath "$INSTDIR" - ;Store installation folder - WriteRegStr HKCU "Software\OpenTX" "" $INSTDIR - - ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" - - ;Registry information for add/remove programs - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayName" "OpenTX Simulator" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "UninstallString" "$\"$INSTDIR\Uninstall.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "DisplayIcon" "$\"$INSTDIR\simulator.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "Publisher" "OpenTX" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" "URLInfoAbout" "http://www.open-tx.org" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ImageMaker" "QuietUninstallString" "$\"$INSTDIR\Uninstall.exe$\" /S" - - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - - ;Create shortcuts - CreateDirectory "$SMPROGRAMS\$StartMenuFolder" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\simulator.lnk" "$INSTDIR\simulator.exe" - CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" - - !insertmacro MUI_STARTMENU_WRITE_END - -SectionEnd - -;-------------------------------- -;Descriptions - - ;Language strings - LangString DESC_SecDummy ${LANG_ENGLISH} "Simulator for OpenTX" - LangString DESC_SecDummy ${LANG_FRENCH} "Simulateur pour OpenTX" - - ;Assign language strings to sections - !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) - !insertmacro MUI_FUNCTION_DESCRIPTION_END - -;-------------------------------- -;Uninstaller Section - -Section "Uninstall" - - ;ADD YOUR OWN FILES HERE... - - Delete "$INSTDIR\license.txt" - Delete "$INSTDIR\simulator.exe" - Delete "$INSTDIR\pthreadVC2.dll" - Delete "$INSTDIR\xerces-c_3_1.dll" - Delete "$INSTDIR\SDL.dll" - Delete "$INSTDIR\msvcp100.dll" - Delete "$INSTDIR\msvcr100.dll" - Delete "$INSTDIR\QtCore4.dll" - Delete "$INSTDIR\QtGui4.dll" - Delete "$INSTDIR\QtXml4.dll" - Delete "$INSTDIR\QtNetwork4.dll" - Delete "$INSTDIR\Phonon4.dll" - Delete "$INSTDIR\Uninstall.exe" - Delete "$INSTDIR\lang\*.*" - Delete "$INSTDIR\opentx-*-simulator.dll" - - RMDir "$INSTDIR\lang" - RMDir "$INSTDIR" - - !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder - - Delete "$SMPROGRAMS\$StartMenuFolder\simulator.lnk" - Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" - RMDir "$SMPROGRAMS\$StartMenuFolder" - - DeleteRegKey /ifempty HKCU "Software\OpenTX" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTX" - -SectionEnd - -Function LaunchLink - ExecShell "" "$INSTDIR\simulator.exe" -FunctionEnd