From d73e9eb1cdc5b936a4b1bec6b0c56785a75e02b9 Mon Sep 17 00:00:00 2001 From: Emily Mabrey Date: Thu, 26 Aug 2021 02:54:16 -0400 Subject: [PATCH] Innosetup installer updates Rename usage of outdated Innosetup functions Configure CMake to use the same build type for Innosetup target Use Tenacity logos Update readme information displayed post-install Update license information displayed pre-install Fix installer generation Cleanup innosetup configuration Signed-off-by: Emily Mabrey --- .../cmake-modules/AudacityInnoSetup.cmake | 3 +- win/InnoSetupLanguages/README.txt | 3 + .../BuildInnoSetupInstaller.cmake | 75 ++++++++++--- win/Inno_Setup_Wizard/tenacity.iss.in | 101 ++++++++---------- .../tenacity_InnoWizard_InfoBefore.rtf | Bin 1687 -> 928 bytes win/README.rtf | Bin 0 -> 4146 bytes win/{darkaudacity.ico => darktenacity.ico} | Bin 7 files changed, 111 insertions(+), 71 deletions(-) create mode 100644 win/InnoSetupLanguages/README.txt create mode 100644 win/README.rtf rename win/{darkaudacity.ico => darktenacity.ico} (100%) diff --git a/cmake-proxies/cmake-modules/AudacityInnoSetup.cmake b/cmake-proxies/cmake-modules/AudacityInnoSetup.cmake index 775d51cfb..6a757680d 100644 --- a/cmake-proxies/cmake-modules/AudacityInnoSetup.cmake +++ b/cmake-proxies/cmake-modules/AudacityInnoSetup.cmake @@ -23,11 +23,12 @@ if( INNO_SETUP_COMPILER ) -DOUTPUT_DIR=${TEMP_PACKAGE_PATH} -DINNO_SETUP_COMPILER=${INNO_SETUP_COMPILER} -DEMBED_MANUAL=${${_OPT}package_manual} - -DBUILDING_64_BIT=${IS_64BIT} + -DIS_64_BIT=${IS_64BIT} -DSIGN=${${_OPT}perform_codesign} -DWINDOWS_CERTIFICATE=${WINDOWS_CERTIFICATE} -D WINDOWS_CERTIFICATE_PASSWORD=${WINDOWS_CERTIFICATE_PASSWORD} -P "${CMAKE_SOURCE_DIR}/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake" + -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -parallel ${CMAKE_BUILD_PARALLEL_LEVEL} VERBATIM ) diff --git a/win/InnoSetupLanguages/README.txt b/win/InnoSetupLanguages/README.txt new file mode 100644 index 000000000..6b9d991fe --- /dev/null +++ b/win/InnoSetupLanguages/README.txt @@ -0,0 +1,3 @@ +If you manually add isl language files to this directory then the innosetup installer creation process will be able to find them. + +Note that it ignores any file within this directory which is not *.isl diff --git a/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake b/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake index 1a3aa0598..3dce6e3d2 100644 --- a/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake +++ b/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake @@ -4,13 +4,16 @@ # SOURCE_DIR - should be set to CMAKE_SOURCE_DIR by teh caller # OUTPUT_DIR - directory, where installer will be built # INNO_SETUP_COMPILER - InnoSetup compiler executable -# BUILDING_64_BIT - Flag, that indicates that we are building a 64-bit installer +# IS_64_BIT - Flag, that indicates that we are building a 64-bit installer # EMBED_MANUAL - embed a fresh copy of manual # SIGN - sign the installer # WINDOWS_CERTIFICATE - path to PFX file. If not present, env:WINDOWS_CERTIFICATE will be used # WINDOWS_CERTIFICATE_PASSWORD - password for the PFX file. If not present, env:WINDOWS_CERTIFICATE_PASSWORD will be used -if( BUILDING_64_BIT ) +# Allow if statements to use the new IN_LIST operator (compatibility override for CMake <3.3) +cmake_policy( SET CMP0057 NEW ) + +if( IS_64_BIT ) set( INSTALLER_SUFFIX "x64" ) set( INSTALLER_X64_MODE "ArchitecturesInstallIn64BitMode=x64") else() @@ -48,32 +51,76 @@ configure_file("${OUTPUT_DIR}/tenacity.iss.in" "${OUTPUT_DIR}/tenacity.iss") file(COPY "${SOURCE_DIR}/presets" DESTINATION "${OUTPUT_DIR}/Additional") -file(COPY +file(COPY "${SOURCE_DIR}/LICENSE.txt" - "${SOURCE_DIR}/README.md" + "${SOURCE_DIR}/win/README.rtf" "${SOURCE_DIR}/win/tenacity.ico" - DESTINATION + "${SOURCE_DIR}/win/darktenacity.ico" + DESTINATION "${OUTPUT_DIR}/Additional" ) +if( DEFINED CMAKE_BUILD_TYPE ) + if( EXISTS "${BUILD_DIR}/bin/${CMAKE_BUILD_TYPE}" ) + # Use CMAKE_BUILD_TYPE value if defined and previously built + set( INNOSETUP_BUILD_CONFIGURATIONS "${CMAKE_BUILD_TYPE};" ) + else() + message( FATAL_ERROR "You defined a value for CMAKE_BUILD_TYPE which has not already been built, please build it and try again" ) + endif() +elseif( DEFINED CMAKE_INSTALL_CONFIG_NAME ) + if( EXISTS "${BUILD_DIR}/bin/${CMAKE_INSTALL_CONFIG_NAME}" ) + # Use install --config value if defined and previously built + set( INNOSETUP_BUILD_CONFIGURATIONS "${CMAKE_INSTALL_CONFIG_NAME};" ) + else() + message( FATAL_ERROR "You defined a value for CMAKE_INSTALL_CONFIG_NAME which has not already been built, please build it and try again" ) + endif() +else() + # These are listed in order of preference in case more than one of them are built + # It must include all four configurations for this to work correctly on multi-config + set( INNOSETUP_BUILD_CONFIGURATIONS "MinSizeRel;Release;RelWithDebInfo;Debug" ) + message( STATUS "You did not define a build type manually so we will attempt to find build types in this order: ${INNOSETUP_BUILD_CONFIGURATIONS}" ) +endif() + # "Install" prebuilt package -execute_process( - COMMAND - ${CMAKE_COMMAND} - --install ${BUILD_DIR} - --prefix "${OUTPUT_DIR}/Package" -) +set( VALID_BUILD_TYPE_FOUND FALSE ) +foreach( config ${INNOSETUP_BUILD_CONFIGURATIONS} ) + file( GLOB VALID_BUILD + "${BUILD_DIR}/bin/${config}/Tenacity" "${BUILD_DIR}/bin/${config}/Tenacity.*" + "${BUILD_DIR}/bin/${config}/tenacity" "${BUILD_DIR}/bin/${config}/tenacity.*" + ) + if( VALID_BUILD ) + message ( STATUS "Using build type ${config} to create innosetup installer" ) + execute_process( + COMMAND + ${CMAKE_COMMAND} + --install ${BUILD_DIR} + --prefix "${OUTPUT_DIR}/Package" + --config ${config} + # When we upgrade to CMake min version 3.19 we can use this + # COMMAND_ERROR_IS_FATAL ANY + ) + set( VALID_BUILD_TYPE_FOUND TRUE FORCE ) + set( VALID_BUILD_TYPE ${config} ) + break() + endif() +endforeach() -# Build the installer +if( NOT VALID_BUILD_TYPE_FOUND ) + message( FATAL_ERROR "You must build the project successfully before building the innosetup target" ) +endif() execute_process( COMMAND - ${INNO_SETUP_COMPILER} /Sbyparam=$p "tenacity.iss" + ${INNO_SETUP_COMPILER} /Sbyparam=$p "tenacity.iss" /Qp WORKING_DIRECTORY ${OUTPUT_DIR} + # When we upgrade to CMake min version 3.19 we can use this + # COMMAND_ERROR_IS_FATAL ANY ) -# Emulate CPack behavior +# If we enable COMMAND_ERROR_IS_FATAL then if we reach here we are sure we successfully created the installer +# message ( STATUS "Successfully created innosetup installer using build type ${VALID_BUILD_TYPE}" ) +# Emulate CPack behavior file( COPY "${OUTPUT_DIR}/Output/" DESTINATION "${BUILD_DIR}/package" ) diff --git a/win/Inno_Setup_Wizard/tenacity.iss.in b/win/Inno_Setup_Wizard/tenacity.iss.in index f4cc6f5e3..c471f558f 100644 --- a/win/Inno_Setup_Wizard/tenacity.iss.in +++ b/win/Inno_Setup_Wizard/tenacity.iss.in @@ -3,81 +3,71 @@ ; License: GPL v2. See License.txt. ; ; tenacity.iss -; Vaughan Johnson, Leland Lucius, Martyn Shaw, Richard Ash, & others -; -; This requires that the ISS Preprocessor be installed - -#define AppExe "Package\tenacity.exe" +#define AppExe "Package\tenacity.exe" #define AppMajor "" #define AppMinor "" #define AppRev "" #define AppBuild "" -#define FullVersion ParseVersion(AppExe, AppMajor, AppMinor, AppRev, AppBuild) +#define FullVersion GetVersionComponents(AppExe, AppMajor, AppMinor, AppRev, AppBuild) #define AppVersion Str(AppMajor) + "." + Str(AppMinor) + "." + Str(AppRev) #define AppName GetStringFileInfo(AppExe, PRODUCT_NAME) [UninstallRun] ; Uninstall prior installations. -Filename: "{app}\unins*.*"; +Filename: "{app}\unins*.*"; RunOnceId: "UninstallPrior" [Setup] -; compiler-related directives -OutputBaseFilename=tenacity-win-{#AppVersion}-@INSTALLER_SUFFIX@ - -; Use 100% images by default +; Icons +SetupIconFile="Additional\tenacity.ico" +UninstallDisplayIcon="{app}\tenacity.exe" WizardImageFile=".\tenacity_InnoWizardImage_100.bmp" WizardSmallImageFile=".\tenacity_InnoWizardSmallImage_100.bmp" -SolidCompression=yes - -; installer-related directives -; From Inno 5.5.7, Inno defaults to disabling the Welcome page as recommended -; by Microsoft's desktop applications guideline, but we don't want to do that. -DisableWelcomePage=no - +; App/Version information AppName={#AppName} AppVerName=Tenacity {#AppVersion} -; Specify AppVersion as well, so it appears in the Add/Remove Programs entry. AppVersion={#AppVersion} AppPublisher="Tenacity Team" AppPublisherURL=https://tenacityaudio.org/ AppSupportURL=https://tenacityaudio.org/ AppUpdatesURL=https://tenacityaudio.org/ -ChangesAssociations=yes -@INSTALLER_X64_MODE@ - -DefaultDirName={commonpf}\Tenacity - VersionInfoProductName={#AppName} VersionInfoProductTextVersion={#GetFileProductVersion(AppExe)} VersionInfoDescription={#AppName + " " + AppVersion + " Setup"} -VersionInfoVersion={#GetFileVersion(AppExe)} +VersionInfoVersion={#GetVersionNumbersString(AppExe)} VersionInfoCopyright={#GetFileCopyright(AppExe)} -; Don't disable the "Select Destination Location" wizard, even if +; Default install location +DefaultDirName={commonpf}\Tenacity + +; Tells explorer to refresh file assocations to pickup any changes +ChangesAssociations=yes + +; Does package->compress instead of compress->package +SolidCompression=yes + +; Don't disable the "Select Destination Location" wizard, even if ; Tenacity is already installed. DisableDirPage=no ; Always warn if dir exists, because we'll overwrite previous Tenacity. DirExistsWarning=yes DisableProgramGroupPage=yes -UninstallDisplayIcon="{app}\tenacity.exe" -; No longer force them to accept the license, just display it. LicenseFile=..\LICENSE.txt +; Always show welcome page +DisableWelcomePage=no + +; Display license information before install InfoBeforeFile=".\tenacity_InnoWizard_InfoBefore.rtf" -InfoAfterFile=Additional\README.md -; We no longer produce new ANSI builds. -; As we use Inno Setup (u), the Unicode version, to build this script, -; the MinVersion will automatically be set to what we need. -; We no longer explicitly set it. -; MinVersion=4.0,5.0 - -; cosmetic-related directives -SetupIconFile="Additional\tenacity.ico" +; Display README after install +InfoAfterFile=Additional\README.rtf +; Directives using information passed by CMake +@INSTALLER_X64_MODE@ @SIGN_TOOL@ +OutputBaseFilename=tenacity-win-{#AppVersion}-@INSTALLER_SUFFIX@ [INI] Filename: "{app}\FirstTime.ini"; Section: "FromInno"; Key: "ResetPrefs"; String: "1"; Tasks: resetPrefs; @@ -93,8 +83,8 @@ Name: resetPrefs; Description: "{cm:ResetPrefs}"; Flags: unchecked ; Prime the first time .ini file so the permissions can be set Source: ".\FirstTimeModel.ini"; DestDir: "{app}"; DestName: "FirstTime.ini"; Permissions: users-modify -; Don't display in separate window, rather as InfoAfterFile. Source: "..\README.md"; DestDir: "{app}"; Flags: ignoreversion isreadme -Source: "Additional\README.md"; DestDir: "{app}"; Flags: ignoreversion +; Manually create RTF version of README +Source: "Additional\README.rtf"; DestDir: "{app}"; Flags: ignoreversion Source: "Additional\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion Source: "{#AppExe}"; DestDir: "{app}"; Flags: ignoreversion @@ -150,7 +140,7 @@ end; procedure InitializeWizard; begin { If using larger scaling, load the correct size of images } - if GetScalingFactor > 100 then + if GetScalingFactor > 100 then begin LoadEmbededScaledBitmap(WizardForm.WizardBitmapImage, 'tenacity_InnoWizardImage'); LoadEmbededScaledBitmap(WizardForm.WizardBitmapImage2, 'tenacity_InnoWizardImage'); @@ -163,32 +153,31 @@ Name: "{commonprograms}\Tenacity"; Filename: "{app}\tenacity.exe" Name: "{commondesktop}\Tenacity"; Filename: "{app}\tenacity.exe"; Tasks: desktopicon [InstallDelete] -; Get rid of Tenacity 1.0.0 stuff that's no longer used. -Type: files; Name: "{app}\tenacity-help.htb" -Type: files; Name: "{app}\tenacity-1.2-help.htb" -; Get rid of previous versions of MSVC runtimes. +; Get rid of previous versions of MSVC runtimes +; Currently MSVC runtime versions 8, 9, 10, 11, 12, 13 Type: files; Name: "{app}\Microsoft.VC80.CRT.manifest" -Type: files; Name: "{app}\Microsoft.VC90.CRT.manifest" Type: files; Name: "{app}\msvcp80.dll" Type: files; Name: "{app}\msvcr80.dll" +Type: files; Name: "{app}\Microsoft.VC90.CRT.manifest" Type: files; Name: "{app}\msvcp90.dll" Type: files; Name: "{app}\msvcr90.dll" +Type: files; Name: "{app}\Microsoft.VC100.CRT.manifest" +Type: files; Name: "{app}\msvcp100.dll" +Type: files; Name: "{app}\msvcr100.dll" +Type: files; Name: "{app}\Microsoft.VC110.CRT.manifest" +Type: files; Name: "{app}\msvcp110.dll" +Type: files; Name: "{app}\msvcr110.dll" +Type: files; Name: "{app}\Microsoft.VC120.CRT.manifest" Type: files; Name: "{app}\msvcp120.dll" Type: files; Name: "{app}\msvcr120.dll" +Type: files; Name: "{app}\Microsoft.VC130.CRT.manifest" +Type: files; Name: "{app}\msvcp130.dll" +Type: files; Name: "{app}\msvcr130.dll" ; Get rid of previous help folder. Type: filesandordirs; Name: "{app}\help" -; Don't want to do this because user may have stored their own. -; Type: filesandordirs; Name: "{app}\vst" - -; We've switched from a folder in the start menu to just the Tenacity.exe at the top level. -; Get rid of 1.0.0 folder and its icons. -Type: files; Name: "{commonprograms}\Tenacity\tenacity.exe" -Type: files; Name: "{commonprograms}\Tenacity\unins000.exe" -Type: dirifempty; Name: "{commonprograms}\Tenacity" - ;Get rid of previous uninstall item Type: files; Name: "{app}\unins*.*" @@ -217,7 +206,7 @@ Type: files; Name: "{app}\Plug-Ins\gverb_1216.dll" Type: files; Name: "{app}\Plug-Ins\crossfadein.ny" Type: files; Name: "{app}\Plug-Ins\crossfadeout.ny" Type: files; Name: "{app}\Plug-Ins\clicktrack.ny" - + [Registry] ; No longer allow user to choose whether to associate AUP file type with Tenacity. ; Leaving this one commented out example of the old way. @@ -248,7 +237,7 @@ Filename: "{app}\tenacity.exe"; Description: "{cm:LaunchProgram,Tenacity}"; Flag ; http://www.jrsoftware.org/files/istrans/ ; ; Set this to the base of the unofficial Inno Setup translations -#define UrlBase "http://raw.github.com/jrsoftware/issrc/master/Files/Languages/Unofficial/" +#define UrlBase "https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Unofficial/" ; This macro will use the Windows PowerShell to download the given translation into ; the Inno Setup Languages folder if it hasn't already been downloaded. diff --git a/win/Inno_Setup_Wizard/tenacity_InnoWizard_InfoBefore.rtf b/win/Inno_Setup_Wizard/tenacity_InnoWizard_InfoBefore.rtf index 14cd446c76207edd91b1ce5bc2dfb849184bd58f..21bf2a6e08025265188e050bb3bd5df6de4300e4 100644 GIT binary patch delta 373 zcmYMu%}T>S5C?GMM}@#1yeI{gu^xmT(xeomJ(PM9p`cj3%_Yfh+Ql?mb~hCXc?Zi1 zf+t_a$M9|37+dEsm-+bp-^u6x>#3WGoX29m2=(gZ#v!ZZ{E@f?wsFcbCPOVG-1B(G zXxE3p_k1tt`@NvVC1=l1Jfl6#;{b?@i%?RGF!3=_cK3m0Va)XlUiABbk-z#LnPaE9 zeLFD&XK2dpR$C1^9sRc!=9CLh$Y~48vcM#zQl+}UJjFN(%$L)gtUr35SK3-j6SMo)`aW3@v>Vf=3`IqSlJvj k4ljRy4sD04NaT8B*+l;%dkW(kt)mg68fOjSmc-rq0aA4CzBJIP3K$ZXtm}C{0r8q@ig^1A?GkNox_Uw9&;IWA@)Wk}svi z1{)(w)@bI;nKQE>){7CL+R3z3Z9OW+1z}u>Jg$oBdXyg@ulIt-(}D=2y)PARaw1$O zog<>P&jk_Hlv>Aq4qvE}rIlxWf3P5xQO4o}I3t#`oYa3ATWmIm9b3f8mMLvqs2X1YUVOh<^bP(bVFxUDq5=Lt7}@pk30A? zfNNP<6FtH`A~KyDz~#;F;Y8~2GDtp+pK==kU{cBV+me;o@WVssdwj2$b;={LSiYcO!l~8J7|bo1ZOF*7 ztnYg?%h605%{O$xxpD@oDX*RY>DdodC!b{Y3fXo{_h`E-cBFhS7O+yG**D@vG~N|5 z);tj;HEtU$iP2fq(7|#kVInK89gnp?-4GZhuou#X>Oj?NsAh;aLqVS(Q)M34>}6Bm zs5eoh+v$rp8^!KODuV|TprLaJ4mIzSu&JH{YR(x=)c`8fG~8B_DnJ4_3suS-k8QB6 zao8eKS1P1Vh*G3VMX{nYqk%f~j{cYwf?KYA^w$QD?&IAYqhs?=v;XK)OCA|uD`5j* z7XUtJ92l`5m0j0mwGK)3D`#$K6g%1+>Q)^US)MrDPTve6VuhjDL0tqBk?mF6t$@~G zRv-v|6dYdOPPPNW;Q*Iu!YQ~7CB9w@4&LFT_q%W+&22PyQ_i5AC(svB8+Yqzb`fXR zQqS-UQxZWbWc&pyxXf{dG)=SE^#4X$H^u2_gVwR+>j64|nWQNWDdCE%Hci8Z>j0kt z|2mI@Xk(2NCf!G&#kNi+n9w@Abm?h{R-0~P#L*(piBrX=kGM8L`4Ji>gZ|(z8`WEP diff --git a/win/README.rtf b/win/README.rtf new file mode 100644 index 0000000000000000000000000000000000000000..4efe5a368929474ccf2ef9750856a649f82b33ad GIT binary patch literal 4146 zcmc&%TTk0a7~SVe{STk|(uLQy44tFb*!W*N`8GvlNd;=k{i zaZF%=5OynVMM)gy@?Fk3-^oR6Tt0}IvLgIS%h_PKGmJBy=lxjeN~F3dnY)N{t(;3F z-t^<#=z^&@FU|L1oTqbUEO&j{XHq0ayt~ArL7dyAu=bumW82+lj77o?b3!XR;YQ@) zu+fdx>w7MrKDmffEww>p^e#3$>&G+0x$4J>toU$e=UrIyDxPuW&((&GMLOr%uup@2 zuiqQ&_FoS!65r*CPV&9k)=-JA)eRe9IyS@vca2ve9ny$YKAmX z4m*4uONOWZXhc)4SSnoYYw&z`7Ym4lC8mfoTX&uAR+dvyNhi9_u=Jc*l?hEe6Fxkq zGBP~XCgX;3d~k-a^wM_d50-v8>CnN^X*3q9`Vp3DH^(|%hN7t%+1ff@*d86aaH~J! zoODiDN63cDno3<(k{LpqhWIbI%r4?raV|5Vth@O9ZSwJWe0cObJ)1jM+P6`J2t!Ve zv!bWXEP6(lzRNN*RstNAj8mkG7i7D)T6~FrZFwjJi!vk}RilhAxJ1wyB{i`SSBEmO z-~bZMjIK%_@IgSr|h}5^_>64AE$whbcYd@C4|ISBoQc203kHN7dPUtw)6#>Kv zn&J_-sy*TnDYx{(a3%>wUkKwWCSUq{rBJ-N{H`-U{wM)Iis-QLZ^FqzUl>iSaii$Z+qhU7@j&iA) zTit4_GQ{;@A`@B7x&S~pxHNhp!ojQk0g7KwrX3o89d<%D_fDzA9>3+m!%tEpO4n9i zr~t>L64K#Hvh82Vv#4UI+EM+z64rHmGq7S(ySY{!ns6hp;l5pNn?fp908*tW`4%C4 z1mD_#m_gYLGc{ROlxX-YTymYHP82*K;lW(@Qa}mq6?e4BliZ)a5RA@wooL8R$L9~t z0_~Y6eOqy_1d5rJ8gAXksn)V-B6KFNq%WT*KT}NB78C>^t(f5nnz9B^z-WVYWcV=G z8W~I)f{%uDHm||p3|HX_z~?WX0*GFGE`TVH5HFMePHyg1oAvd#MF%nccJ1bt!F~Fs zD@q~9IfRu8Z8)mXaMMp6{P=364Al#@@=qZT2rYm66NKmyx;ukBR7npr_)3D;Z!lde zZll3)Fxprkni#QQsn>le@Uom^0#d0mM@?0{DBM$4NX zZW6?wm0KokT7g7b*=Tn(+??M&tcejxh4G1~$4$hv=Z!$Ym7^E?pi$v!Kh4OJwIDS(WvQa-j7L1I2RFj50u$GUgb;A4zZ#r3_8P zj9#(En-)LXDycMH8j?Pq_!Gmsfgg?T-ATDAIOLILU2A6=ef5q8vM1q;!l3kAE8FwD z8wiZ_<^`f+c&V-TNOb^j0!dpiA(@|}VV3*d+k2Yja@m9E-SjnZS_;E6+sfe3k|zjg zMUKV?lD8^E!3UvHzU)lO8gop+^nr6hb>>`_z5)@N)XKeY*p2*GbqP&>TxvL~DsCrt zFUGE!Hu~iE-mq@#j6SSvo3ZOuu50Ip6s|f21V1jBr8pP2bMc=>i1p8POk1UQhJClP zTg`^`G&$fdjOi1{jN{pzn0^oUl3{dMXR1Ii8$42L|A}F+tO2?j!VkkU7m~wqNBeK1 zQ;^w4yb!XEKIpXaVrHWQ;XYSM1Pgfu-ER93Erp8SpB|1s93CC?ifmI!t}O#7+qlHnypq>Fdcl)nt9epgAi=_R3T?^!Dy%%hvz*8ti{LnjRm%Kb<~Yhkq>HrWV6D zG=;ghkTmf7PIOG?Or28=s{vbn#*;8-JwMjY8iunyf=(Dap}DpJb)d+@IBCC{`At0Q eL5lnp;mg@-g4-*Mtlw+`#I+;tVF literal 0 HcmV?d00001 diff --git a/win/darkaudacity.ico b/win/darktenacity.ico similarity index 100% rename from win/darkaudacity.ico rename to win/darktenacity.ico