Skip to content

Commit a4df8d6

Browse files
committed
Snapshot of upstream SQLite 3.45.0
1 parent abe2103 commit a4df8d6

File tree

172 files changed

+15300
-6941
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+15300
-6941
lines changed

Makefile.in

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,7 @@ TESTSRC += \
447447
$(TOP)/ext/misc/percentile.c \
448448
$(TOP)/ext/misc/prefixes.c \
449449
$(TOP)/ext/misc/qpvtab.c \
450+
$(TOP)/ext/misc/randomjson.c \
450451
$(TOP)/ext/misc/regexp.c \
451452
$(TOP)/ext/misc/remember.c \
452453
$(TOP)/ext/misc/series.c \
@@ -600,6 +601,7 @@ SHELL_OPT += -DSQLITE_ENABLE_DBPAGE_VTAB
600601
SHELL_OPT += -DSQLITE_ENABLE_DBSTAT_VTAB
601602
SHELL_OPT += -DSQLITE_ENABLE_BYTECODE_VTAB
602603
SHELL_OPT += -DSQLITE_ENABLE_OFFSET_SQL_FUNC
604+
SHELL_OPT += -DSQLITE_STRICT_SUBTYPE=1
603605
FUZZERSHELL_OPT =
604606
FUZZCHECK_OPT += -I$(TOP)/test
605607
FUZZCHECK_OPT += -I$(TOP)/ext/recover
@@ -630,14 +632,17 @@ FUZZCHECK_OPT += \
630632
-DSQLITE_MAX_MMAP_SIZE=0 \
631633
-DSQLITE_OMIT_LOAD_EXTENSION \
632634
-DSQLITE_PRINTF_PRECISION_LIMIT=1000 \
633-
-DSQLITE_PRIVATE=""
635+
-DSQLITE_PRIVATE="" \
636+
-DSQLITE_STRICT_SUBTYPE=1 \
637+
-DSQLITE_STATIC_RANDOMJSON
634638

635639
FUZZCHECK_SRC += $(TOP)/test/fuzzcheck.c
636640
FUZZCHECK_SRC += $(TOP)/test/ossfuzz.c
637641
FUZZCHECK_SRC += $(TOP)/test/fuzzinvariants.c
638642
FUZZCHECK_SRC += $(TOP)/ext/recover/dbdata.c
639643
FUZZCHECK_SRC += $(TOP)/ext/recover/sqlite3recover.c
640644
FUZZCHECK_SRC += $(TOP)/test/vt02.c
645+
FUZZCHECK_SRC += $(TOP)/ext/misc/randomjson.c
641646
DBFUZZ_OPT =
642647
ST_OPT = -DSQLITE_OS_KV_OPTIONAL
643648

@@ -710,6 +715,21 @@ fuzzcheck-asan$(TEXE): $(FUZZCHECK_SRC) sqlite3.c sqlite3.h $(FUZZCHECK_DEP)
710715
fuzzcheck-ubsan$(TEXE): $(FUZZCHECK_SRC) sqlite3.c sqlite3.h $(FUZZCHECK_DEP)
711716
$(LTLINK) -o $@ -fsanitize=undefined $(FUZZCHECK_OPT) $(FUZZCHECK_SRC) sqlite3.c $(TLIBS)
712717

