Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: third_party/sqlite/src/tool/mkmsvcmin.tcl

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/sqlite/src/tool/mkkeywordhash.c ('k') | third_party/sqlite/src/tool/mkopcodec.tcl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/src/tool/mkmsvcmin.tcl
diff --git a/third_party/sqlite/src/tool/mkmsvcmin.tcl b/third_party/sqlite/src/tool/mkmsvcmin.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..bdd02be1fb0c450b7de1e8e6000257f93ee4adde
--- /dev/null
+++ b/third_party/sqlite/src/tool/mkmsvcmin.tcl
@@ -0,0 +1,112 @@
+#!/usr/bin/tcl
+#
+# This script reads the regular MSVC makefile (../Makefile.msc) and outputs
+# a revised version of that Makefile that is "minimal" in the sense that
+# it uses the sqlite3.c amalgamation as input and does not require tclsh.
+# The resulting "../Makefile.min.msc" is suitable for use in the amalgamation
+# tarballs.
+#
+if {$argc==0} {
+ set basedir [file dir [file dir [file normalize $argv0]]]
+ set fromFileName [file join $basedir Makefile.msc]
+ set toFileName [file join $basedir autoconf Makefile.msc]
+} else {
+ set fromFileName [lindex $argv 0]
+ if {![file exists $fromFileName]} {
+ error "input file \"$fromFileName\" does not exist"
+ }
+ set toFileName [lindex $argv 1]
+ if {[file exists $toFileName]} {
+ error "output file \"$toFileName\" already exists"
+ }
+}
+
+proc readFile { fileName } {
+ set file_id [open $fileName RDONLY]
+ fconfigure $file_id -encoding binary -translation binary
+ set result [read $file_id]
+ close $file_id
+ return $result
+}
+
+proc writeFile { fileName data } {
+ set file_id [open $fileName {WRONLY CREAT TRUNC}]
+ fconfigure $file_id -encoding binary -translation binary
+ puts -nonewline $file_id $data
+ close $file_id
+ return ""
+}
+
+proc escapeSubSpec { data } {
+ regsub -all -- {&} $data {\\\&} data
+ regsub -all -- {\\(\d+)} $data {\\\\\1} data
+ return $data
+}
+
+proc substVars { data } {
+ return [uplevel 1 [list subst -nocommands -nobackslashes $data]]
+}
+
+#
+# NOTE: This block is used to replace the section marked <<block1>> in
+# the Makefile, if it exists.
+#
+set blocks(1) [string trimleft [string map [list \\\\ \\] {
+_HASHCHAR=^#
+!IF ![echo !IFNDEF VERSION > rcver.vc] && \\
+ ![for /F "delims=" %V in ('type "$(SQLITE3H)" ^| find "$(_HASHCHAR)define SQLITE_VERSION "') do (echo VERSION = ^^%V >> rcver.vc)] && \\
+ ![echo !ENDIF >> rcver.vc]
+!INCLUDE rcver.vc
+!ENDIF
+
+RESOURCE_VERSION = $(VERSION:^#=)
+RESOURCE_VERSION = $(RESOURCE_VERSION:define=)
+RESOURCE_VERSION = $(RESOURCE_VERSION:SQLITE_VERSION=)
+RESOURCE_VERSION = $(RESOURCE_VERSION:"=)
+RESOURCE_VERSION = $(RESOURCE_VERSION:.=,)
+
+$(LIBRESOBJS): $(TOP)\sqlite3.rc rcver.vc $(SQLITE3H)
+ echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h
+ echo #define SQLITE_RESOURCE_VERSION $(RESOURCE_VERSION) >> sqlite3rc.h
+ echo #endif >> sqlite3rc.h
+ $(LTRCOMPILE) -fo $(LIBRESOBJS) -DRC_VERONLY $(TOP)\sqlite3.rc
+}]]
+
+#
+# NOTE: This block is used to replace the section marked <<block2>> in
+# the Makefile, if it exists.
+#
+set blocks(2) [string trimleft [string map [list \\\\ \\] {
+Replace.exe:
+ $(CSC) /target:exe $(TOP)\Replace.cs
+
+sqlite3.def: Replace.exe $(LIBOBJ)
+ echo EXPORTS > sqlite3.def
+ dumpbin /all $(LIBOBJ) \\
+ | .\Replace.exe "^\s+/EXPORT:_?(sqlite3(?:session|changeset)?_[^@,]*)(?:@\d+|,DATA)?$$" $$1 true \\
+ | sort >> sqlite3.def
+}]]
+
+set data "#### DO NOT EDIT ####\n"
+append data "# This makefile is automatically "
+append data "generated from the [file tail $fromFileName] at\n"
+append data "# the root of the canonical SQLite source tree (not the\n"
+append data "# amalgamation tarball) using the tool/[file tail $argv0]\n"
+append data "# script.\n#\n\n"
+append data [readFile $fromFileName]
+
+regsub -all -- {# <<mark>>\n.*?# <</mark>>\n} \
+ $data "" data
+
+foreach i [lsort -integer [array names blocks]] {
+ regsub -all -- [substVars \
+ {# <<block${i}>>\n.*?# <</block${i}>>\n}] \
+ $data [escapeSubSpec $blocks($i)] data
+}
+
+set data [string map [list " -I\$(TOP)\\src" ""] $data]
+set data [string map [list " libsqlite3.lib" ""] $data]
+set data [string map [list " \$(ALL_TCL_TARGETS)" ""] $data]
+set data [string map [list "\$(TOP)\\src\\" "\$(TOP)\\"] $data]
+
+writeFile $toFileName $data
« no previous file with comments | « third_party/sqlite/src/tool/mkkeywordhash.c ('k') | third_party/sqlite/src/tool/mkopcodec.tcl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698