drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 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 | # |
| 5 | set OPTIONS [list \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 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 \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 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 \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 39 | SQLITE_OMIT_DISKIO-x \ |
| 40 | SQLITE_OMIT_EXPLAIN-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 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 \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 47 | SQLITE_OMIT_INCRBLOB-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 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 \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 57 | SQLITE_OMIT_PAGER_PRAGMAS-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 58 | SQLITE_OMIT_PARSER_TRACE \ |
| 59 | SQLITE_OMIT_POPEN \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 60 | SQLITE_OMIT_PRAGMA-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 61 | SQLITE_OMIT_PROGRESS_CALLBACK \ |
| 62 | SQLITE_OMIT_QUICKBALANCE \ |
| 63 | SQLITE_OMIT_RANDOMNESS \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 64 | SQLITE_OMIT_REINDEX-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 65 | SQLITE_OMIT_SCHEMA_PRAGMAS \ |
| 66 | SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS \ |
| 67 | SQLITE_OMIT_SHARED_CACHE \ |
| 68 | SQLITE_OMIT_SHUTDOWN_DIRECTORIES \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 69 | SQLITE_OMIT_SUBQUERY-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 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 \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 78 | SQLITE_OMIT_VACUUM-x \ |
| 79 | SQLITE_OMIT_VIEW-x \ |
| 80 | SQLITE_OMIT_VIRTUALTABLE-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 81 | SQLITE_OMIT_WAL \ |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 82 | SQLITE_OMIT_WINDOWFUNC-x \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 83 | SQLITE_OMIT_WSD \ |
| 84 | SQLITE_OMIT_XFER_OPT \ |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 85 | ] |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 86 | set start [lindex $argv 0] |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 87 | foreach opt $OPTIONS { |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 88 | if {[regexp x $opt]} continue |
| 89 | if {[string compare $opt $start]<0} continue |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 90 | exec fossil clean -x |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 91 | set cmd "nmake /f Makefile.msc USE_FULLWARN=0 OPTIMIZATIONS=0" |
| 92 | append cmd " CCOPTS=-D$opt" |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 93 | puts $cmd |
| 94 | set res [catch {eval exec $cmd} outtxt] |
drh | 0c4517a | 2022-09-05 22:53:24 +0000 | [diff] [blame] | 95 | if {[regexp {sqlite3.c.\d+.: error} $outtxt]} { |
drh | 4c8404e | 2022-09-05 20:42:01 +0000 | [diff] [blame] | 96 | puts "FAILED:\n$outtxt" |
| 97 | exit |
| 98 | } |
| 99 | } |