System.Data.SQLite
Check-in [9033b5edff]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More readability improvements to build docs.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 9033b5edff6e38749759e37ae415351478688ae8
User & Date: mistachkin 2011-07-10 14:01:18
Context
2011-07-11
19:40
Refactor the logging interface to be thread-safe and 'self-initializing'. Stop ignoring errors returned by sqlite3_config(SQLITE_CONFIG_LOG). Provide a default log handler and allow it to be added/removed dynamically. Allow logging to be temporarily enabled/disabled without modifying the underlying delegates. check-in: 1d955a6031 user: mistachkin tags: trunk
2011-07-10
14:01
More readability improvements to build docs. check-in: 9033b5edff user: mistachkin tags: trunk
13:42
Make build commands easier to read. check-in: 2aac150c82 user: mistachkin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to www/build.wiki.

15
16
17
18
19
20
21
22
23
24
25
26
27

28
29
30
31
32
33
34
..
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
...
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
...
185
186
187
188
189
190
191

192
193
194
195
196
197
198
...
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233

<p>
  The new build system has been setup using modular solution, project, and
  property files.
</p>

<p>
  In general, files with 2008 in the name (e.g. SQLite.Interop.2008.vcproj) or
  files ending in .vsprops are project and property files for the Visual Studio
  2008 solution.  Files with 2010 in the name (e.g. SQLite.Interop.2010.vcxproj)
  or files ending in .props are property and project files for the Visual Studio
  2010 solution.  When making changes, you should make changes to both to keep
  them in sync.

</p>

