mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 07:39:42 +02:00
367 lines
16 KiB
Plaintext
367 lines
16 KiB
Plaintext
; Audacity: A Digital Audio Editor
|
||
; Audacity(R) is copyright (c) 1999-2021 Audacity Team.
|
||
; License: GPL v2. See License.txt.
|
||
;
|
||
; audacity.iss
|
||
; Vaughan Johnson, Leland Lucius, Martyn Shaw, Richard Ash, & others
|
||
;
|
||
|
||
; This requires that the ISS Preprocessor be installed
|
||
|
||
#define AppExe "Package\audacity.exe"
|
||
#define AppMajor ""
|
||
#define AppMinor ""
|
||
#define AppRev ""
|
||
#define AppBuild ""
|
||
#define FullVersion ParseVersion(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*.*";
|
||
|
||
[Setup]
|
||
; compiler-related directives
|
||
OutputBaseFilename=audacity-win-{#AppVersion}-@INSTALLER_SUFFIX@
|
||
|
||
WizardImageFile=".\audacity_InnoWizardImage.bmp"
|
||
WizardSmallImageFile=".\audacity_InnoWizardSmallImage.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
|
||
|
||
AppName={#AppName}
|
||
AppVerName=Audacity {#AppVersion}
|
||
; Specify AppVersion as well, so it appears in the Add/Remove Programs entry.
|
||
AppVersion={#AppVersion}
|
||
AppPublisher="Audacity Team"
|
||
AppPublisherURL=http://audacityteam.org
|
||
AppSupportURL=http://audacityteam.org
|
||
AppUpdatesURL=http://audacityteam.org
|
||
ChangesAssociations=yes
|
||
@INSTALLER_X64_MODE@
|
||
|
||
DefaultDirName={commonpf}\Audacity
|
||
|
||
VersionInfoProductName={#AppName}
|
||
VersionInfoProductTextVersion={#GetFileProductVersion(AppExe)}
|
||
VersionInfoDescription={#AppName + " " + AppVersion + " Setup"}
|
||
VersionInfoVersion={#GetFileVersion(AppExe)}
|
||
VersionInfoCopyright={#GetFileCopyright(AppExe)}
|
||
|
||
; Don't disable the "Select Destination Location" wizard, even if
|
||
; Audacity is already installed.
|
||
DisableDirPage=no
|
||
|
||
; Always warn if dir exists, because we'll overwrite previous Audacity.
|
||
DirExistsWarning=yes
|
||
DisableProgramGroupPage=yes
|
||
UninstallDisplayIcon="{app}\audacity.exe"
|
||
|
||
; No longer force them to accept the license, just display it. LicenseFile=..\LICENSE.txt
|
||
InfoBeforeFile=".\audacity_InnoWizard_InfoBefore.rtf"
|
||
InfoAfterFile=Additional\README.txt
|
||
|
||
; 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\audacity.ico"
|
||
|
||
@SIGN_TOOL@
|
||
|
||
[INI]
|
||
Filename: "{app}\FirstTime.ini"; Section: "FromInno"; Key: "ResetPrefs"; String: "1"; Tasks: resetPrefs;
|
||
Filename: "{app}\FirstTime.ini"; Section: "FromInno"; Key: "Language"; String: "{language}"
|
||
|
||
[Tasks]
|
||
Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
|
||
Name: resetPrefs; Description: "{cm:ResetPrefs}"; Flags: unchecked
|
||
; No longer allow user to choose whether to associate AUP file type with Audacity.
|
||
; Name: associate_aup; Description: "&Associate Audacity project files"; GroupDescription: "Other tasks:"; Flags: checkedonce
|
||
|
||
[Files]
|
||
; 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.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme
|
||
Source: "Additional\README.txt"; DestDir: "{app}"; Flags: ignoreversion
|
||
|
||
Source: "Additional\LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion
|
||
Source: "Package\*.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||
|
||
; Manual, which should be got from the manual wiki using ..\scripts\mw2html_audacity\wiki2htm.bat
|
||
@MANUAL@
|
||
|
||
Source: "Additional\presets\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
|
||
|
||
; We include all dll files from the Adacity root directory. This script is now executed as a part of CI build process,
|
||
; so we controll which dll files are present in the directory.
|
||
Source: "Package\*.dll"; DestDir: "{app}"; Flags: ignoreversion
|
||
|
||
Source: "Package\languages\*"; DestDir: "{app}\Languages\"; Flags: ignoreversion recursesubdirs
|
||
; We don't ship all modules, so the next line is commented out
|
||
; Source: "Package\modules\*"; DestDir: "{app}\Modules\"; Flags: ignoreversion recursesubdirs skipifsourcedoesntexist
|
||
Source: "Package\nyquist\*"; DestDir: "{app}\Nyquist\"; Flags: ignoreversion recursesubdirs
|
||
Source: "Package\plug-ins\*"; DestDir: "{app}\Plug-Ins\"; Flags: ignoreversion
|
||
Source: "Package\modules\*"; DestDir: "{app}\modules\"; Flags: ignoreversion recursesubdirs
|
||
|
||
[Icons]
|
||
Name: "{commonprograms}\Audacity"; Filename: "{app}\audacity.exe"
|
||
Name: "{commondesktop}\Audacity"; Filename: "{app}\audacity.exe"; Tasks: desktopicon
|
||
|
||
[InstallDelete]
|
||
; Get rid of Audacity 1.0.0 stuff that's no longer used.
|
||
Type: files; Name: "{app}\audacity-help.htb"
|
||
Type: files; Name: "{app}\audacity-1.2-help.htb"
|
||
|
||
; Get rid of previous versions of MSVC runtimes.
|
||
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}\msvcp90.dll"
|
||
Type: files; Name: "{app}\msvcr90.dll"
|
||
Type: files; Name: "{app}\msvcp120.dll"
|
||
Type: files; Name: "{app}\msvcr120.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 Audacity.exe at the top level.
|
||
; Get rid of 1.0.0 folder and its icons.
|
||
Type: files; Name: "{commonprograms}\Audacity\audacity.exe"
|
||
Type: files; Name: "{commonprograms}\Audacity\unins000.exe"
|
||
Type: dirifempty; Name: "{commonprograms}\Audacity"
|
||
|
||
;Get rid of previous uninstall item
|
||
Type: files; Name: "{app}\unins*.*"
|
||
|
||
; Get rid of no longer used test.lsp.
|
||
Type: files; Name: "{app}\Nyquist\test.lsp"
|
||
|
||
; Get rid of specific LADSPA plug-ins that we now ship with different names.
|
||
Type: files; Name: "{app}\Plug-Ins\GVerb.dll"
|
||
Type: files; Name: "{app}\Plug-Ins\Hard Limiter.dll"
|
||
Type: files; Name: "{app}\Plug-Ins\hard_limiter_1413.dll"
|
||
Type: files; Name: "{app}\Plug-Ins\sc4.dll"
|
||
|
||
;Get rid of any modules that we have ever installed
|
||
Type: files; Name: "{app}\Modules\mod-script-pipe.dll"
|
||
Type: files; Name: "{app}\Modules\mod-script-pipe.exp"
|
||
Type: files; Name: "{app}\Modules\mod-script-pipe.lib"
|
||
Type: files; Name: "{app}\Modules\mod-nyq-bench.dll"
|
||
|
||
;get rid of the Modules dir, if it is empty
|
||
Type: dirifempty; Name: "{app}\Modules"
|
||
|
||
; Get rid of gverb that we no longer ship
|
||
Type: files; Name: "{app}\Plug-Ins\gverb_1216.dll"
|
||
|
||
; Get rid of old nyquist plugins that we no longer ship
|
||
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 Audacity.
|
||
; Leaving this one commented out example of the old way.
|
||
; Root: HKCR; Subkey: ".AUP"; ValueType: string; ValueData: "Audacity.Project"; Flags: createvalueifdoesntexist uninsdeletekey; Tasks: associate_aup
|
||
Root: HKCR; Subkey: ".AUP"; ValueType: string; ValueData: "Audacity.Project"; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: ".AUP3"; ValueType: string; ValueData: "Audacity.Project"; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: "Audacity.Project\OpenWithList\audacity.exe"; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: "Audacity.Project"; ValueType: string; ValueData: "Audacity Project File"; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: "Audacity.Project\shell"; ValueType: string; ValueData: ""; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: "Audacity.Project\shell\open"; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
Root: HKCR; Subkey: "Audacity.Project\shell\open\command"; ValueType: string; ValueData: """{app}\audacity.exe"" ""%1"""; Flags: uninsdeletekey;
|
||
|
||
;The following would allow a following 'help' installer to know where to put the 'help' files.
|
||
;Root: HKCR; Subkey: "Audacity.Project\Path"; ValueType: string; ValueData: {app}; Flags: createvalueifdoesntexist uninsdeletekey;
|
||
|
||
[Run]
|
||
Filename: "{app}\audacity.exe"; Description: "{cm:LaunchProgram,Audacity}"; Flags: nowait postinstall skipifsilent
|
||
|
||
[Languages]
|
||
; NOTE: "0" in locale name will be translated to "@" when read by Audacity.
|
||
|
||
; Create subdirectories where we'll store the unofficial and dummy translation files
|
||
{#expr Exec("cmd", "/c mkdir """ + "Languages\dummy""", '.\', , SW_HIDE), \
|
||
Exec("cmd", "/c mkdir """ + "Languages\unofficial""", '.\', , SW_HIDE)}
|
||
|
||
; Download Additional Inno Setup translations from:
|
||
;
|
||
; 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/"
|
||
|
||
; 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.
|
||
; (Sorry, it's not a quick process, but it only happens once.)
|
||
#define Get(URL) \
|
||
Local[0] = ".\Languages\unofficial\" + Copy(URL, RPos("/", URL) + 1), \
|
||
Local[1] = (FileExists(Local[0]) \
|
||
? "alreadyexists" \
|
||
: Exec("powershell", "echo 'Downloading: " + URL + "'; $wc = new-object System.Net.WebClient; $wc.DownloadFile('" + URLBase + URL + "', '" + Local[0] + "')", '.\', , SW_NORMAL)), \
|
||
Local[0]
|
||
|
||
; This macro will define a dummy translation based on the Defaults.isl
|
||
#define Dummy(NAME, ID) \
|
||
Local[0] = ".\Languages\dummy\", \
|
||
Local[1] = Local[0] + NAME + ".isl", \
|
||
Local[2] = SourcePath + Local[1], \
|
||
Local[3] = (FileExists(Local[2]) \
|
||
? "alreadyexists" \
|
||
: (CopyFile(CompilerPath + "Default.isl", Local[2]), \
|
||
WriteIni(Local[2], "LangOptions", "LanguageName", NAME), \
|
||
WriteIni(Local[2], "LangOptions", "LanguageID", "$" + ID))), \
|
||
Local[1]
|
||
|
||
Name: "af"; MessagesFile: "{#Get('Afrikaans.isl')}"
|
||
Name: "ar"; MessagesFile: "{#Get('Arabic.isl')}"
|
||
Name: "be"; MessagesFile: "{#Get('Belarusian.isl')}"
|
||
Name: "bg"; MessagesFile: "compiler:Languages\Bulgarian.isl"
|
||
Name: "bn"; MessagesFile: "{#Get('Bengali.islu')}"
|
||
Name: "bs"; MessagesFile: "{#Get('Bosnian.isl')}"
|
||
Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl"
|
||
Name: "ca_ES0valencia"; MessagesFile: "{#Get('Valencian.isl')}"
|
||
Name: "co"; MessagesFile: "compiler:Languages\Corsican.isl"
|
||
Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl"
|
||
Name: "cy"; MessagesFile: "{#Dummy('Welsh', '0452')}"
|
||
Name: "da"; MessagesFile: "compiler:Languages\Danish.isl"
|
||
Name: "de"; MessagesFile: "compiler:Languages\German.isl"
|
||
Name: "el"; MessagesFile: "{#Get('Greek.isl')}"
|
||
Name: "en"; MessagesFile: "compiler:Default.isl"
|
||
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl"
|
||
Name: "eu"; MessagesFile: "{#Get('Basque.isl')}"
|
||
Name: "fa"; MessagesFile: "{#Get('Farsi.isl')}"
|
||
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl"
|
||
Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
|
||
Name: "ga"; MessagesFile: "{#Dummy('Gaeilge', '083C')}"
|
||
Name: "gl"; MessagesFile: "{#Get('Galician.isl')}"
|
||
Name: "he"; MessagesFile: "compiler:Languages\Hebrew.isl"
|
||
Name: "hi"; MessagesFile: "{#Get('Hindi.islu')}"
|
||
Name: "hr"; MessagesFile: "{#Get('Croatian.isl')}"
|
||
Name: "hu"; MessagesFile: "{#Get('Hungarian.isl')}"
|
||
Name: "hy"; MessagesFile: "compiler:Languages\Armenian.isl"
|
||
Name: "id"; MessagesFile: "{#Get('Indonesian.isl')}"
|
||
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
|
||
Name: "ja"; MessagesFile: "compiler:Languages\Japanese.isl"
|
||
Name: "ka"; MessagesFile: "{#Get('Georgian.isl')}"
|
||
Name: "km"; MessagesFile: "{#Dummy('Khmer', '0409')}"
|
||
Name: "ko"; MessagesFile: "{#Dummy('Korean', '0412')}"
|
||
Name: "lt"; MessagesFile: "{#Get('Lithuanian.isl')}"
|
||
Name: "mk"; MessagesFile: "{#Get('Macedonian.isl')}"
|
||
Name: "my"; MessagesFile: "{#Dummy('Burmese', '0409')}"
|
||
Name: "nb"; MessagesFile: "compiler:Languages\Norwegian.isl"
|
||
Name: "ne"; MessagesFile: "{#Get('Nepali.islu')}"
|
||
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
|
||
Name: "oc"; MessagesFile: "{#Get('Occitan.isl')}"
|
||
Name: "pl"; MessagesFile: "compiler:Languages\Polish.isl"
|
||
Name: "pt_PT"; MessagesFile: "compiler:Languages\Portuguese.isl"
|
||
Name: "pt_BR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
|
||
Name: "ro"; MessagesFile: "{#Get('Romanian.isl')}"
|
||
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
|
||
Name: "sk"; MessagesFile: "compiler:Languages\Slovak.isl"
|
||
Name: "sl"; MessagesFile: "compiler:Languages\Slovenian.isl"
|
||
Name: "sr_RS"; MessagesFile: "{#Get('SerbianCyrillic.isl')}"
|
||
Name: "sr_RS0latin"; MessagesFile: "{#Get('SerbianLatin.isl')}"
|
||
Name: "sv"; MessagesFile: "{#Get('Swedish.isl')}"
|
||
Name: "ta"; MessagesFile: "{#Dummy('Tamil', '0449')}"
|
||
Name: "tg"; MessagesFile: "{#Dummy('Tajik', '0428')}"
|
||
Name: "tr"; MessagesFile: "compiler:Languages\Turkish.isl"
|
||
Name: "uk"; MessagesFile: "compiler:Languages\Ukrainian.isl"
|
||
Name: "vi"; MessagesFile: "{#Get('Vietnamese.isl')}"
|
||
Name: "zh_CN"; MessagesFile: "{#Get('ChineseSimplified.isl')}"
|
||
Name: "zh_TW"; MessagesFile: "{#Get('ChineseTraditional.isl')}"
|
||
|
||
; To include additional translations add it to the win/InnoSetupLanguages directory.
|
||
; The filename must be the locale name and the ".isl" extension. For example, "af.isl"
|
||
; would have the "Afrikaans" translation.
|
||
|
||
; Pull in additional translations from the win/InnoSetupLanguages directory
|
||
#define FindHandle
|
||
#define FindResult
|
||
|
||
#sub AddLanguage
|
||
#define FileName FindGetFileName(FindHandle)
|
||
#define LangCode Local[0] = Copy(FileName, 1, Pos(".", FileName) - 1)
|
||
Name: {#LangCode}; MessagesFile: "InnoSetupLanguages\{#FileName}"
|
||
#endsub
|
||
|
||
#for {FindHandle = FindResult = FindFirst("InnoSetupLanguages\*.isl", 0); FindResult; FindResult = FindNext(FindHandle)} AddLanguage
|
||
#if FindHandle
|
||
#expr FindClose(FindHandle)
|
||
#endif
|
||
|
||
; These could be included from a different file to make it easier to update...
|
||
[CustomMessages]
|
||
af.ResetPrefs=Reset Preferences
|
||
ar.ResetPrefs=Reset Preferences
|
||
be.ResetPrefs=Reset Preferences
|
||
bg.ResetPrefs=Да се нулират ли настройките?
|
||
bn.ResetPrefs=Reset Preferences
|
||
bs.ResetPrefs=Reset Preferences
|
||
ca.ResetPrefs=Voleu restablir les preferències?
|
||
ca_ES0valencia.ResetPrefs=Reset Preferences
|
||
co.ResetPrefs=Reinizià e preferenze ?
|
||
cs.ResetPrefs=Vynulovat nastavení?
|
||
cy.ResetPrefs=Reset Preferences
|
||
da.ResetPrefs=Gendan indstillinger?
|
||
de.ResetPrefs=Einstellungen zurücksetzen?
|
||
el.ResetPrefs=Επαναφορά προτιμήσεων;
|
||
en.ResetPrefs=Reset Preferences
|
||
es.ResetPrefs=¿Desea restablecer las preferencias?
|
||
eu.ResetPrefs=Berrezarri Hobespenak?
|
||
fa.ResetPrefs=Reset Preferences
|
||
fi.ResetPrefs=Reset Preferences
|
||
fr.ResetPrefs=Réinitialiser les préférences ?
|
||
ga.ResetPrefs=Reset Preferences
|
||
gl.ResetPrefs=Restabelecer as preferencias?
|
||
he.ResetPrefs=?אתה רוצה לשחזר העדפות
|
||
hi.ResetPrefs=वरीयताएँ रीसेट करें?
|
||
hr.ResetPrefs=Resetirati Postavke?
|
||
hu.ResetPrefs=Alapra állítja a beállításokat?
|
||
hy.ResetPrefs=Վերափոխե՞լ կարգավորումները:
|
||
id.ResetPrefs=Reset Preferences
|
||
it.ResetPrefs=Ripristino Preferenze?
|
||
ja.ResetPrefs=環境設定をリセットする
|
||
ka.ResetPrefs=Reset Preferences
|
||
km.ResetPrefs=Reset Preferences
|
||
ko.ResetPrefs=기본 설정을 재설정하시겠습니까?
|
||
lt.ResetPrefs=Reset Preferences
|
||
mk.ResetPrefs=Reset Preferences
|
||
my.ResetPrefs=Reset Preferences
|
||
nb.ResetPrefs=Reset Preferences
|
||
ne.ResetPrefs=Reset Preferences
|
||
nl.ResetPrefs=Voorkeuren herstellen?
|
||
oc.ResetPrefs=Reset Preferences
|
||
pl.ResetPrefs=Zresetować ustawienia?
|
||
pt_PT.ResetPrefs=Reconfigurar as Preferências?
|
||
pt_BR.ResetPrefs=Repor Preferências?
|
||
ro.ResetPrefs=Reset Preferences
|
||
ru.ResetPrefs=Сбросить Параметры?
|
||
sk.ResetPrefs=Obnoviť nastavenia?
|
||
sl.ResetPrefs=Želite ponastaviti možnosti?
|
||
sr_RS.ResetPrefs=Да вратим на старе поставке?
|
||
sr_RS0latin.ResetPrefs=Da vratim na stare postavke?
|
||
sv.ResetPrefs=Återställ inställningar?
|
||
ta.ResetPrefs="விருப்பங்களை மீட்டமைக்க?
|
||
tg.ResetPrefs=Reset Preferences
|
||
tr.ResetPrefs=Ayarlar Sıfırlansın mı?
|
||
uk.ResetPrefs=Відновити початкові значення параметрів?
|
||
;vi.ResetPrefs=Reset Preferences
|
||
zh_CN.ResetPrefs=重置偏好设置
|
||
zh_TW.ResetPrefs=重置偏好設定
|