xref: /sqlite-3.40.0/tool/omittest-msvc.tcl (revision 0c4517a6)
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