]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Support building the Tcl bindings DLL using MSVC.
authormistachkin <mistachkin@noemail.net>
Fri, 22 Mar 2019 01:25:16 +0000 (01:25 +0000)
committermistachkin <mistachkin@noemail.net>
Fri, 22 Mar 2019 01:25:16 +0000 (01:25 +0000)
FossilOrigin-Name: 908c4c891fa7472b43d232bde7d3789105c5f5b2cfaf6652bf6d5829236933cf

Makefile.msc
manifest
manifest.uuid

index b4fa372f9a99eab8d30dae27a2aabd0a631a2cfd..ab7c9b9c54ec54021fd67fc51f5ff14513c52765 100644 (file)
@@ -320,6 +320,13 @@ SQLITETCLH = sqlite_tcl.h
 SQLITETCLDECLSH = sqlite_tclDecls.h
 !ENDIF
 
+# This is the name to use for the dynamic link library (DLL) containing the
+# Tcl bindings for SQLite.
+#
+!IFNDEF SQLITE3TCLDLL
+SQLITE3TCLDLL = tclsqlite3.dll
+!ENDIF
+
 # These are the additional targets that the targets that integrate with the
 # Tcl library should depend on when compiling, etc.
 #
@@ -495,9 +502,9 @@ UCRTLIBPATH = $(UCRTLIBPATH:\\=\)
 # will run on the platform that is doing the build.
 #
 !IF $(USE_FULLWARN)!=0
-BCC = $(NCC) -nologo -W4 $(CCOPTS) $(BCCOPTS)
+BCC = $(NCC) -nologo -W4 -Fd$*.pdb $(CCOPTS) $(BCCOPTS)
 !ELSE
-BCC = $(NCC) -nologo -W3 $(CCOPTS) $(BCCOPTS)
+BCC = $(NCC) -nologo -W3 -Fd$*.pdb $(CCOPTS) $(BCCOPTS)
 !ENDIF
 
 # Check if assembly code listings should be generated for the source
@@ -1063,7 +1070,7 @@ RCC = $(RCC) -I$(ICUINCDIR)
 # Command line prefixes for compiling code, compiling resources,
 # linking, etc.
 #
-LTCOMPILE = $(TCC) -Fo$@
+LTCOMPILE = $(TCC) -Fo$@ -Fd$*.pdb
 LTRCOMPILE = $(RCC) -r
 LTLIB = lib.exe
 LTLINK = $(TCC) -Fe$@
@@ -1665,7 +1672,7 @@ TESTOPTS = --verbose=file --output=test-out.txt
 # Extra targets for the "all" target that require Tcl.
 #
 !IF $(NO_TCL)==0
-ALL_TCL_TARGETS = libtclsqlite3.lib
+ALL_TCL_TARGETS = $(SQLITE3TCLDLL)
 !ELSE
 ALL_TCL_TARGETS =
 !ENDIF
@@ -1697,7 +1704,22 @@ libsqlite3.lib:  $(LIBOBJ)
        $(LTLIB) $(LTLIBOPTS) /OUT:$@ $(LIBOBJ) $(TLIBS)
 
 libtclsqlite3.lib:     tclsqlite.lo libsqlite3.lib
-       $(LTLIB) $(LTLIBOPTS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS)
+       $(LTLIB) $(LTLIBOPTS) $(TCLLIBPATHS) $(LTLIBPATHS) /OUT:$@ tclsqlite.lo libsqlite3.lib $(LIBTCLSTUB) $(TLIBS)
+
+tclsqlite3.def:        tclsqlite.lo
+       echo EXPORTS > tclsqlite3.def
+       dumpbin /all tclsqlite.lo \
+               | $(TCLSH_CMD) $(TOP)\tool\replace.tcl include "^\s+/EXPORT:_?((?:Sqlite3|Tclsqlite3)_[^@]*)(?:@\d+)?$$" \1 \
+               | sort >> tclsqlite3.def
+
+pkgIndex.tcl:  $(TOP)\VERSION
+       for /F %%V in ('type "$(TOP)\VERSION"') do ( \
+               echo package ifneeded sqlite3 @version@ [list load [file join $$dir $(SQLITE3TCLDLL)] sqlite3] \
+                       | $(TCLSH_CMD) $(TOP)\tool\replace.tcl exact @version@ %%V > pkgIndex.tcl \
+       )
+
+$(SQLITE3TCLDLL):      libtclsqlite3.lib $(LIBRESOBJS) tclsqlite3.def pkgIndex.tcl
+       $(LD) $(LDFLAGS) $(LTLINKOPTS) $(LTLIBPATHS) /DLL /DEF:tclsqlite3.def /OUT:$@ libtclsqlite3.lib $(LIBRESOBJS) $(LTLIBS) $(TLIBS)
 # <</mark>>
 
 $(SQLITE3DLL): $(LIBOBJ) $(LIBRESOBJS) $(CORE_LINK_DEP)
