1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-06-10 17:21:47 +03:00

Add a mechanism to the configure script to allow certain client-specific builds to extend or override the configure options without having to edit sqlite-config.tcl, the goal being to reduce merge conflicts in those builds when updating sqlite-config.tcl from the canonical copy.

FossilOrigin-Name: bafab4ee5545c6cf6eafc5e352a7f25dfcbc7e58d4cc9064d05658c39de2af0d
This commit is contained in:
stephan
2025-03-22 16:14:34 +00:00
parent d877b56688
commit 515b51f635
3 changed files with 32 additions and 13 deletions

View File

@ -180,6 +180,8 @@ proc sqlite-configure {buildMode configScript} {
threadsafe=1 => {Disable mutexing}
with-tempstore:=no => {Use an in-RAM database for temporary tables: never,no,yes,always}
load-extension=1 => {Disable loading of external extensions}
# ^^^ one of the downstream custom builds overrides the load-extension default to 0, which
# confuses the --help text generator. https://github.com/msteveb/autosetup/issues/77
math=1 => {Disable math functions}
json=1 => {Disable JSON functions}
memsys5 => {Enable MEMSYS5}
@ -307,9 +309,9 @@ proc sqlite-configure {buildMode configScript} {
# out-implib: https://sqlite.org/forum/forumpost/0c7fc097b2
out-implib:=auto
=> {Enable use of --out-implib linker flag to generate an
"import library" for the DLL. The output's base name name is
specified by the value, with "auto" meaning to figure out a
name automatically. On some platforms this flag gets
"import library" for the DLL. The output's base name is
specified by this flag's value, with "auto" meaning to figure
out a name automatically. On some platforms this flag gets
automatically enabled if it is not provided. Use "none" to
explicitly disable this feature on such platforms.}
}
@ -353,9 +355,20 @@ proc sqlite-configure {buildMode configScript} {
(for build debugging)}
}
}
}; # $allOpts
}; # $allFlags
# Filter allOpts to create the set of [options] legal for this build
set allFlags [proj-strip-hash-comments $allFlags]
# ^^^ lappend of [sqlite-custom-flags] introduces weirdness if
# we delay [proj-strip-hash-comments] until after that.
if {[llength [info proc sqlite-custom-flags]] > 0} {
# sqlite-custom-flags is assumed to be imported via a
# client-specific import: autosetup/local.tcl, autosetup/*.auto,
# or autosetup/*/*.auto.
lappend allFlags sqlite-custom-flags [sqlite-custom-flags]
}
# Filter allFlags to create the set of [options] legal for this build
set opts {}
foreach {group XY} [subst -nobackslashes -nocommands \
[proj-strip-hash-comments $allFlags]] {
@ -1353,7 +1366,7 @@ proc sqlite-handle-load-extension {} {
if {$found} {
msg-result "Loadable extension support enabled."
} else {
msg-result "Disabling loadable extension support. Use --enable-load-extensions to enable them."
msg-result "Disabling loadable extension support. Use --enable-load-extension to enable them."
sqlite-add-feature-flag {-DSQLITE_OMIT_LOAD_EXTENSION=1}
}
return $found
@ -1579,6 +1592,12 @@ proc sqlite-handle-env-quirks {} {
sqlite-handle-dll-basename
sqlite-handle-out-implib
sqlite-handle-mac-cversion
if {[llength [info proc sqlite-handle-custom-flags]] > 0} {
# sqlite-handle-custom-flags is assumed to be imported via a
# client-specific import: autosetup/local.tcl, autosetup/*.auto,
# or autosetup/*/*.auto.
sqlite-handle-custom-flags
}
}
########################################################################

View File

@ -1,5 +1,5 @@
C Configure\sscript\sinternal\scleanups\sand\sre-orgs.\sNo\sfunctional\schanges.
D 2025-03-22T12:43:22.020
C Add\sa\smechanism\sto\sthe\sconfigure\sscript\sto\sallow\scertain\sclient-specific\sbuilds\sto\sextend\sor\soverride\sthe\sconfigure\soptions\swithout\shaving\sto\sedit\ssqlite-config.tcl,\sthe\sgoal\sbeing\sto\sreduce\smerge\sconflicts\sin\sthose\sbuilds\swhen\supdating\ssqlite-config.tcl\sfrom\sthe\scanonical\scopy.
D 2025-03-22T16:14:34.864
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@ -50,7 +50,7 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e
F autosetup/jimsh0.c a57c16e65dcffc9c76e496757cb3f7fb47e01ecbd1631a0a5e01751fc856f049
F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
F autosetup/proj.tcl 49faf960df88a374686234105def663dbfc297ab79c87686df0a0b973dd77018
F autosetup/sqlite-config.tcl 6e1dce27dfb69910bc28c3d3d4e33470fffc3c68f1d6a87799d34a2cc27f79dd
F autosetup/sqlite-config.tcl c7c8dc9b864f0212bda4a1dfd30777f3757ff12d7b18adce1420c0f717c4c284
F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
F configure 9a00b21dfd13757bbfb8d89b30660a89ec1f8f3a79402b8f9f9b6fc475c3303a x
F contrib/sqlitecon.tcl eb4c6578e08dd353263958da0dc620f8400b869a50d06e271ab0be85a51a08d3
@ -2216,8 +2216,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 6d2e57bd34c562a9cd618c178c3f92b869bf5420907057b8d2438b16a7f91d46
R 62beb2007ca701c04bb0d952df27e3be
P f619e40fb05d3e09dca2ad9d9bbf38c66b4b93dd3d4e7c2071db28e671ee6a9c
R f67c95dd2f17cb92eaf9fc59dd22ee04
U stephan
Z 0c3e870740ca71059ff9bfd7fd177692
Z 9a64dbd75b7ea845562f9902f8b1107a
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
f619e40fb05d3e09dca2ad9d9bbf38c66b4b93dd3d4e7c2071db28e671ee6a9c
bafab4ee5545c6cf6eafc5e352a7f25dfcbc7e58d4cc9064d05658c39de2af0d