Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Parametrize the setup and add batch files to build all the necessary setup variations. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
722fe9ce7faaba93f5be4ee431698958 |
User & Date: | mistachkin 2011-04-08 10:50:02.629 |
Context
2011-04-08
| ||
10:59 | Add missing file headers to setup and batch files. check-in: 0466475f46 user: mistachkin tags: trunk | |
10:50 | Parametrize the setup and add batch files to build all the necessary setup variations. check-in: 722fe9ce7f user: mistachkin tags: trunk | |
08:35 | Disable prompt to remove GAC'd assembly on uninstall. Also, due to GAC and 'shared file' requirements, install assembly file to be GAC'd in its own directory. check-in: 3b8648f3d3 user: mistachkin tags: trunk | |
Changes
Changes to Setup/SQLite.iss.
1 | [Setup] | | | | | | | | | | | < | > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [Setup] AllowNoIcons=true ArchitecturesInstallIn64BitMode=x64 AlwaysShowComponentsList=false AppCopyright=Public Domain AppID={#AppId} AppName=System.Data.SQLite AppPublisher=System.Data.SQLite Team AppPublisherURL={#AppURL} AppSupportURL={#AppURL} AppUpdatesURL={#AppURL} AppVerName=System.Data.SQLite v{#AppVersion} AppVersion={#AppVersion} AppComments=The ADO.NET adapter for the SQLite database engine. AppReadmeFile={app}\readme.htm DefaultDirName={pf}\System.Data.SQLite DefaultGroupName=System.Data.SQLite OutputBaseFilename=System.Data.SQLite.Setup_{#AppProcessor}_{#VcRuntime} SetupLogging=true UninstallFilesDir={app}\uninstall VersionInfoVersion={#AppVersion} ExtraDiskSpaceRequired=2097152 [Code] var IsNetFx2Setup : Boolean; IsNetFx4Setup : Boolean; NetFxSubKeyName: String; NetFxInstallRoot: String; |
︙ | ︙ | |||
38 39 40 41 42 43 44 | NetFx2ErrorMessage: String; NetFx4Version: String; NetFx4SetupVersion: String; NetFx4HasServicePack: String; NetFx4ServicePack: Cardinal; NetFx4ErrorMessage: String; | | | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | NetFx2ErrorMessage: String; NetFx4Version: String; NetFx4SetupVersion: String; NetFx4HasServicePack: String; NetFx4ServicePack: Cardinal; NetFx4ErrorMessage: String; function CheckForNetFx2(NeedServicePack: Cardinal): Boolean; var SubKeyName: String; IsInstalled: Cardinal; HasServicePack: Cardinal; begin Result := False; |
︙ | ︙ | |||
65 66 67 68 69 70 71 | begin Result := True; end; end; end; end; end; | | | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | begin Result := True; end; end; end; end; end; function CheckForNetFx4(NeedServicePack: Cardinal): Boolean; var SubKeyName: String; IsInstalled: Cardinal; HasServicePack: Cardinal; begin Result := False; |
︙ | ︙ | |||
92 93 94 95 96 97 98 | begin Result := True; end; end; end; end; end; | | | | | | | | > | | | | 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | begin Result := True; end; end; end; end; end; function GetNetFx2InstallRoot(FileName: String): String; var InstallRoot: String; begin Result := ''; if RegQueryStringValue(HKEY_LOCAL_MACHINE, NetFxSubKeyName, NetFxInstallRoot, InstallRoot) then begin Result := InstallRoot + '\' + NetFx2Version; if FileName <> '' then begin Result := Result + '\' + FileName; end; end; end; function GetNetFx4InstallRoot(FileName: String): String; var InstallRoot: String; begin Result := ''; if RegQueryStringValue(HKEY_LOCAL_MACHINE, NetFxSubKeyName, NetFxInstallRoot, InstallRoot) then begin Result := InstallRoot + '\' + NetFx4Version; if FileName <> '' then begin Result := Result + '\' + FileName; end; end; end; function CheckIsNetFx2Setup(): Boolean; begin Result := IsNetFx2Setup; end; function CheckIsNetFx4Setup(): Boolean; begin Result := IsNetFx4Setup; end; function ExtractAndInstallVcRuntime(var ResultCode: Integer): Boolean; begin ExtractTemporaryFile('vcredist_{#AppProcessor}_{#VcRuntime}_SP1.exe'); if Exec(ExpandConstant( '{tmp}\vcredist_{#AppProcessor}_{#VcRuntime}_SP1.exe'), '/q', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then begin Result := True; end else begin Result := False; end; end; function InitializeSetup(): Boolean; var ResultCode: Integer; begin IsNetFx2Setup := {#IsNetFx2}; IsNetFx4Setup := not IsNetFx2Setup; NetFxSubKeyName := 'Software\Microsoft\.NETFramework'; NetFxInstallRoot := 'InstallRoot'; NetFxSetupSubKeyName := 'Software\Microsoft\NET Framework Setup\NDP'; NetFxIsInstalled := 'Install'; |
︙ | ︙ | |||
210 211 212 213 214 215 216 | if not Result then begin MsgBox('Failed to install Microsoft Visual C++ Runtime: ' + SysErrorMessage(ResultCode), mbError, MB_OK); end; end; end; | | | | | | | | | | | | | | 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 | if not Result then begin MsgBox('Failed to install Microsoft Visual C++ Runtime: ' + SysErrorMessage(ResultCode), mbError, MB_OK); end; end; end; [Components] Name: Application; Description: System.Data.SQLite components.; Types: custom compact full Name: Application\Core; Description: Core components.; Types: custom compact full Name: Application\Core\MSIL; Description: Core managed components.; Types: custom compact full Name: Application\Core\{#AppProcessor}; Description: Core native components.; Types: custom compact full Name: Application\Symbols; Description: Debugging symbol components.; Types: custom compact full Name: Application\Documentation; Description: Documentation components.; Types: custom compact full Name: Application\Test; Description: Test components.; Types: custom compact full [Tasks] Components: Application\Core\MSIL; Name: GAC; Description: Install the assemblies into the global assembly cache.; Flags: unchecked; Check: CheckIsNetFx2Setup() or CheckIsNetFx4Setup() Components: Application\Core\MSIL; Name: NGEN; Description: Generate native images for the assemblies and install the images in the native image cache.; Check: CheckIsNetFx2Setup() or CheckIsNetFx4Setup() [Run] Components: Application\Core\MSIL; Tasks: NGEN; Filename: {code:GetNetFx2InstallRoot|Ngen.exe}; Parameters: "install ""{app}\bin\System.Data.SQLite.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup() Components: Application\Core\MSIL; Tasks: NGEN; Filename: {code:GetNetFx4InstallRoot|Ngen.exe}; Parameters: "install ""{app}\bin\System.Data.SQLite.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() [UninstallRun] Components: Application\Core\MSIL; Tasks: NGEN; Filename: {code:GetNetFx4InstallRoot|Ngen.exe}; Parameters: "uninstall ""{app}\bin\System.Data.SQLite.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() Components: Application\Core\MSIL; Tasks: NGEN; Filename: {code:GetNetFx2InstallRoot|Ngen.exe}; Parameters: "uninstall ""{app}\bin\System.Data.SQLite.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup() [Dirs] Name: {app}\bin Name: {app}\doc Name: {app}\GAC [Files] Components: Application\Core\{#AppProcessor}; Source: ..\Externals\MSVCPP\vcredist_{#AppProcessor}_{#VcRuntime}_SP1.exe; DestDir: {tmp}; Flags: dontcopy Components: Application; Source: ..\readme.htm; DestDir: {app}; Flags: restartreplace uninsrestartdelete isreadme Components: Application\Core\MSIL; Tasks: GAC; Source: ..\bin\Release\bin\System.Data.SQLite.dll; DestDir: {app}\GAC; StrongAssemblyName: "System.Data.SQLite, Version={#AppVersion}, Culture=neutral, PublicKeyToken={#AppPublicKey}, ProcessorArchitecture=MSIL"; Flags: restartreplace uninsrestartdelete uninsnosharedfileprompt sharedfile gacinstall Components: Application\Core\MSIL; Source: ..\bin\Release\bin\System.Data.SQLite.dll; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Core\MSIL and Application\Symbols; Source: ..\bin\Release\bin\System.Data.SQLite.pdb; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Core\{#AppProcessor}; Source: ..\bin\{#AppPlatform}\ReleaseNativeOnly\SQLite.Interop.dll; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Core\{#AppProcessor} and Application\Symbols; Source: ..\bin\{#AppPlatform}\ReleaseNativeOnly\SQLite.Interop.pdb; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Documentation; Source: ..\doc\SQLite.NET.chm; DestDir: {app}\doc; Flags: restartreplace uninsrestartdelete Components: Application\Test; Source: ..\bin\Release\bin\test.exe; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Test and Application\Symbols; Source: ..\bin\Release\bin\test.pdb; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete Components: Application\Test; Source: ..\bin\Release\bin\test.exe.config; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete [Icons] Name: {group}\Test Suite; Filename: {app}\bin\test.exe; WorkingDir: {app}\bin; IconFilename: {app}\bin\test.exe; Comment: Launch Test Suite; IconIndex: 0; Flags: createonlyiffileexists Name: {group}\Class Library Documentation; Filename: {app}\doc\SQLite.NET.chm; WorkingDir: {app}\doc; Comment: Launch Class Library Documentation; Flags: createonlyiffileexists Name: {group}\README File; Filename: {app}\readme.htm; WorkingDir: {app}; Comment: View README File; Flags: createonlyiffileexists |
Added Setup/bake.bat.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | @ECHO OFF :: :: bake.bat -- :: :: Setup Preparation & Baking Tool :: :: Written by Joe Mistachkin. :: Released to the public domain, use at your own risk! :: SETLOCAL SET PATH=%ProgramFiles%\Inno Setup 5;%PATH% ISCC.exe SQLite.iss "/dAppId=%APPID%" "/dAppVersion=%VERSION%" "/dAppPublicKey=%PUBLICKEY%" "/dAppURL=%URL%" "/dIsNetFx2=%ISNETFX2%" "/dVcRuntime=%VCRUNTIME%" "/dAppPlatform=%PLATFORM%" "/dAppProcessor=%PROCESSOR%" IF %ERRORLEVEL% NEQ 0 ( ECHO Failed to compile setup. GOTO errors ) GOTO no_errors :fn_ResetErrorLevel VERIFY > NUL GOTO :EOF :fn_SetErrorLevel VERIFY MAYBE 2> NUL GOTO :EOF :errors CALL :fn_SetErrorLevel ENDLOCAL ECHO. ECHO Failure, errors were encountered. GOTO end_of_file :no_errors CALL :fn_ResetErrorLevel ENDLOCAL ECHO. ECHO Success, no errors were encountered. GOTO end_of_file :end_of_file EXIT /B %ERRORLEVEL% |
Added Setup/bake_all.bat.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | @ECHO OFF :: :: bake_all.bat -- :: :: Multi-Setup Preparation & Baking Tool :: :: Written by Joe Mistachkin. :: Released to the public domain, use at your own risk! :: SETLOCAL SET PROCESSORS=x86 x64 SET YEARS=2008 SET TOOLS=%~dp0 SET TOOLS=%TOOLS:~0,-1% CALL "%TOOLS%\set_common.bat" IF ERRORLEVEL 1 ( ECHO Could not set common variables. GOTO errors ) FOR %%P IN (%PROCESSORS%) DO ( FOR %%Y IN (%YEARS%) DO ( CALL "%TOOLS%\set_%%P_%%Y.bat" IF ERRORLEVEL 1 ( ECHO Could not set variables for %%P/%%Y. GOTO errors ) CALL "%TOOLS%\bake.bat" IF ERRORLEVEL 1 ( ECHO Could not bake setup for %%P/%%Y. GOTO errors ) ) ) GOTO no_errors :fn_ResetErrorLevel VERIFY > NUL GOTO :EOF :fn_SetErrorLevel VERIFY MAYBE 2> NUL GOTO :EOF :errors CALL :fn_SetErrorLevel ENDLOCAL ECHO. ECHO Failure, errors were encountered. GOTO end_of_file :no_errors CALL :fn_ResetErrorLevel ENDLOCAL ECHO. ECHO Success, no errors were encountered. GOTO end_of_file :end_of_file EXIT /B %ERRORLEVEL% |
Added Setup/set_common.bat.
> > > > > > | 1 2 3 4 5 6 | @ECHO OFF SET APPID={{02E43EC2-6B1C-45B5-9E48-941C3E1B204A} SET URL=http://system.data.sqlite.org/ SET VERSION=1.0.67.0 SET PUBLICKEY=db937bc2d44ff139 |
Added Setup/set_x64_2008.bat.
> > > > > > | 1 2 3 4 5 6 | @ECHO OFF SET ISNETFX2=True SET VCRUNTIME=2008 SET PLATFORM=x64 SET PROCESSOR=x64 |
Added Setup/set_x64_2010.bat.
> > > > > > | 1 2 3 4 5 6 | @ECHO OFF SET ISNETFX2=False SET VCRUNTIME=2010 SET PLATFORM=x64 SET PROCESSOR=x64 |
Added Setup/set_x86_2008.bat.
> > > > > > | 1 2 3 4 5 6 | @ECHO OFF SET ISNETFX2=True SET VCRUNTIME=2008 SET PLATFORM=Win32 SET PROCESSOR=x86 |
Added Setup/set_x86_2010.bat.
> > > > > > | 1 2 3 4 5 6 | @ECHO OFF SET ISNETFX2=False SET VCRUNTIME=2010 SET PLATFORM=Win32 SET PROCESSOR=x86 |