- File www/build.wiki — part of check-in [f8c5d3f07e] at 2011-04-12 05:26:18 on branch trunk — Added documentation for building. (user: shaneh size: 6740)
Follow these steps to build a new release of System.Data.SQLite (SDS). Unless otherwise noted, all steps need to be done in the order specified.
You will need a Visual Studio 2008, 2010, or 2010 SP1 development environment for this build.
Thanks to the hard work of Joe Mistachkin, the build environment has been setup using modular solution and property files. SQLite.NET.2008.sln is the top level solution for VS2008 and SQLite.NET.2010.sln for VS2010. In general, files with 2008 in the name (eg. SQLite.Interop.2008.vcproj) or files ending in .vsprops are project and property files for the VS2008 solution. Files with 2010 in the name (eg. SQLite.Interop.2010.vcxproj) or files ending in .props are property and project files for the VS2010 solution. When making changes, you should make changes to both to keep them in sync.
You can either manually build the SDS using the supplied Visual Studio solutions, or follow the steps outlined in the Build Automation section below.
- We want to ship managed binaries that rely on the .NET Framework 2.0 SP2. The .NET Framework 2.0 is very widely deployed and binaries produced for it can also be referenced and used successfully from projects using the .NET Framework 4.0.
- We want to ship native binaries that rely on the Visual C++ 2008 SP1 Runtime.
- We do not want to ship the "monster DLL" (i.e. the "mixed-mode" System.Data.SQLite.dll that includes native and managed code). This will make it far simpler to maintain and ship the included core SQLite code (in the file "SQLite.Interop.dll").
- The machine used to prepare the official releases will have the .NET Framework 3.5 SP1 and the corresponding SDK installed.
- The machine used to prepare the official releases will have Inno Setup 5.4.2 or higher installed in "%ProgramFiles%\Inno Setup 5" or "%ProgramFiles(x86)%\Inno Setup 5" for an 64-bit machines. Alternatively, the InnoSetup directory may be included in the PATH environment variable.
- The string "<root>" represents the root of your source tree for System.Data.SQLite.
- Make sure the version information is correct for SQLite in the following
You'll need to update the SQLITE_MANIFEST_VERSION and SQLITE_RC_VERSION properties. This version number should track the release versions of SQLite (ie. 3.7.x).
- Make sure the version information is correct for System.Data.SQLite in
the following files:
You'll need to update the SQLITE_MANIFEST_VERSION and SQLITE_RC_VERSION properties in the .vsprops and .props files, the INTEROP_VERSION define in interop.h, and the VERSION environment variable in set_common.bat. This version number should track the release versions of the System.Data.SQLite packages (ie. 1.0.x).
- Make sure the "<root>\bin" and "<root>\obj" directories are completely free of all output files. In theory, you could simply delete these directories; however, the file "<root>\bin\test.exe." is presently in the source tree. I have no idea why; however, it's been there since 2005 [557ac901aff91f5da6bc7634ee1c75988ea9dec9].
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
- Enter the following command to build the binaries for Win32 (x86):
build.bat ReleaseNativeOnly Win32
- Make sure everything succeeds with no errors; the log file "%TEMP%\System.Data.SQLite.Build_ReleaseNativeOnly_Win32_Unknown.log" may be checked if any errors should occur.
- Enter the following command to build the binaries for x64:
build.bat ReleaseNativeOnly x64
- Make sure everything succeeds with no errors; the log file "%TEMP%\System.Data.SQLite.Build_ReleaseNativeOnly_x64_Unknown.log" may be checked if any errors should occur.
- Enter the following command to build the setup binaries for Win32 AND
x64 (unfortunately, it is not possible to build the setup using the
InnoSetup GUI. It must be done using the provided command line tools due to its dynamic
- Make sure everything succeeds with no errors. InnoSetup should produce
"success" messages very similar to the following:
Successful compile (X.XXX sec). Resulting Setup program filename is:
build.bat is the top level batch file for build automation and should be called with the configuration and platform to build:
build.bat <CONFIGURATION> <PLATFORM>
ROOT (eg. <pwd>\..)
CONFIGURATION (eg. ReleaseNativeOnly)
PLATFORM (eg. Win32)
NETFX35ONLY=1 - set from set_ReleaseNativeOnly.bat
YEAR=2008 - set from set_ReleaseNativeOnly.bat
YEARS=%YEAR% - set from set_ReleaseNativeOnly.bat
YEAR (eg. 2008)
FRAMEWORKDIR (eg. %windir%\Microsoft.NET\Framework\v3.5)
At this point, several variables are setup for the call to MSBuild
SOLUTION (eg. .\SQLite.NET.2008.sln)
TARGET (eg. Rebuild)