718+
# Usage: FUZZDB=filename make run-fuzzcheck
719+
#
720+
# Where filename is a fuzzcheck database, this target builds and runs
721+
# fuzzcheck, fuzzcheck-asan, and fuzzcheck-ubsan on that database.
722+
#
723+
# FUZZDB can be a glob pattern of two or more databases. Example:
724+
#
725+
# FUZZDB=test/fuzzdata*.db make run-fuzzcheck
726+
#
727+
run-fuzzcheck: fuzzcheck$(TEXE) fuzzcheck-asan$(TEXE) fuzzcheck-ubsan$(TEXE)
728+
@if test "$(FUZZDB)" = ""; then echo 'ERROR: No FUZZDB specified. Rerun with FUZZDB=filename'; exit 1; fi
729+
./fuzzcheck$(TEXE) --spinner $(FUZZDB)
730+
./fuzzcheck-asan$(TEXE) --spinner $(FUZZDB)
731+
./fuzzcheck-ubsan$(TEXE) --spinner $(FUZZDB)
732+
713733
ossshell$(TEXE): $(TOP)/test/ossfuzz.c $(TOP)/test/ossshell.c sqlite3.c sqlite3.h
714734
$(LTLINK) -o $@ $(FUZZCHECK_OPT) $(TOP)/test/ossshell.c \
715735
$(TOP)/test/ossfuzz.c sqlite3.c $(TLIBS)
@@ -1135,21 +1155,21 @@ keywordhash.h: $(TOP)/tool/mkkeywordhash.c
11351155
# Source files that go into making shell.c
11361156
SHELL_SRC = \
11371157
$(TOP)/src/shell.c.in \
1138-
$(TOP)/ext/misc/appendvfs.c \
1158+
$(TOP)/ext/consio/console_io.c \
1159+
$(TOP)/ext/consio/console_io.h \
1160+
$(TOP)/ext/misc/appendvfs.c \
11391161
$(TOP)/ext/misc/completion.c \
1140-
$(TOP)/ext/consio/console_io.c \
1141-
$(TOP)/ext/consio/console_io.h \
1142-
$(TOP)/ext/misc/decimal.c \
1143-
$(TOP)/ext/misc/basexx.c \
1144-
$(TOP)/ext/misc/base64.c \
1145-
$(TOP)/ext/misc/base85.c \
1162+
$(TOP)/ext/misc/decimal.c \
1163+
$(TOP)/ext/misc/basexx.c \
1164+
$(TOP)/ext/misc/base64.c \
1165+
$(TOP)/ext/misc/base85.c \
11461166
$(TOP)/ext/misc/fileio.c \
1147-
$(TOP)/ext/misc/ieee754.c \
1148-
$(TOP)/ext/misc/regexp.c \
1149-
$(TOP)/ext/misc/series.c \
1167+
$(TOP)/ext/misc/ieee754.c \
1168+
$(TOP)/ext/misc/regexp.c \
1169+
$(TOP)/ext/misc/series.c \
11501170
$(TOP)/ext/misc/shathree.c \
11511171
$(TOP)/ext/misc/sqlar.c \
1152-
$(TOP)/ext/misc/uint.c \
1172+
$(TOP)/ext/misc/uint.c \
11531173
$(TOP)/ext/expert/sqlite3expert.c \
11541174
$(TOP)/ext/expert/sqlite3expert.h \
11551175
$(TOP)/ext/misc/zipfile.c \
@@ -1158,7 +1178,7 @@ SHELL_SRC = \
11581178
$(TOP)/ext/recover/dbdata.c \
11591179
$(TOP)/ext/recover/sqlite3recover.c \
11601180
$(TOP)/ext/recover/sqlite3recover.h \
1161-
$(TOP)/src/test_windirent.c
1181+
$(TOP)/src/test_windirent.c
11621182

11631183
shell.c: $(SHELL_SRC) $(TOP)/tool/mkshellc.tcl has_tclsh84
11641184
$(TCLSH_CMD) $(TOP)/tool/mkshellc.tcl >shell.c
@@ -1276,6 +1296,8 @@ TESTFIXTURE_FLAGS += -DSQLITE_ENABLE_STMTVTAB
12761296
TESTFIXTURE_FLAGS += -DSQLITE_ENABLE_DBPAGE_VTAB
12771297
TESTFIXTURE_FLAGS += -DSQLITE_ENABLE_BYTECODE_VTAB
12781298
TESTFIXTURE_FLAGS += -DSQLITE_CKSUMVFS_STATIC
1299+
TESTFIXTURE_FLAGS += -DSQLITE_STATIC_RANDOMJSON
1300+
TESTFIXTURE_FLAGS += -DSQLITE_STRICT_SUBTYPE=1
12791301

12801302
TESTFIXTURE_SRC0 = $(TESTSRC2) libsqlite3.la
12811303
TESTFIXTURE_SRC1 = sqlite3.c

Makefile.msc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,6 +1584,7 @@ TESTEXT = \
15841584
$(TOP)\ext\misc\percentile.c \
15851585
$(TOP)\ext\misc\prefixes.c \
15861586
$(TOP)\ext\misc\qpvtab.c \
1587+
$(TOP)\ext\misc\randomjson.c \
15871588
$(TOP)\ext\misc\regexp.c \
15881589
$(TOP)\ext\misc\remember.c \
15891590
$(TOP)\ext\misc\series.c \
@@ -1692,6 +1693,7 @@ SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1
16921693
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC=1
16931694
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1
16941695
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_STMT_SCANSTATUS=1
1696+
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_STRICT_SUBTYPE=1
16951697
!ENDIF
16961698

