0
0
mirror of https://github.com/sqlite/sqlite.git synced 2024-11-24 08:07:42 +01:00

Extend the set of --flags which get cleared/unset when using --with-wasi-sdk.

FossilOrigin-Name: 2a2419ef742c9f37c32be04d417337c1fa22503305d2df154fa38b2b69eae943
This commit is contained in:
stephan 2024-11-07 16:59:15 +00:00
parent 6e6820148a
commit ee9950d09b
5 changed files with 65 additions and 43 deletions

View File

@ -73,7 +73,7 @@ set DUMP_DEFINES_JSON ""; #./config.defines.json
# --disable-readline ==> boolean false
#
# Trying to pass --readline or --readline=1 or --readline=0 will
# result in an "unrecognized option" error, despite the the options
# result in an "unrecognized option" error, despite the the [options]
# call listing the flag as "readline".
#
# The behavior described above can lead lead to some confusion when
@ -91,7 +91,7 @@ set DUMP_DEFINES_JSON ""; #./config.defines.json
# --enable-FLAG
#
# Non-boolean flags, in contrast, use the names specifically given to
# them in the 'options' invocation. e.g. "with-tcl" is the --with-tcl
# them in the [options] invocation. e.g. "with-tcl" is the --with-tcl
# flag. Autosetup may, however, choose to automatically alter the help
# text, as demonstrated here:
#
@ -130,7 +130,7 @@ set flags {
# </build-modes>
# <lib-feature>
threadsafe=1 => {Disable mutexing}
with-tempstore:=no => {Use an in-ram database for temporary tables: never,no,yes,always}
with-tempstore:=no => {Use an in-RAM database for temporary tables: never,no,yes,always}
largefile=1 => {Disable large file support}
load-extension=1 => {Disable loading of external extensions}
math=1 => {Disable math functions}
@ -251,12 +251,12 @@ if {1} {
set isCrossCompiling [proj-is-cross-compiling]
define OPT_FEATURE_FLAGS {} ; # -DSQLITE_OMIT/ENABLE flags.
define OPT_SHELL {} ; # CFLAGS for the sqlite3 CLI app
define OPT_SHELL {} ; # Feature-related CFLAGS for the sqlite3 CLI app
########################################################################
# Adds $args, if not empty, to OPT_FEATURE_FLAGS.
# If the first arg is -shell then it strips that arg
# and passes the remaining args th sqlite-add-shell-opt
# in addition to adding them to OPT_FEATURE_FLAGS.
# Adds $args, if not empty, to OPT_FEATURE_FLAGS. If the first arg is
# -shell then it strips that arg and passes the remaining args the
# sqlite-add-shell-opt in addition to adding them to
# OPT_FEATURE_FLAGS.
proc sqlite-add-feature-flag {args} {
set shell ""
if {"-shell" eq [lindex $args 0]} {
@ -328,23 +328,40 @@ proc sqlite-check-wasi-sdk {} {
}
msg-result "Checking WASI SDK directory \[$wasiSdkDir]... "
#puts "prefix = [prefix $wasiSdkDir/bin {clang ld}]"
proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld}]
proj-affirm-files-exist -v {*}[prefix "$wasiSdkDir/bin/" {clang wasm-ld ar}]
define HAVE_WASI_SDK 1
define WASI_SDK_DIR $wasiSdkDir
# Disable numerous options which we know either can't work or are
# not useful in this build...
msg-result "Using wasi-sdk clang. Disabling CLI shell and forcing:"
msg-result "Using wasi-sdk clang. Disabling CLI shell modifying config flags:"
# Boolean flags which must be switched off:
foreach opt {
editline
gcov
icu-collations
load-extension
readline
shared
tcl
threadsafe
} {
msg-result " --disable-$opt"
proj-opt-set $opt 0
if {[opt-bool $opt]} {
msg-result " --disable-$opt"
proj-opt-set $opt 0
}
}
# Non-boolean flags which need to be cleared:
foreach opt {
with-emsdk
with-icu-config
with-icu-ldflags
with-linenoise
with-tcl
} {
if {[proj-opt-was-provided $opt]} {
msg-result " removing --$opt"
proj-opt-set $opt ""
}
}
# Remember that we now have a discrepancy beteween
# $::isCrossCompiling and [proj-is-cross-compiling].
@ -410,8 +427,9 @@ if {[cc-check-includes zlib.h] && [proj-check-function-in-lib deflate z]} {
}
proj-check-rpath ; # Determine proper rpath-handling flag
if {0 && [proj-check-soname libsqlite3.so.3]} {
# It's not yet clear whether we gain anything from setting -soname
if {[proj-check-soname libsqlite3.so.3]} {
# It's not yet clear whether we gain anything from setting -soname,
# but not having it has been a source of anxiety for some users.
define LDFLAGS_SONAME_LIBSQLITE3 [get-define LDFLAGS_SONAME_PREFIX]libsqlite3.so.3
} else {
define LDFLAGS_SONAME_LIBSQLITE3 ""
@ -768,14 +786,14 @@ proj-if-opt-truthy threadsafe {
if {1} {
set ts [opt-val with-tempstore no]
set tsn 1
msg-checking "Use an in-ram database for temporary tables? "
msg-checking "Use an in-RAM database for temporary tables? "
switch -- $ts {
never { set tsn 0 }
no { set tsn 1 }
yes { set tsn 2 }
always { set tsn 3 }
default {
user-error "Invalid with-tempstore value \[$ts]. Use one of: never, no, yes, always"
user-error "Invalid --with-tempstore value '$ts'. Use one of: never, no, yes, always"
}
}
msg-result $ts
@ -1179,8 +1197,8 @@ foreach {boolFlag featureFlag ifSetEvalThis} {
}
########################################################################
# Invert the above loop's logic for some explicit SQLITE_OMIT_...
# cases. If config option $boolFlag is set, [sqlite-add-feature-flag
# Invert the above loop's logic for some SQLITE_OMIT_... cases. If
# config option $boolFlag is false, [sqlite-add-feature-flag
# $featureFlag], where $featureFlag is intended to be
# -DSQLITE_OMIT_...
foreach {boolFlag featureFlag} {
@ -1196,17 +1214,19 @@ foreach {boolFlag featureFlag} {
#########################################################################
# Show the final feature flag sets:
set oFF [get-define OPT_FEATURE_FLAGS]
if {"" ne $oFF} {
define OPT_FEATURE_FLAGS [lsort -unique $oFF]
msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]"
if {1} {
set oFF [get-define OPT_FEATURE_FLAGS]
if {"" ne $oFF} {
define OPT_FEATURE_FLAGS [lsort -unique $oFF]
msg-result "Library feature flags: [get-define OPT_FEATURE_FLAGS]"
}
set oFF [get-define OPT_SHELL]
if {"" ne $oFF} {
define OPT_SHELL [lsort -unique $oFF]
msg-result "Shell options: [get-define OPT_SHELL]"
}
unset oFF
}
set oFF [get-define OPT_SHELL]
if {"" ne $oFF} {
define OPT_SHELL [lsort -unique $oFF]
msg-result "Shell options: [get-define OPT_SHELL]"
}
unset oFF
########################################################################
# "Re-export" the autoconf-conventional --XYZdir flags into something

View File

@ -122,11 +122,12 @@ In (mostly) alphabetical order:
The shell-specific counterpart of `sqlite-add-feature-flag`.
- **`user-notice msg`**\
Queues `$msg` to be sent to stderr, but not until either
`show-notices` is called or the next time autosetup would output
something. This can be used to generate warnings between a "checking
for..." message and its resulting "yes/no/whatever" message in such
a way as to not spoil the layout of such messages.
Queues `$msg` to be sent to stderr, but does not emit it until
either `show-notices` is called or the next time autosetup would
output something (it internally calls `show-notices`). This can be
used to generate warnings between a "checking for..." message and
its resulting "yes/no/whatever" message in such a way as to not
spoil the layout of such messages.
<a name="tclcompat"></a>
Ensuring TCL Compatibility

View File

@ -594,7 +594,8 @@ proc proj-check-compile-commands {{configFlag {}}} {
########################################################################
# @proj-touch filename
#
# Runs the 'touch' command on one or more files, ignoring any errors.
# Runs the 'touch' external command on one or more files, ignoring any
# errors.
proc proj-touch {filename} {
catch { exec touch {*}$filename }
}

View File

@ -1,5 +1,5 @@
C Doc\stouchups\sin\sthe\sline-editing\sfeature\scheck\scode.
D 2024-11-07T15:23:54.771
C Extend\sthe\sset\sof\s--flags\swhich\sget\scleared/unset\swhen\susing\s--with-wasi-sdk.
D 2024-11-07T16:59:15.970
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@ -13,7 +13,7 @@ F art/icon-80x90.gif 65509ce3e5f86a9cd64fe7fca2d23954199f31fe44c1e09e208c80fb83d
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F art/sqlite370.ico af56c1d00fee7cd4753e8631ed60703ed0fc6e90
F art/sqlite370.jpg d512473dae7e378a67e28ff96a34da7cb331def2
F auto.def 8adbbcff2808b47c6ea7e55c8303e89e9364906a73dd2ffc55f8171e74366393
F auto.def 6fc759447a556c36ac78d426d9c243cd0e2896b25fb76965fb33d05e88e83b60
F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
@ -37,7 +37,7 @@ F autoconf/tea/win/rules.vc 94a18c3e453535459b4a643983acca52fb8756e79055bd2ad4b0
F autoconf/tea/win/targets.vc 96a25a1fa6e9e9cfb348fd3760a5395b4ce8acafc8ed10f0412937ec200d5dbd
F autosetup/LICENSE 41a26aebdd2cd185d1e2b210f71b7ce234496979f6b35aef2cbf6b80cbed4ce4
F autosetup/README.autosetup a78ff8c4a3d2636a4268736672a74bf14a82f42687fcf0631a70c516075c031e
F autosetup/README.md 8f2f1cc05913a9d1267f32eb8325f77b3ac6b45cd7d8f6149667efcd90ddbcaa
F autosetup/README.md 839e78a356545cbf81c2924566db72508c7e92e8c0ef35a8520dd8f49743383b
F autosetup/autosetup 9416ffdcdd6e2dbf7f6d1e5c890078518930f8af7722a950eacc28c7f151d2d6 x
F autosetup/autosetup-config.guess dfa101c5e8220e864d5e9c72a85e87110df60260d36cb951ad0a85d6d9eaa463 x
F autosetup/autosetup-config.sub a38fb074d0dece01cf919e9fb534a26011608aa8fa606490864295328526cd73 x
@ -50,7 +50,7 @@ F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e
F autosetup/default.auto 5cdf016de2140e50f1db190a02039dc42fb390af1dda4cc4853e3042a9ef0e82
F autosetup/jimsh0.c d40e381ea4526a067590e7b91bd4b2efa6d4980d286f908054c647b3df4aee14
F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
F autosetup/proj.tcl 5afbe391eae951567752ba8f0b4ecc05acd5a261e4417161623adda448154ad5
F autosetup/proj.tcl 638db0bc38e0890610c8dd2dbabb80d3ddf19c9a77d4baad2f2ebf5fb74c384d
F autosetup/system.tcl 51d4be76cd9a9074704b584e5c9cbba616202c8468cf9ba8a4f8294a7ab1dba9
F autosetup/tmake.auto eaebc74ad538dfdd3c817c27eefc31930c20510c4f3a3704071f6cb0629ed71f
F autosetup/tmake.tcl a275793ec1b6f8708179af0acef1f6f10d46c2920739743f7a8720c6d700c7a9
@ -2200,8 +2200,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 c5389d39a90047683e80ae9081d5d10aaa95da00dfc8a133b4a1a6949a11620d
R 54316963f5f6d26ad35729ed06088c2e
P bb5656bdc905947df205432e108ca6724393061a27028e23bf35b4bf48505d4f
R 8db0443b3cc341b10691e841478e8610
U stephan
Z e2fe9fb1c41d92d4fc9e1c534eca8ef3
Z c32c37eb256587dabe07c86fffbf93af
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
bb5656bdc905947df205432e108ca6724393061a27028e23bf35b4bf48505d4f
2a2419ef742c9f37c32be04d417337c1fa22503305d2df154fa38b2b69eae943