]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Get --enable-all flag essentially working.
authorstephan <stephan@noemail.net>
Wed, 25 Sep 2024 04:20:58 +0000 (04:20 +0000)
committerstephan <stephan@noemail.net>
Wed, 25 Sep 2024 04:20:58 +0000 (04:20 +0000)
FossilOrigin-Name: 0a49436c983848c3d88f3f5ec33fb9ac31cce62e94bf515ab1c357a10f5cd515

auto.def
manifest
manifest.uuid

index e08ba720d7b12662fba5e6ecd2a39f93af63836f..a386ecb0eeee8233319205f28a349c297ce709ad 100644 (file)
--- a/auto.def
+++ b/auto.def
@@ -14,35 +14,48 @@ set DUMP_DEFINES_FILE defines.list
 #
 # 3) If they default to true, the actual flag mapped to them is
 # --disable-FLAG.
+#
+# 4) For boolean options, configure will accept any of --flag, --enable-flag,
+# or --disable-flag. Unfortunately, it reserves --debug for its own use.
+#
+# 5) Mapping with their full name, e.g. enable-foo=1 or disable-bar=0,
+# will lead to breakage in calls to either [opt-bool foo] or
+# [opt-bool enable-foo].
+#
+# (2) and (3) mean that the help text for flag=1 should start with
+# "Disable" and flag=0 should start with "Enable".
+#
+# In trying to helpfully map between --foo/--enable-foo/--disable-foo,
+# it ends up creating some degree of confusion.
 options {
   with-tclsh:PATHNAME  =>  {Full pathname of tclsh to use}
   with-tcl:DIR         =>  {Directory containing tclConfig.sh}
-  disable-tcl=0        =>  {building accessory programs that require TCL-dev}
-  enable-test-status=0 =>  {status of tests}
-  with-wasi-sdk:=/opt/wasi-sdk  =>  {Path to the wasi-dsk}
-  disable-threadsafe=0    =>  mutexing
-  enable-releasemode=0   =>  {libtool link to release mode}
-  enable-tempstore=0          =>  {an in-ram database for temporary tables never,no,yes,always}
-  enable-editline=0    =>  {BSD editline support}
-  disable-readline=0       =>  {readline support}
+  tcl=1                =>  {Disable building accessory programs that require TCL-dev}
+  test-status        =>  {Enable status of tests}
+  threadsafe=1         =>  {Disable mutexing}
+  releasemode   =>  {libtool link to release mode}
+  tempstore=0          =>  {an in-ram database for temporary tables never,no,yes,always}
+  editline=0           =>  {BSD editline support}
+  readline=0           =>  {readline support}
   with-readline-lib  =>  {readline library}
   with-readline-inc  =>  {readline include paths}
   with-linenoise:DIR   => {}
-  disable-amalgamation=0   =>  {Disable the amalgamation and instead build all files separately}
-  load-extension=1  =>  {loading of external extensions}
-  math=1            =>  {math functions}
-  json=1            =>  {JSON functions}
-  all=0             =>  {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
-  enable-memsys5=0        =>  MEMSYS5
-  enable-memsys3=0        =>  MEMSYS3
-  enable-fts3=0           =>  {Enable the FTS3 extension}
-  enable-fts4=0           =>  {Enable the FTS4 extension}
-  enable-fts5=0           =>  {Enable the FTS5 extension}
-  enable-update-limit=0   =>  {Enable the UPDATE/DELETE LIMIT clause}
-  enable-geopoly=0        =>  {Enable the GEOPOLY extension}
-  enable-rtree=0          =>  {Enable the RTREE extension}
-  enable-session=0        =>  {Enable the SESSION extension}
-  enable-gcov=0           =>  {Enable coverage testing using gcov}
+  amalgamation=1   =>  {Disable the amalgamation and instead build all files separately}
+  load-extension=1  =>  {Disable loading of external extensions}
+  math=1            =>  {Disable math functions}
+  json=1            =>  {Disable JSON functions}
+  all             =>  {Enable FTS4, FTS5, Geopoly, RTree, Sessions}
+  memsys5        =>  {Enable MEMSYS5}
+  memsys3        =>  {Enable MEMSYS3}
+  fts3           =>  {Enable the FTS3 extension}
+  fts4           =>  {Enable the FTS4 extension}
+  fts5           =>  {Enable the FTS5 extension}
+  update-limit   =>  {Enable the UPDATE/DELETE LIMIT clause}
+  geopoly        =>  {Enable the GEOPOLY extension}
+  rtree          =>  {Enable the RTREE extension}
+  session        =>  {Enable the SESSION extension}
+  gcov           =>  {Enable coverage testing using gcov}
+  with-wasi-sdk:=/opt/wasi-sdk  =>  {Top-most dir of the wasi-sdk for a WASI build}
   dump-defines=1         =>  {Dump autosetup defines to $DUMP_DEFINES_FILE}
 }
 #  debug=0          =>  {debugging & verbose explain}
@@ -124,6 +137,29 @@ proc add-feature-flag {flag} {
 }
 # add-feature-flag -DSQLITE_JUST_TESTING=3
 
+########################################################################
+# Force-set autosetup option $flag to $val.
+proc opt-bool-set {flag {val 1}} {
+  if {![dict exists ::autosetup(options) $flag]} {
+    # We have to add this to autosetup(options) or else future calls
+    # to [opt-bool $flag] will fail validation of $flag.
+    dict set ::autosetup(options) $flag {}
+  }
+  dict set ::autosetup(optset) $flag $val
+}
+
+########################################################################
+# If [opt-bool $boolFlag] is true, eval $then, else eval $else.
+proc if-enabled {boolFlag then {else {}}} {
+  if {[opt-bool $boolFlag]} {eval $then} else {eval $else}
+}
+
+########################################################################
+# If [opt-bool $boolFlag] is false, eval $then, else eval $else.
+proc if-disabled {boolFlag then {else {}}} {
+  if {![opt-bool $boolFlag]} {eval $then} else {eval $else}
+}
+
 #########
 # Programs needed
 if {1} {
@@ -158,7 +194,6 @@ if {1} {
     malloc_usable_size strchrnul usleep utime pread pread64 pwrite pwrite64
 }
 
-
 ##########
 # Handle --with-wasi-sdk=DIR
 #
@@ -362,6 +397,14 @@ if {0} {
 # XXX fi
 # XXX AC_SUBST BUILD_CC
 
+if-enabled all {
+  opt-bool-set fts4
+  opt-bool-set fts5
+  opt-bool-set geopoly
+  opt-bool-set rtree
+  opt-bool-set session
+}
+
 ##########
 # Do we want to support multithreaded use of sqlite
 #
@@ -387,9 +430,11 @@ if {0} {
 ##########
 # Do we want to support release
 #
-if {[opt-bool enable-releasemode]} {
+if-enabled releasemode {
+  msg-result "Release-mode build."
   set enable_releasemode 1
-} else {
+} {
+  msg-result "Non-release-mode build."
   set enable_releasemode 0
 }
 
@@ -658,22 +703,6 @@ if {0} {
   # XXX AC_SUBST HAVE_ZLIB
 }
 
-proc if-disabled {boolFlag then {else {}}} {
-  if {![opt-bool $boolFlag]} {
-    eval $then
-  } else {
-    eval $else
-  }
-}
-
-proc if-enabled {boolFlag then {else {}}} {
-  if {[opt-bool $boolFlag]} {
-    eval $then
-  } else {
-    eval $else
-  }
-}
-
 if-enabled load-extension {
   if {[cc-check-function-in-lib dlopen dl]} {
     define LDFLAGS_DLOPEN [get-define lib_dlopen]
@@ -693,21 +722,17 @@ if-enabled math {
   define LDFLAGS_MATH [get-define lib_ceil]
   undefine lib_ceil
   add-feature-flag {-DSQLITE_ENABLE_MATH_FUNCTIONS}
-  msg-result "Enabling math functions."
+  msg-result "Enabling math SQL functions"
 } {
   define LDFLAGS_MATH ""
-  msg-result "Disabling math functions."
+  msg-result "Disabling math SQL functions"
 }
 
 if-enabled json {
-  msg-result "Enabling JSON SQL functions."
+  msg-result "Enabling JSON SQL functions"
 } {
   add-feature-flag {-DSQLITE_OMIT_JSON}
-  msg-result "Disabling JSON SQL functions."
-}
-
-if-enabled all {
-  msg-result "TODO: handle --enable-all"
+  msg-result "Disabling JSON SQL functions"
 }
 
 if {0} {
@@ -909,8 +934,18 @@ if {0} {
   # XXX AC_SUBST AMALGAMATION_LINE_MACROS
 }
 
-#########
-# Output the config header
+foreach {boolFlag featureFlag} {
+  fts4    -DSQLITE_ENABLE_FTS4
+  fts5    -DSQLITE_ENABLE_FTS5
+  geopoly -DSQLITE_ENABLE_GEOPOLY
+  rtree   -DSQLITE_ENABLE_GEOPOLY
+  session -DSQLITE_ENABLE_GEOPOLY
+} {
+  if {[opt-bool $boolFlag]} {
+    add-feature-flag $featureFlag
+    msg-result "Enabling $boolFlag"
+  }
+}
 
 if {0} {
   #########
@@ -922,6 +957,10 @@ if {0} {
   make-config-header sqlite_cfg.h
 }
 
+if {"" ne [get-define OPT_FEATURE_FLAGS]} {
+  msg-result "Final feature flags: [get-define OPT_FEATURE_FLAGS]"
+}
+
 if {[opt-bool dump-defines]} {
     msg-result "--dump-defines is creating file: $DUMP_DEFINES_FILE"
     make-config-header $DUMP_DEFINES_FILE -bare OPT_FEATURE_FLAGS -auto {*}
index 0b72c18d59c6f8f269412db87872945edbcdaf48..b68744013fcdb2c44a26c135b3319824e032a684 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Get\sseveral\sof\sthe\s--enable/--disable\sconfigure\sflags\sworking.
-D 2024-09-25T03:37:34.226
+C Get\s--enable-all\sflag\sessentially\sworking.
+D 2024-09-25T04:20:58.189
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -14,7 +14,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 1c121db3f48b25002887220168e1120b5f8865f2d0468d62dca4220192367bef
+F auto.def 0b1a9058f9082f5583b7335eed55bbbfe480b17a0f9f0bac00c7538a82a242c9
 F autoconf/INSTALL 83e4a25da9fd053c7b3665eaaaf7919707915903
 F autoconf/Makefile.am adedc1324b6a87fdd1265ddd336d2fb7d4f36a0e77b86ea553ae7cc4ea239347
 F autoconf/Makefile.fallback 22fe523eb36dfce31e0f6349f782eb084e86a5620b2b0b4f84a2d6133f53f5ac
@@ -2232,8 +2232,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 4b104926bf0862a5088e51549c2d688c2af649d45bf0e396cc48e171bed06b0a
-R 5abab1c4da63e377666cdbb79ca9e337
+P fd16d53d3a95cd4f5f81f4b1b09955f04c89116586aa16fa01627ae4904d587b
+R f6136e043e4d9fa45a54af863cc98153
 U stephan
-Z 675f689497b17977048f4ba0ec321727
+Z 3a634646a8a85d4b2cf979a7d9e5b89f
 # Remove this line to create a well-formed Fossil manifest.
index 2d2859b16a57037ccc06a46d874d1d0ef27deebf..e5a87b78c504bc1e45b4a96ea8c803a2b4c67f0f 100644 (file)
@@ -1 +1 @@
-fd16d53d3a95cd4f5f81f4b1b09955f04c89116586aa16fa01627ae4904d587b
+0a49436c983848c3d88f3f5ec33fb9ac31cce62e94bf515ab1c357a10f5cd515