16971699
# <<mark>>
@@ -1728,6 +1730,8 @@ FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_MAX_MMAP_SIZE=0
17281730
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_OMIT_LOAD_EXTENSION
17291731
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRINTF_PRECISION_LIMIT=1000
17301732
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRIVATE=""
1733+
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_STRICT_SUBTYPE=1
1734+
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_STATIC_RANDOMJSON
17311735

17321736
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_MAX_MEMORY=50000000
17331737
FUZZCHECK_OPTS = $(FUZZCHECK_OPTS) -DSQLITE_PRINTF_PRECISION_LIMIT=1000
@@ -1744,6 +1748,7 @@ FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\fuzzinvariants.c
17441748
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\test\vt02.c
17451749
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\dbdata.c
17461750
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\recover\sqlite3recover.c
1751+
FUZZCHECK_SRC = $(FUZZCHECK_SRC) $(TOP)\ext\misc\randomjson.c
17471752

17481753
OSSSHELL_SRC = $(TOP)\test\ossshell.c $(TOP)\test\ossfuzz.c
17491754
DBFUZZ_COMPILE_OPTS = -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION
@@ -1823,8 +1828,8 @@ $(SQLITE3EXE): shell.c $(SHELL_CORE_DEP) $(LIBRESOBJS) $(SHELL_CORE_SRC) $(SQLIT
18231828
/link $(SQLITE3EXEPDB) $(LDFLAGS) $(LTLINKOPTS) $(SHELL_LINK_OPTS) $(LTLIBPATHS) $(LIBRESOBJS) $(LIBREADLINE) $(LTLIBS) $(TLIBS)
18241829

18251830
# <<mark>>
1826-
sqldiff.exe: $(TOP)\tool\sqldiff.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
1827-
$(LTLINK) $(NO_WARN) $(TOP)\tool\sqldiff.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
1831+
sqldiff.exe: $(TOP)\tool\sqldiff.c $(TOP)\ext\consio\console_io.h $(TOP)\ext\consio\console_io.c $(SQLITE3C) $(SQLITE3H) $(LIBRESOBJS)
1832+
$(LTLINK) $(NO_WARN) -I$(TOP)\ext\consio $(TOP)\tool\sqldiff.c $(TOP)\ext\consio\console_io.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS) $(LIBRESOBJS)
18281833

18291834
dbhash.exe: $(TOP)\tool\dbhash.c $(SQLITE3C) $(SQLITE3H)
18301835
$(LTLINK) $(NO_WARN) $(TOP)\tool\dbhash.c $(SQLITE3C) /link $(LDFLAGS) $(LTLINKOPTS)
@@ -2433,6 +2438,8 @@ TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_DBPAGE_VTAB=1
24332438
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_ENABLE_BYTECODE_VTAB=1
24342439
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_CKSUMVFS_STATIC=1
24352440
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) $(TEST_CCONV_OPTS)
2441+
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_STATIC_RANDOMJSON
2442+
TESTFIXTURE_FLAGS = $(TESTFIXTURE_FLAGS) -DSQLITE_STRICT_SUBTYPE=1
24362443

24372444
TESTFIXTURE_SRC0 = $(TESTEXT) $(TESTSRC2)
24382445
TESTFIXTURE_SRC1 = $(TESTEXT) $(SQLITE3C)
@@ -2543,7 +2550,7 @@ smoketest: $(TESTPROGS)
25432550
shelltest: $(TESTPROGS)
25442551
.\testfixture.exe $(TOP)\test\permutations.test shell
25452552

2546-
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in $(SQLITE_TCL_DEP)
2553+
sqlite3_analyzer.c: $(SQLITE3C) $(SQLITE3H) $(TOP)\src\tclsqlite.c $(TOP)\tool\spaceanal.tcl $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in $(TOP)\ext\consio\console_io.h $(TOP)\ext\consio\console_io.c $(SQLITE_TCL_DEP)
25472554
$(TCLSH_CMD) $(TOP)\tool\mkccode.tcl $(TOP)\tool\sqlite3_analyzer.c.in > $@
25482555

25492556
sqlite3_analyzer.exe: sqlite3_analyzer.c $(LIBRESOBJS)

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ extension and only later escaped to the wild as an independent library.)
159159