@@ -1837,7 +1859,7 @@ opcodes.lo:       opcodes.c
 #
 !IF $(USE_RC)!=0
 # <<block1>>
-$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H)
+$(LIBRESOBJS): $(TOP)\src\sqlite3.rc $(SQLITE3H) $(TOP)\VERSION
        echo #ifndef SQLITE_RESOURCE_VERSION > sqlite3rc.h
        for /F %%V in ('type "$(TOP)\VERSION"') do ( \
                echo #define SQLITE_RESOURCE_VERSION %%V \
@@ -2514,6 +2536,7 @@ clean:
        del /Q *.bsc *.def *.cod *.da *.bb *.bbg *.vc gmon.out 2>NUL
        del /Q $(SQLITE3EXE) $(SQLITE3DLL) Replace.exe 2>NUL
 # <<mark>>
+       del /Q $(SQLITE3TCLDLL) pkgIndex.tcl 2>NUL
        del /Q opcodes.c opcodes.h 2>NUL
        del /Q lemon.* lempar.c parse.* 2>NUL
        del /Q mksourceid.* mkkeywordhash.* keywordhash.h 2>NUL
index a84b794415b20b269676ab793e9182102305c1e9..ecb3182881df491e706e3aa8f2de5b4a4fd56dae 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,11 +1,11 @@
-C Add\san\sextra\stest\sfor\sdatabase\scorruption\sto\sdefragmentPage().
-D 2019-03-21T21:18:36.010
+C Support\sbuilding\sthe\sTcl\sbindings\sDLL\susing\sMSVC.
+D 2019-03-22T01:25:16.136
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
 F Makefile.in 236d2739dc3e823c3c909bca2d6cef93009bafbefd7018a8f3281074ecb92954
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
-F Makefile.msc 5df60c70edb157feb2148a14c687551969599bd065875a0b959b6b139721ca72
+F Makefile.msc 3316c2167678383ee52ae9eb4fbb2c307904000c1a39184b1f418fc935ab0f48
 F README.md ebcdb6d5656020ef5ca37a6fc1ad89b4c80560ea33a3d70c250f9b845cf9da62
 F VERSION 288d756b1b7be03ecdbf1795c23af2c8425f2e46ba6979a14ef53360308f080d
 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@@ -1807,7 +1807,10 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3649a77b79001ea6c5defe882f9934521b20b9d36aab26d03b5d42006c7fa228
-R 789f387ec4f6b6af07f80141e08e441d
-U dan
-Z 2fecf32bc8423285cc68d4e5421b07c7
+P 80e951fce3e5aaa224c8dba6449832d2efabcdc24e86eb6b7833f85cf08ecc00
+R b5417c5ecafd99add57f46e1b9681f7d
+T *branch * msvcTcl
+T *sym-msvcTcl *
+T -sym-trunk *
+U mistachkin
+Z 31740cffe405ba9dd0aa14199ba03fc4
index 5282d2915b776f1384619184572675680ff37200..730008a1e9898af56841e60c6a2dff92ffdce77a 100644 (file)
@@ -1 +1 @@
-80e951fce3e5aaa224c8dba6449832d2efabcdc24e86eb6b7833f85cf08ecc00
\ No newline at end of file
+908c4c891fa7472b43d232bde7d3789105c5f5b2cfaf6652bf6d5829236933cf
\ No newline at end of file