1# Run this TCL script in order to build using MSVC multiple times 2# with various compile-time options. Use this to verify that the various 3# compile-time options all work with MSVC. 4# 5set OPTIONS [list \ 6 SQLITE_ALLOW_ROWID_IN_VIEW \ 7 SQLITE_ENABLE_COLUMN_METADATA \ 8 SQLITE_ENABLE_EXPENSIVE_ASSERT \ 9 SQLITE_ENABLE_IOTRACE \ 10 SQLITE_ENABLE_MEMORY_MANAGEMENT \ 11 SQLITE_ENABLE_MEMSYS3 \ 12 SQLITE_ENABLE_MEMSYS5 \ 13 SQLITE_ENABLE_OVERSIZE_CELL_CHECK \ 14 SQLITE_ENABLE_UNLOCK_NOTIFY \ 15 SQLITE_ENABLE_UPDATE_DELETE_LIMIT \ 16 SQLITE_OMIT_ALTERTABLE-x \ 17 SQLITE_OMIT_ATTACH-x \ 18 SQLITE_OMIT_AUTHORIZATION \ 19 SQLITE_OMIT_AUTOINCREMENT \ 20 SQLITE_OMIT_AUTOINIT \ 21 SQLITE_OMIT_AUTOMATIC_INDEX \ 22 SQLITE_OMIT_AUTORESET \ 23 SQLITE_OMIT_AUTOVACUUM \ 24 SQLITE_OMIT_BETWEEN_OPTIMIZATION \ 25 SQLITE_OMIT_BLOB_LITERAL \ 26 SQLITE_OMIT_BTREECOUNT \ 27 SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA \ 28 SQLITE_OMIT_CAST \ 29 SQLITE_OMIT_CHECK \ 30 SQLITE_OMIT_COMPILEOPTION_DIAGS \ 31 SQLITE_OMIT_COMPLETE \ 32 SQLITE_OMIT_COMPOUND_SELECT \ 33 SQLITE_OMIT_CONFLICT_CLAUSE \ 34 SQLITE_OMIT_CTE \ 35 SQLITE_OMIT_DATETIME_FUNCS \ 36 SQLITE_OMIT_DECLTYPE \ 37 SQLITE_OMIT_DEPRECATED \ 38 SQLITE_OMIT_DESERIALIZE \ 39 SQLITE_OMIT_DISKIO-x \ 40 SQLITE_OMIT_EXPLAIN-x \ 41 SQLITE_OMIT_FLAG_PRAGMAS \ 42 SQLITE_OMIT_FLOATING_POINT \ 43 SQLITE_OMIT_FOREIGN_KEY \ 44 SQLITE_OMIT_GENERATED_COLUMNS \ 45 SQLITE_OMIT_GET_TABLE \ 46 SQLITE_OMIT_HEX_INTEGER \ 47 SQLITE_OMIT_INCRBLOB-x \ 48 SQLITE_OMIT_INTEGRITY_CHECK \ 49 SQLITE_OMIT_INTROSPECTION_PRAGMAS \ 50 SQLITE_OMIT_JSON \ 51 SQLITE_OMIT_LIKE_OPTIMIZATION \ 52 SQLITE_OMIT_LOAD_EXTENSION \ 53 SQLITE_OMIT_LOCALTIME \ 54 SQLITE_OMIT_LOOKASIDE \ 55 SQLITE_OMIT_MEMORYDB \ 56 SQLITE_OMIT_OR_OPTIMIZATION \ 57 SQLITE_OMIT_PAGER_PRAGMAS-x \ 58 SQLITE_OMIT_PARSER_TRACE \ 59 SQLITE_OMIT_POPEN \ 60 SQLITE_OMIT_PRAGMA-x \ 61 SQLITE_OMIT_PROGRESS_CALLBACK \ 62 SQLITE_OMIT_QUICKBALANCE \ 63 SQLITE_OMIT_RANDOMNESS \ 64 SQLITE_OMIT_REINDEX-x \ 65 SQLITE_OMIT_SCHEMA_PRAGMAS \ 66 SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \ 67 SQLITE_OMIT_SHARED_CACHE \ 68 SQLITE_OMIT_SHUTDOWN_DIRECTORIES \ 69 SQLITE_OMIT_SUBQUERY-x \ 70 SQLITE_OMIT_TCL_VARIABLE \ 71 SQLITE_OMIT_TEMPDB \ 72 SQLITE_OMIT_TEST_CONTROL \ 73 SQLITE_OMIT_TRACE \ 74 SQLITE_OMIT_TRIGGER \ 75 SQLITE_OMIT_TRUNCATE_OPTIMIZATION \ 76 SQLITE_OMIT_UPSERT \ 77 SQLITE_OMIT_UTF16 \ 78 SQLITE_OMIT_VACUUM-x \ 79 SQLITE_OMIT_VIEW-x \ 80 SQLITE_OMIT_VIRTUALTABLE-x \ 81 SQLITE_OMIT_WAL \ 82 SQLITE_OMIT_WINDOWFUNC-x \ 83 SQLITE_OMIT_WSD \ 84 SQLITE_OMIT_XFER_OPT \ 85] 86set start [lindex $argv 0] 87foreach opt $OPTIONS { 88 if {[regexp x $opt]} continue 89 if {[string compare $opt $start]<0} continue 90 exec fossil clean -x 91 set cmd "nmake /f Makefile.msc USE_FULLWARN=0 OPTIMIZATIONS=0" 92 append cmd " CCOPTS=-D$opt" 93 puts $cmd 94 set res [catch {eval exec $cmd} outtxt] 95 if {[regexp {sqlite3.c.\d+.: error} $outtxt]} { 96 puts "FAILED:\n$outtxt" 97 exit 98 } 99} 100