160160
Test scripts and programs are found in the **test/** subdirectory.
161161
Additional test code is found in other source repositories.
162-
See [How SQLite Is Tested](http://www.sqlite.org/testing.html) for
162+
See [How SQLite Is Tested](https://www.sqlite.org/testing.html) for
163163
additional information.
164164

165165
The **ext/** subdirectory contains code for extensions. The
@@ -183,7 +183,7 @@ manually-edited files and automatically-generated files.
183183

184184
The SQLite interface is defined by the **sqlite3.h** header file, which is
185185
generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION. The
186-
[Tcl script](http://www.tcl.tk) at tool/mksqlite3h.tcl does the conversion.
186+
[Tcl script](https://www.tcl.tk) at tool/mksqlite3h.tcl does the conversion.
187187
The manifest.uuid file contains the SHA3 hash of the particular check-in
188188
and is used to generate the SQLITE\_SOURCE\_ID macro. The VERSION file
189189
contains the current SQLite version number. The sqlite3.h header is really
@@ -250,14 +250,14 @@ individual source file exceeds 32K lines in length.
250250
## How It All Fits Together
251251

252252
SQLite is modular in design.
253-
See the [architectural description](http://www.sqlite.org/arch.html)
253+
See the [architectural description](https://www.sqlite.org/arch.html)
254254
for details. Other documents that are useful in
255255
(helping to understand how SQLite works include the
256-
[file format](http://www.sqlite.org/fileformat2.html) description,
257-
the [virtual machine](http://www.sqlite.org/opcode.html) that runs
256+
[file format](https://www.sqlite.org/fileformat2.html) description,
257+
the [virtual machine](https://www.sqlite.org/opcode.html) that runs
258258
prepared statements, the description of
259-
[how transactions work](http://www.sqlite.org/atomiccommit.html), and
260-
the [overview of the query planner](http://www.sqlite.org/optoverview.html).
259+
[how transactions work](https://www.sqlite.org/atomiccommit.html), and
260+
the [overview of the query planner](https://www.sqlite.org/optoverview.html).
261261

262262
Years of effort have gone into optimizing SQLite, both
263263
for small size and high performance. And optimizations tend to result in
@@ -353,7 +353,7 @@ hidden by also modifying the makefiles.
353353

354354
## Contacts
355355

356-
The main SQLite website is [http:/sqlite.org/](http://sqlite.org/)
356+
The main SQLite website is [https://sqlite.org/](https://sqlite.org/)
357357
with geographically distributed backups at
358-
[http://www2.sqlite.org/](http://www2.sqlite.org) and
359-
[http://www3.sqlite.org/](http://www3.sqlite.org).
358+
[https://www2.sqlite.org/](https://www2.sqlite.org) and
359+
[https://www3.sqlite.org/](https://www3.sqlite.org).

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.44.2
1+
3.45.0

autoconf/Makefile.msc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,7 @@ SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS=1
990990
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_OFFSET_SQL_FUNC=1
991991
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION=1
992992
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_ENABLE_STMT_SCANSTATUS=1
993+
SHELL_COMPILE_OPTS = $(SHELL_COMPILE_OPTS) -DSQLITE_STRICT_SUBTYPE=1
993994
!ENDIF
994995

995996

autoconf/tea/configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dnl to configure the system for the local environment.
1919
# so that we create the export library with the dll.
2020
#-----------------------------------------------------------------------
2121

22-
AC_INIT([sqlite],[3.44.2])
22+
AC_INIT([sqlite],[3.45.0])
2323

2424
#--------------------------------------------------------------------
2525
# Call TEA_INIT as the first TEA_ macro to set up initial vars.

configure

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh
22
# Guess values for system-dependent variables and create Makefiles.
3-
# Generated by GNU Autoconf 2.69 for sqlite 3.44.2.
3+
# Generated by GNU Autoconf 2.69 for sqlite 3.45.0.
44
#
55
#
66
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -726,8 +726,8 @@ MAKEFLAGS=
726726
# Identity of this package.
727727
PACKAGE_NAME='sqlite'
728728
PACKAGE_TARNAME='sqlite'
729-
PACKAGE_VERSION='3.44.2'
730-
PACKAGE_STRING='sqlite 3.44.2'
729+
PACKAGE_VERSION='3.45.0'
730+
PACKAGE_STRING='sqlite 3.45.0'
731731
PACKAGE_BUGREPORT=''
732732
PACKAGE_URL=''
733733

@@ -1472,7 +1472,7 @@ if test "$ac_init_help" = "long"; then
14721472
# Omit some internal or obsolete options to make the list less imposing.
14731473
# This message is too long to be a string in the A/UX 3.1 sh.
14741474
cat <<_ACEOF
1475-
\`configure' configures sqlite 3.44.2 to adapt to many kinds of systems.
1475+
\`configure' configures sqlite 3.45.0 to adapt to many kinds of systems.
14761476
14771477
Usage: $0 [OPTION]... [VAR=VALUE]...
14781478
@@ -1537,7 +1537,7 @@ fi
15371537

15381538
if test -n "$ac_init_help"; then
15391539
case $ac_init_help in
1540-
short | recursive ) echo "Configuration of sqlite 3.44.2:";;
1540+
short | recursive ) echo "Configuration of sqlite 3.45.0:";;
15411541
esac
15421542
cat <<\_ACEOF
15431543
@@ -1668,7 +1668,7 @@ fi
16681668
test -n "$ac_init_help" && exit $ac_status
16691669
if $ac_init_version; then
16701670
cat <<\_ACEOF
1671-
sqlite configure 3.44.2
1671+
sqlite configure 3.45.0
16721672
generated by GNU Autoconf 2.69
16731673
16741674
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2087,7 +2087,7 @@ cat >config.log <<_ACEOF
20872087
This file contains any messages produced by compilers while
20882088
running configure, to aid debugging if configure makes a mistake.
20892089
2090-
It was created by sqlite $as_me 3.44.2, which was
2090+
It was created by sqlite $as_me 3.45.0, which was
20912091
generated by GNU Autoconf 2.69. Invocation command line was
20922092
20932093
$ $0 $@
@@ -12481,7 +12481,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
1248112481
# report actual input values of CONFIG_FILES etc. instead of their
1248212482
# values after options handling.
1248312483
ac_log="
12484-
This file was extended by sqlite $as_me 3.44.2, which was
12484+
This file was extended by sqlite $as_me 3.45.0, which was
1248512485
generated by GNU Autoconf 2.69. Invocation command line was
1248612486
1248712487
CONFIG_FILES = $CONFIG_FILES
@@ -12547,7 +12547,7 @@ _ACEOF
1254712547
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1254812548
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1254912549
ac_cs_version="\\
12550-
sqlite config.status 3.44.2
12550+
sqlite config.status 3.45.0
1255112551
configured by $0, generated by GNU Autoconf 2.69,
1255212552
with options \\"\$ac_cs_config\\"
1255312553

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
# you don't need (for example BLT) by erasing or commenting out
7575
# the corresponding code.
7676
#
77-
AC_INIT([sqlite],[m4_esyscmd(cat VERSION | tr -d '\n')])
77+
AC_INIT([sqlite],m4_esyscmd(cat VERSION | tr -d '\n'))
7878

7979
dnl Make sure the local VERSION file matches this configure script
8080
sqlite_version_sanity_check=`cat $srcdir/VERSION | tr -d '\n'`

doc/compile-for-windows.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Notes On Compiling SQLite On Windows 11
22

33
Here are step-by-step instructions on how to build SQLite from
4-
canonical source on a new Windows 11 PC, as of 2023-08-16:
4+
canonical source on a new Windows 11 PC, as of 2023-11-01:
55

66
1. Install Microsoft Visual Studio. The free "community edition"
77
will work fine. Do a standard install for C++ development.
@@ -84,6 +84,18 @@ following minor changes:
8484
<li> `set PATH=c:\tcl32\bin;%PATH%`
8585
</ul>
8686

87+
## Building a DLL
88+
89+
The command the developers use for building the deliverable DLL on the
90+
[download page](https://sqlite.org/download.html) is as follows:
91+
92+
> ~~~~
93+
nmake /f Makefile.msc sqlite3.dll USE_NATIVE_LIBPATHS=1 "OPTS=-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 -DSQLITE_ENABLE_SERIALIZE=1 -DSQLITE_ENABLE_MATH_FUNCTIONS=1"
94+
~~~~
95+
96+
That command generates both the sqlite3.dll and sqlite3.def files. The same
97+
command works for both 32-bit and 64-bit builds.
98+
8799
## Statically Linking The TCL Library
88100

89101
Some utility programs associated with SQLite need to be linked

0 commit comments

Comments
 (0)