123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- ; Supertux setup script. Process this script with InnoSetup
- ;
- ; Assumes the following was already done:
- ;
- ; rm -fr /build/supertux/build/innosetup
- ; ./autogen.sh
- ; LIBS="-L/usr/local/lib -lvorbisenc -lvorbisfile -lvorbis -logg" CFLAGS="-I/usr/local/include" configure
- ; jam
- ; jam -sDESTDIR="/build/supertux/build/innosetup" install
- ;
- #define MyAppName "SuperTux"
- #define MyAppVer "0.4.0"
- #define MyAppVerName "SuperTux 0.4.0"
- #define MyAppPublisher "SuperTux Development Team"
- #define MyAppURL "http://supertux.lethargik.org"
- #define MyAppExeName "supertux2.exe"
- #define RootDir "..\.."
- #define DependencyDir "..\..\dependencies32"
- #define BuildDir "..\..\Release"
- #define DllSourceDir "C:\msys\1.0\build\supertux"
- [Setup]
- AppName={#MyAppName}
- AppVerName={#MyAppVerName}
- AppPublisher={#MyAppPublisher}
- AppPublisherURL={#MyAppURL}
- AppSupportURL={#MyAppURL}
- AppUpdatesURL={#MyAppURL}
- DefaultDirName={pf}\{#MyAppVerName}
- DefaultGroupName={#MyAppVerName}
- ShowLanguageDialog=yes
- SolidCompression=true
- OutputBaseFilename=supertux-{#MyAppVer}-win32-setup
- AllowNoIcons=true
- AppID={{4BEF4147-E17A-4848-BDC4-60A0AAC70F2A}
- VersionInfoVersion=0.3
- VersionInfoTextVersion={#MyAppVerName}
- AppVersion={#MyAppVer}
- UninstallDisplayName={#MyAppVerName}
- LicenseFile={#RootDir}\LICENSE
- SetupIconFile={#RootDir}\tools\innosetup\{#MyAppName}.ico
- Compression=lzma2
- [Tasks]
- Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
- [Languages]
- Name: "english"; MessagesFile: "compiler:Default.isl"
- Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
- Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
- Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
- Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
- Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
- Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
- Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
- Name: "french"; MessagesFile: "compiler:Languages\French.isl"
- Name: "german"; MessagesFile: "compiler:Languages\German.isl"
- Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"
- Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
- Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
- Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
- Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
- Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
- Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
- Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
- Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
- Name: "scottishgaelic"; MessagesFile: "compiler:Languages\ScottishGaelic.isl"
- Name: "serbiancyrillic"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl"
- Name: "serbianlatin"; MessagesFile: "compiler:Languages\SerbianLatin.isl"
- Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
- Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
- Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
- Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
- [Files]
- Source: {#DependencyDir}\vcredist_x86.exe; DestDir: {tmp}; Flags: deleteafterinstall
- Source: {#BuildDir}\supertux2.exe; DestDir: {app}; Flags: ignoreversion
- Source: {#RootDir}\LICENSE; DestDir: {app}; Flags: ignoreversion
- Source: {#RootDir}\README.md; DestDir: {app}; Flags: ignoreversion
- Source: {#RootDir}\INSTALL.md; DestDir: {app}; Flags: ignoreversion
- Source: {#RootDir}\NEWS.md; DestDir: {app}; Flags: ignoreversion
- Source: {#BuildDir}\*.dll; DestDir: {app}; Flags: ignoreversion
- Source: {#BuildDir}\*.pem; DestDir: {app}\data; Flags: ignoreversion
- Source: {#RootDir}\data\*; DestDir: {app}\data; Flags: ignoreversion recursesubdirs createallsubdirs
- Source: {#DependencyDir}\licenses\*; DestDir: {app}\licenses; Flags: ignoreversion recursesubdirs createallsubdirs
- Source: {#MyAppName}.ico; DestDir: {app}; Flags: ignoreversion
- [Icons]
- Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#MyAppName}.ico
- Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}
- Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; IconFilename: {app}\{#MyAppName}.ico; Tasks: desktopicon
- [Run]
- Filename: {tmp}\vcredist_x86.exe; Parameters: "/quiet /norestart"; StatusMsg: Installing Visual C++ runtime...; Check: VCRedistNeedsInstall
- Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent
- [UninstallDelete]
- Type: filesandordirs; Name: {app}\stdout.txt
- Type: filesandordirs; Name: {app}\stderr.txt
- [Code]
- // Taken from http://stackoverflow.com/a/11172939
- #IFDEF UNICODE
- #DEFINE AW "W"
- #ELSE
- #DEFINE AW "A"
- #ENDIF
- type
- INSTALLSTATE = Longint;
- const
- INSTALLSTATE_INVALIDARG = -2; // An invalid parameter was passed to the function.
- INSTALLSTATE_UNKNOWN = -1; // The product is neither advertised or installed.
- INSTALLSTATE_ADVERTISED = 1; // The product is advertised but not installed.
- INSTALLSTATE_ABSENT = 2; // The product is installed for a different user.
- INSTALLSTATE_DEFAULT = 5; // The product is installed for the current user.
- VC_2005_REDIST_X86 = '{A49F249F-0C91-497F-86DF-B2585E8E76B7}';
- VC_2005_REDIST_X64 = '{6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}';
- VC_2005_REDIST_IA64 = '{03ED71EA-F531-4927-AABD-1C31BCE8E187}';
- VC_2005_SP1_REDIST_X86 = '{7299052B-02A4-4627-81F2-1818DA5D550D}';
- VC_2005_SP1_REDIST_X64 = '{071C9B48-7C32-4621-A0AC-3F809523288F}';
- VC_2005_SP1_REDIST_IA64 = '{0F8FB34E-675E-42ED-850B-29D98C2ECE08}';
- VC_2005_SP1_ATL_SEC_UPD_REDIST_X86 = '{837B34E3-7C30-493C-8F6A-2B0F04E2912C}';
- VC_2005_SP1_ATL_SEC_UPD_REDIST_X64 = '{6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}';
- VC_2005_SP1_ATL_SEC_UPD_REDIST_IA64 = '{85025851-A784-46D8-950D-05CB3CA43A13}';
- VC_2008_REDIST_X86 = '{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}';
- VC_2008_REDIST_X64 = '{350AA351-21FA-3270-8B7A-835434E766AD}';
- VC_2008_REDIST_IA64 = '{2B547B43-DB50-3139-9EBE-37D419E0F5FA}';
- VC_2008_SP1_REDIST_X86 = '{9A25302D-30C0-39D9-BD6F-21E6EC160475}';
- VC_2008_SP1_REDIST_X64 = '{8220EEFE-38CD-377E-8595-13398D740ACE}';
- VC_2008_SP1_REDIST_IA64 = '{5827ECE1-AEB0-328E-B813-6FC68622C1F9}';
- VC_2008_SP1_ATL_SEC_UPD_REDIST_X86 = '{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}';
- VC_2008_SP1_ATL_SEC_UPD_REDIST_X64 = '{4B6C7001-C7D6-3710-913E-5BC23FCE91E6}';
- VC_2008_SP1_ATL_SEC_UPD_REDIST_IA64 = '{977AD349-C2A8-39DD-9273-285C08987C7B}';
- VC_2008_SP1_MFC_SEC_UPD_REDIST_X86 = '{9BE518E6-ECC6-35A9-88E4-87755C07200F}';
- VC_2008_SP1_MFC_SEC_UPD_REDIST_X64 = '{5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}';
- VC_2008_SP1_MFC_SEC_UPD_REDIST_IA64 = '{515643D1-4E9E-342F-A75A-D1F16448DC04}';
- VC_2010_REDIST_X86 = '{196BB40D-1578-3D01-B289-BEFC77A11A1E}';
- VC_2010_REDIST_X64 = '{DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}';
- VC_2010_REDIST_IA64 = '{C1A35166-4301-38E9-BA67-02823AD72A1B}';
- VC_2010_SP1_REDIST_X86 = '{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}';
- VC_2010_SP1_REDIST_X64 = '{1D8E6291-B0D5-35EC-8441-6616F567A0F7}';
- VC_2010_SP1_REDIST_IA64 = '{88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}';
- // Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030.0 (Update 4)
- VC_2012_REDIST_MIN_UPD4_X86 = '{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}';
- VC_2012_REDIST_MIN_UPD4_X64 = '{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}';
- // Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030.0 (Update 4)
- VC_2012_REDIST_ADD_UPD4_X86 = '{B175520C-86A2-35A7-8619-86DC379688B9}';
- VC_2012_REDIST_ADD_UPD4_X64 = '{37B8F9C7-03FB-3253-8781-2517C99D7C00}';
- // Microsoft Visual C++ 2013
- VC_2013_REDIST_X86 = '{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}';
- VC_2013_REDIST_X64 = '{A749D8E6-B613-3BE3-8F5F-045C84EBA29B}';
- function MsiQueryProductState(szProduct: string): INSTALLSTATE;
- external 'MsiQueryProductState{#AW}@msi.dll stdcall';
- function VCVersionInstalled(const ProductID: string): Boolean;
- begin
- Result := MsiQueryProductState(ProductID) = INSTALLSTATE_DEFAULT;
- end;
- function VCRedistNeedsInstall: Boolean;
- begin
- // here the Result must be True when you need to install your VCRedist
- // or False when you don't need to, so now it's upon you how you build
- // this statement, the following won't install your VC redist only when
- // the Visual C++ 2010 Redist (x86) and Visual C++ 2010 SP1 Redist(x86)
- // are installed for the current user
- Result := not (VCVersionInstalled(VC_2013_REDIST_X86));
- end;
|