<p>
  You can either [./build.wiki#manual | manually build] the System.Data.SQLite
  binaries using one of the supplied Visual Studio solutions or follow the steps
  outlined in the [./build.wiki#automated | Automated Build] section below.
</p>
................................................................................
  </li>

  <li>
    We want to ship native binaries that rely on the Visual C++ 2008 Runtime.
  </li>

  <li>
    We want to ship the separate managed-only System.Data.SQLite assembly and
    the SQLite.Interop.dll native library.  This will make it easier to maintain
    and deploy the included core SQLite code (in the &quot;SQLite.Interop.dll&quot;
    native library).  We also want to ship the &quot;monster DLL&quot; (i.e. the

    &quot;mixed-mode&quot; System.Data.SQLite assembly that includes all the
    necessary native and managed code).  This will make it easier for developers
    that wish to register the assembly in the Global Assembly Cache (GAC).
  </li>

  <li>
    The machine used to prepare the official releases will have the
    [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7 | .NET Framework 3.5 SP1]

    and the corresponding [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC | SDK]
    installed.
  </li>

  <li>
    The machine used to prepare the official releases will have
    [http://www.jrsoftware.org/isdl.php | Inno Setup 5.4.2] or higher installed
    in &quot;%ProgramFiles%\Inno Setup 5&quot; or &quot;%ProgramFiles(x86)%\Inno
    Setup 5&quot; for an 64-bit machines.  Alternatively, the InnoSetup
    directory may be included in the PATH environment variable.
  </li>

  <li>
    The string &quot;&lt;root&gt;&quot; represents the root of your source tree
    for System.Data.SQLite.
  </li>

  <li>
    The string &quot;&lt;year&gt;&quot; represents the version of Visual Studio
    being used (e.g. 2008).
  </li>
</ol>
................................................................................
      <li>&lt;root&gt;\System.Data.SQLite\AssemblyInfo.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite\SQLite3.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite\UnsafeNativeMethods.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite.Linq\AssemblyInfo.cs</li>
    </ul>

    You'll need to update the INTEROP_BUILD_NUMBER, INTEROP_MANIFEST_VERSION,
    and INTEROP_RC_VERSION properties in the .vsprops and .props files, and the

    INTEROP_VERSION define in interop.h.  This version number should track the
    release versions of the System.Data.SQLite packages (i.e. [./news.wiki | 1.0.x]).
  </li>
</ol>

<a name="manual"></a>
<h2>Manual Build</h2>

<ol>
  <li>
    Complete the steps outlined in the [./build.wiki#all | All Builds] section
    (above).
  </li>


  <li>Open the appropriate solution for your build platform.

    <ul>
      <li>

        SQLite.NET.2008.sln is the top-level solution primarily designed for use
        with Visual Studio 2008 in the IDE; however, it may also be used from





        the command line with MSBuild 3.5.
      </li>

      <li>
        SQLite.NET.2010.sln is the top-level solution primarily designed for use
        with Visual Studio 2010 in the IDE; however, it may also be used from
        the command line with MSBuild 4.0.
      </li>

      <li>
        SQLite.NET.2008.MSBuild.sln is the top-level solution primarily designed
        for use with MSBuild 3.5 on the command line; however, it may also be
        used from the Visual Studio 2008 IDE.
      </li>

      <li>
        SQLite.NET.2010.MSBuild.sln is the top-level solution primarily designed
        for use with MSBuild 4.0 on the command line; however, it may also be
        used from the Visual Studio 2010 IDE.
      </li>
    </ul>
  </li>

  <li>
    Select the desired solution configuration (e.g. ReleaseNativeOnly) and and
    solution platform (e.g. x64), then &quot;Build->Rebuild Solution&quot;.
................................................................................
  <li>
    Make sure the &quot;&lt;root&gt;\bin&quot; and &quot;&lt;root&gt;\obj&quot;
    directories are completely free of all output files.  In theory, you should
    be able to simply delete these directories.
  </li>

  <li>Open a normal command prompt window with &quot;cmd.exe&quot;.</li>

  <li>Change the current directory to &quot;&lt;root&gt;\Setup&quot;.</li>

  <li>
    Enter the following command to build the binaries for Win32 (x86):
    <b>build.bat ReleaseNativeOnly Win32</b><br /><i>You may need to enter the
    command &quot;<b>setenv /x86</b>&quot; first if you are using a
    &quot;Windows SDK Command Prompt&quot; or &quot;Visual Studio Command
................................................................................
    &quot;%TEMP%\System.Data.SQLite.Build_ReleaseNativeOnly_x64_&lt;year&gt;_Unknown.log&quot;
    may be checked if any errors should occur.
  </li>

  <li>
    Enter the following command to build the setup binaries for all supported
    build configurations (unfortunately, it is not possible to build the setup
    using the InnoSetup IDE.  It must be done using the provided command line
    tools due to its highly dynamic nature): <b>bake_all.bat</b>
  </li>

  <li>
    Make sure everything succeeds with no errors.  InnoSetup should produce
    &quot;success&quot; messages very similar to the following: Successful
    compile (X.XXX sec). Resulting Setup program filename is: abc
  </li>
</ol>







|
|
|
|
|
|
>







 







|
|
|
|
>
|
|
|





>
|







|





|







 







|
>
|
|












>
|
>


>
|
|
>
>
>
>
>
|



|
|
|



<
<
<
<
<
<
|
|
|







 







>







 







|
|



|
|
|


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
..
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
...
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
173
174
175
176
...
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
...
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240

<p>
  The new build system has been setup using modular solution, project, and
  property files.
</p>

<p>
  In general, files with 2008 in the name (e.g.
  &quot;SQLite.Interop.2008.vcproj&quot;) or files ending in
  &quot;.vsprops&quot; are project and property files for the Visual Studio 2008
  solution.  Files with 2010 in the name (e.g.
  &quot;SQLite.Interop.2010.vcxproj&quot;) or files ending in &quot;.props&quot;
  are project and property files for the Visual Studio 2010 solution.  When
  making changes, you should make changes to both to keep them in sync.
</p>

<p>
  You can either [./build.wiki#manual | manually build] the System.Data.SQLite
  binaries using one of the supplied Visual Studio solutions or follow the steps
  outlined in the [./build.wiki#automated | Automated Build] section below.
</p>
................................................................................
  </li>

  <li>
    We want to ship native binaries that rely on the Visual C++ 2008 Runtime.
  </li>

  <li>
    We want to ship the separate managed-only &quot;System.Data.SQLite.dll&quot;
    assembly and the &quot;SQLite.Interop.dll&quot; native library.  This will
    make it easier to maintain and deploy the included core SQLite code (in the
    &quot;SQLite.Interop.dll&quot; native library).  We also want to ship the
    &quot;monster DLL&quot; (i.e. the mixed-mode
    &quot;System.Data.SQLite.dll&quot; assembly that includes all the necessary
    native and managed code).  This will make it easier for developers that wish
    to register the assembly in the Global Assembly Cache (GAC).
  </li>

  <li>
    The machine used to prepare the official releases will have the
    [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7 | .NET Framework 3.5 SP1]
    and the corresponding
    [http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC | SDK]
    installed.
  </li>

  <li>
    The machine used to prepare the official releases will have
    [http://www.jrsoftware.org/isdl.php | Inno Setup 5.4.2] or higher installed
    in &quot;%ProgramFiles%\Inno Setup 5&quot; or &quot;%ProgramFiles(x86)%\Inno
    Setup 5&quot; for an 64-bit machines.  Alternatively, the Inno Setup
    directory may be included in the PATH environment variable.
  </li>

  <li>
    The string &quot;&lt;root&gt;&quot; represents the root of your source tree
    for the System.Data.SQLite project.
  </li>

  <li>
    The string &quot;&lt;year&gt;&quot; represents the version of Visual Studio
    being used (e.g. 2008).
  </li>
</ol>
................................................................................
      <li>&lt;root&gt;\System.Data.SQLite\AssemblyInfo.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite\SQLite3.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite\UnsafeNativeMethods.cs</li>
      <li>&lt;root&gt;\System.Data.SQLite.Linq\AssemblyInfo.cs</li>
    </ul>

    You'll need to update the INTEROP_BUILD_NUMBER, INTEROP_MANIFEST_VERSION,
    and INTEROP_RC_VERSION properties in the &quot;.vsprops&quot; and
    &quot;.props&quot; files, and the INTEROP_VERSION define in
    &quot;interop.h&quot;.  This version number should track the release
    versions of the System.Data.SQLite packages (i.e. [./news.wiki | 1.0.x]).
  </li>
</ol>

<a name="manual"></a>
<h2>Manual Build</h2>

<ol>
  <li>
    Complete the steps outlined in the [./build.wiki#all | All Builds] section
    (above).
  </li>

  <li>
    Open the appropriate solution for your build platform.

    <ul>
      <li>
        The &quot;SQLite.NET.2008.sln&quot; file is the top-level solution
        primarily designed for use with Visual Studio 2008 in the IDE; however,
        it may also be used from the command line with MSBuild 3.5.
      </li>

      <li>
        The &quot;SQLite.NET.2010.sln&quot; file is the top-level solution
        primarily designed for use with Visual Studio 2010 in the IDE; however,
        it may also be used from the command line with MSBuild 4.0.
      </li>

      <li>
        The &quot;SQLite.NET.2008.MSBuild.sln&quot; file is the top-level
        solution primarily designed for use with MSBuild 3.5 on the command
        line; however, it may also be used from the Visual Studio 2008 IDE.
      </li>

      <li>






        The &quot;SQLite.NET.2010.MSBuild.sln&quot; file is the top-level
        solution primarily designed for use with MSBuild 4.0 on the command
        line; however, it may also be used from the Visual Studio 2010 IDE.
      </li>
    </ul>
  </li>

  <li>
    Select the desired solution configuration (e.g. ReleaseNativeOnly) and and
    solution platform (e.g. x64), then &quot;Build->Rebuild Solution&quot;.
................................................................................
  <li>
    Make sure the &quot;&lt;root&gt;\bin&quot; and &quot;&lt;root&gt;\obj&quot;
    directories are completely free of all output files.  In theory, you should
    be able to simply delete these directories.
  </li>

  <li>Open a normal command prompt window with &quot;cmd.exe&quot;.</li>

  <li>Change the current directory to &quot;&lt;root&gt;\Setup&quot;.</li>

  <li>
    Enter the following command to build the binaries for Win32 (x86):
    <b>build.bat ReleaseNativeOnly Win32</b><br /><i>You may need to enter the
    command &quot;<b>setenv /x86</b>&quot; first if you are using a
    &quot;Windows SDK Command Prompt&quot; or &quot;Visual Studio Command
................................................................................
    &quot;%TEMP%\System.Data.SQLite.Build_ReleaseNativeOnly_x64_&lt;year&gt;_Unknown.log&quot;
    may be checked if any errors should occur.
  </li>

  <li>
    Enter the following command to build the setup binaries for all supported
    build configurations (unfortunately, it is not possible to build the setup
    using the Inno Setup IDE.  It must be done using the provided command line
    tools due to its highly dynamic nature):<b>bake_all.bat</b>
  </li>

  <li>
    Make sure everything succeeds with no errors.  Inno Setup should produce
    &quot;success&quot; messages very similar to the following: <b>Successful
    compile (X.XXX sec). Resulting Setup program filename is: abc</b>
  </li>
</ol>