1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Merge all recent changes from trunk, and especially the new sqlite3FaultSim()

interface.

FossilOrigin-Name: 43fcbd9116401f30781fdcbe55d1674d6b96311b
This commit is contained in:
drh
2014-05-16 14:27:05 +00:00
12 changed files with 345 additions and 65 deletions

View File

@ -1,6 +1,9 @@
# #
# nmake Makefile for SQLite # nmake Makefile for SQLite
# #
###############################################################################
############################## START OF OPTIONS ###############################
###############################################################################
# The toplevel directory of the source tree. This is the directory # The toplevel directory of the source tree. This is the directory
# that contains this "Makefile.msc". # that contains this "Makefile.msc".
@ -13,6 +16,13 @@ TOP = .
USE_AMALGAMATION = 1 USE_AMALGAMATION = 1
!ENDIF !ENDIF
# Set this non-0 to use the library paths and other options necessary for
# Windows Phone 8.1.
#
!IFNDEF USE_WP81_OPTS
USE_WP81_OPTS = 0
!ENDIF
# Set this non-0 to split the SQLite amalgamation file into chunks to # Set this non-0 to split the SQLite amalgamation file into chunks to
# be used for debugging with Visual Studio. # be used for debugging with Visual Studio.
# #
@ -116,6 +126,25 @@ DEBUG = 0
OPTIMIZATIONS = 2 OPTIMIZATIONS = 2
!ENDIF !ENDIF
# These are the "standard" SQLite compilation options used when compiling for
# the Windows platform.
#
!IFNDEF OPT_FEATURE_FLAGS
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1
!ENDIF
###############################################################################
############################### END OF OPTIONS ################################
###############################################################################
# This assumes that MSVC is always installed in 32-bit Program Files directory
# and sets the variable for use in locating other 32-bit installs accordingly.
#
PROGRAMFILES_X86 = $(VCINSTALLDIR)\..\..
PROGRAMFILES_X86 = $(PROGRAMFILES_X86:\\=\)
# Check for the predefined command macro CC. This should point to the compiler # Check for the predefined command macro CC. This should point to the compiler
# binary for the target platform. If it is not defined, simply define it to # binary for the target platform. If it is not defined, simply define it to
# the legacy default value 'cl.exe'. # the legacy default value 'cl.exe'.
@ -140,6 +169,15 @@ LD = link.exe
RC = rc.exe RC = rc.exe
!ENDIF !ENDIF
# Check for the MSVC runtime library path macro. Othertise, this value will
# default to the 'lib' directory underneath the MSVC installation directory.
#
!IFNDEF CRTLIBPATH
CRTLIBPATH = $(VCINSTALLDIR)\lib
!ENDIF
CRTLIBPATH = $(CRTLIBPATH:\\=\)
# Check for the command macro NCC. This should point to the compiler binary # Check for the command macro NCC. This should point to the compiler binary
# for the platform the compilation process is taking place on. If it is not # for the platform the compilation process is taking place on. If it is not
# defined, simply define it to have the same value as the CC macro. When # defined, simply define it to have the same value as the CC macro. When
@ -168,8 +206,8 @@ NCC = $(NCC:\\=\)
NCC = $(CC) NCC = $(CC)
!ENDIF !ENDIF
# Check for the MSVC runtime library path macro. Othertise, this # Check for the MSVC native runtime library path macro. Othertise,
# value will default to the 'lib' directory underneath the MSVC # this value will default to the 'lib' directory underneath the MSVC
# installation directory. # installation directory.
# #
!IFNDEF NCRTLIBPATH !IFNDEF NCRTLIBPATH
@ -306,7 +344,6 @@ TCC = $(TCC) -DSQLITE_ENABLE_IOTRACE
RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE RCC = $(RCC) -DSQLITE_ENABLE_IOTRACE
!ENDIF !ENDIF
#
# Prevent warnings about "insecure" MSVC runtime library functions # Prevent warnings about "insecure" MSVC runtime library functions
# being used. # being used.
# #
@ -314,28 +351,24 @@ TCC = $(TCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS BCC = $(BCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS RCC = $(RCC) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS
#
# Prevent warnings about "deprecated" POSIX functions being used. # Prevent warnings about "deprecated" POSIX functions being used.
# #
TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS TCC = $(TCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS BCC = $(BCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS RCC = $(RCC) -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS
#
# Use the SQLite debugging heap subsystem? # Use the SQLite debugging heap subsystem?
# #
!IF $(MEMDEBUG)!=0 !IF $(MEMDEBUG)!=0
TCC = $(TCC) -DSQLITE_MEMDEBUG=1 TCC = $(TCC) -DSQLITE_MEMDEBUG=1
RCC = $(RCC) -DSQLITE_MEMDEBUG=1 RCC = $(RCC) -DSQLITE_MEMDEBUG=1
#
# Use native Win32 heap subsystem instead of malloc/free? # Use native Win32 heap subsystem instead of malloc/free?
# #
!ELSEIF $(WIN32HEAP)!=0 !ELSEIF $(WIN32HEAP)!=0
TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1 TCC = $(TCC) -DSQLITE_WIN32_MALLOC=1
RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1 RCC = $(RCC) -DSQLITE_WIN32_MALLOC=1
#
# Validate the heap on every call into the native Win32 heap subsystem? # Validate the heap on every call into the native Win32 heap subsystem?
# #
!IF $(DEBUG)>2 !IF $(DEBUG)>2
@ -430,25 +463,25 @@ RCC = $(RCC) -DSQLITE_TEMP_STORE=1
# The same set of OMIT and ENABLE flags should be passed to the # The same set of OMIT and ENABLE flags should be passed to the
# LEMON parser generator and the mkkeywordhash tool as well. # LEMON parser generator and the mkkeywordhash tool as well.
# BEGIN standard options # These are the required SQLite compilation options used when compiling for
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_FTS3=1 # the Windows platform.
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_RTREE=1 #
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_ENABLE_COLUMN_METADATA=1 REQ_FEATURE_FLAGS = $(REQ_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100
# END standard options
# BEGIN required Windows option # Add the required and optional SQLite compilation options into the command
OPT_FEATURE_FLAGS = $(OPT_FEATURE_FLAGS) -DSQLITE_MAX_TRIGGER_DEPTH=100 # lines used to invoke the MSVC code and resource compilers.
# END required Windows option #
TCC = $(TCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS)
RCC = $(RCC) $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS)
TCC = $(TCC) $(OPT_FEATURE_FLAGS) # Add in any optional parameters specified on the commane line, e.g.
RCC = $(RCC) $(OPT_FEATURE_FLAGS) # nmake /f Makefile.msc all "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1"
#
# Add in any optional parameters specified on the make commane line
# ie. make "OPTS=-DSQLITE_ENABLE_FOO=1 -DSQLITE_OMIT_FOO=1".
TCC = $(TCC) $(OPTS) TCC = $(TCC) $(OPTS)
RCC = $(RCC) $(OPTS) RCC = $(RCC) $(OPTS)
# If compiling for debugging, add some defines. # If compiling for debugging, add some defines.
#
!IF $(DEBUG)>0 !IF $(DEBUG)>0
TCC = $(TCC) -D_DEBUG TCC = $(TCC) -D_DEBUG
BCC = $(BCC) -D_DEBUG BCC = $(BCC) -D_DEBUG
@ -457,6 +490,7 @@ RCC = $(RCC) -D_DEBUG
# If optimizations are enabled or disabled (either implicitly or # If optimizations are enabled or disabled (either implicitly or
# explicitly), add the necessary flags. # explicitly), add the necessary flags.
#
!IF $(DEBUG)>0 || $(OPTIMIZATIONS)==0 !IF $(DEBUG)>0 || $(OPTIMIZATIONS)==0
TCC = $(TCC) -Od TCC = $(TCC) -Od
BCC = $(BCC) -Od BCC = $(BCC) -Od
@ -472,12 +506,14 @@ BCC = $(BCC) -O1
!ENDIF !ENDIF
# If symbols are enabled (or compiling for debugging), enable PDBs. # If symbols are enabled (or compiling for debugging), enable PDBs.
#
!IF $(DEBUG)>0 || $(SYMBOLS)!=0 !IF $(DEBUG)>0 || $(SYMBOLS)!=0
TCC = $(TCC) -Zi TCC = $(TCC) -Zi
BCC = $(BCC) -Zi BCC = $(BCC) -Zi
!ENDIF !ENDIF
# If ICU support is enabled, add the compiler options for it. # If ICU support is enabled, add the compiler options for it.
#
!IF $(USE_ICU)!=0 !IF $(USE_ICU)!=0
TCC = $(TCC) -DSQLITE_ENABLE_ICU=1 TCC = $(TCC) -DSQLITE_ENABLE_ICU=1
RCC = $(RCC) -DSQLITE_ENABLE_ICU=1 RCC = $(RCC) -DSQLITE_ENABLE_ICU=1
@ -489,6 +525,7 @@ RCC = $(RCC) -I$(ICUINCDIR)
# Command line prefixes for compiling code, compiling resources, # Command line prefixes for compiling code, compiling resources,
# linking, etc. # linking, etc.
#
LTCOMPILE = $(TCC) -Fo$@ LTCOMPILE = $(TCC) -Fo$@
LTRCOMPILE = $(RCC) -r LTRCOMPILE = $(RCC) -r
LTLIB = lib.exe LTLIB = lib.exe
@ -512,13 +549,13 @@ LTLINKOPTS = $(LTLINKOPTS) /APPCONTAINER
!IF "$(VISUALSTUDIOVERSION)"=="12.0" !IF "$(VISUALSTUDIOVERSION)"=="12.0"
!IFNDEF STORELIBPATH !IFNDEF STORELIBPATH
!IF "$(PLATFORM)"=="x86" !IF "$(PLATFORM)"=="x86"
STORELIBPATH = $(NCRTLIBPATH)\store STORELIBPATH = $(CRTLIBPATH)\store
!ELSEIF "$(PLATFORM)"=="x64" !ELSEIF "$(PLATFORM)"=="x64"
STORELIBPATH = $(NCRTLIBPATH)\store\amd64 STORELIBPATH = $(CRTLIBPATH)\store\amd64
!ELSEIF "$(PLATFORM)"=="ARM" !ELSEIF "$(PLATFORM)"=="ARM"
STORELIBPATH = $(NCRTLIBPATH)\store\arm STORELIBPATH = $(CRTLIBPATH)\store\arm
!ELSE !ELSE
STORELIBPATH = $(NCRTLIBPATH)\store STORELIBPATH = $(CRTLIBPATH)\store
!ENDIF !ENDIF
!ENDIF !ENDIF
STORELIBPATH = $(STORELIBPATH:\\=\) STORELIBPATH = $(STORELIBPATH:\\=\)
@ -526,24 +563,55 @@ LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(STORELIBPATH)"
!ENDIF !ENDIF
!ENDIF !ENDIF
# When compiling for Windows Phone 8.1, an extra library path is
# required.
#
!IF $(USE_WP81_OPTS)!=0
!IFNDEF WP81LIBPATH
!IF "$(PLATFORM)"=="x86"
WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\x86
!ELSEIF "$(PLATFORM)"=="ARM"
WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\ARM
!ELSE
WP81LIBPATH = $(PROGRAMFILES_X86)\Windows Phone Kits\8.1\lib\x86
!ENDIF
!ENDIF
!ENDIF
# When compiling for Windows Phone 8.1, some extra linker options
# are also required.
#
!IF $(USE_WP81_OPTS)!=0
!IFDEF WP81LIBPATH
LTLINKOPTS = $(LTLINKOPTS) "/LIBPATH:$(WP81LIBPATH)"
!ENDIF
LTLINKOPTS = $(LTLINKOPTS) /DYNAMICBASE
LTLINKOPTS = $(LTLINKOPTS) WindowsPhoneCore.lib RuntimeObject.lib PhoneAppModelHost.lib
LTLINKOPTS = $(LTLINKOPTS) /NODEFAULTLIB:kernel32.lib /NODEFAULTLIB:ole32.lib
!ENDIF
# If either debugging or symbols are enabled, enable PDBs. # If either debugging or symbols are enabled, enable PDBs.
#
!IF $(DEBUG)>0 || $(SYMBOLS)!=0 !IF $(DEBUG)>0 || $(SYMBOLS)!=0
LDFLAGS = /DEBUG LDFLAGS = /DEBUG
!ENDIF !ENDIF
# Start with the Tcl related linker options. # Start with the Tcl related linker options.
#
!IF $(NO_TCL)==0 !IF $(NO_TCL)==0
LTLIBPATHS = /LIBPATH:$(TCLLIBDIR) LTLIBPATHS = /LIBPATH:$(TCLLIBDIR)
LTLIBS = $(LIBTCL) LTLIBS = $(LIBTCL)
!ENDIF !ENDIF
# If ICU support is enabled, add the linker options for it. # If ICU support is enabled, add the linker options for it.
#
!IF $(USE_ICU)!=0 !IF $(USE_ICU)!=0
LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR) LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:$(ICULIBDIR)
LTLIBS = $(LTLIBS) $(LIBICU) LTLIBS = $(LTLIBS) $(LIBICU)
!ENDIF !ENDIF
# nawk compatible awk. # nawk compatible awk.
#
!IFNDEF NAWK !IFNDEF NAWK
NAWK = gawk.exe NAWK = gawk.exe
!ENDIF !ENDIF
@ -1226,7 +1294,7 @@ parse.h: parse.c
parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk parse.c: $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk
del /Q parse.y parse.h parse.h.temp del /Q parse.y parse.h parse.h.temp
copy $(TOP)\src\parse.y . copy $(TOP)\src\parse.y .
.\lemon.exe $(OPT_FEATURE_FLAGS) $(OPTS) parse.y .\lemon.exe $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) parse.y
move parse.h parse.h.temp move parse.h parse.h.temp
$(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h $(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h
@ -1234,7 +1302,7 @@ sqlite3.h: $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
$(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > sqlite3.h $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > sqlite3.h
mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe: $(TOP)\tool\mkkeywordhash.c
$(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLINKOPTS) $(NLTLIBPATHS) $(BCC) -Fe$@ $(REQ_FEATURE_FLAGS) $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLINKOPTS) $(NLTLIBPATHS)
keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe keywordhash.h: $(TOP)\tool\mkkeywordhash.c mkkeywordhash.exe
.\mkkeywordhash.exe > keywordhash.h .\mkkeywordhash.exe > keywordhash.h

View File

@ -1,9 +1,9 @@
C Use\s#ifdef\slogic\sto\savoid\san\salways-true\sbranch\swhen\nSQLITE_MAX_WORKER_THREADS=0 C Merge\sall\srecent\schanges\sfrom\strunk,\sand\sespecially\sthe\snew\ssqlite3FaultSim()\ninterface.
D 2014-05-16T12:18:08.658 D 2014-05-16T14:27:05.717
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in de92112472618cb869d27249966bad1783e4a853 F Makefile.in de92112472618cb869d27249966bad1783e4a853
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F Makefile.msc 93e1932fbc6624b1e8d3b3aa9a9b763114a0f29d F Makefile.msc f64754550a1272b7f840e8594a8b40c0b46792b4
F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0 F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0
F README.md 64f270c43c38c46de749e419c22f0ae2f4499fe8 F README.md 64f270c43c38c46de749e419c22f0ae2f4499fe8
F VERSION 9f823c026c6a32fc5f84d212a8aae0a221dba45c F VERSION 9f823c026c6a32fc5f84d212a8aae0a221dba45c
@ -178,7 +178,7 @@ F src/expr.c 4f9e497c66e2f25a4d139357a778c84d5713207c
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 5269ef07b100763134f71b889327c333bd0989cf F src/fkey.c 5269ef07b100763134f71b889327c333bd0989cf
F src/func.c 2e16316ec3a6365a0dc3e553c586f91b20f7f6c8 F src/func.c 2e16316ec3a6365a0dc3e553c586f91b20f7f6c8
F src/global.c b7943ff485c31660ec0b17c68467034804df01b1 F src/global.c 77ec119d6f6453039c2820336af8e8f804f20acf
F src/hash.c d139319967164f139c8d1bb8a11b14db9c4ba3cd F src/hash.c d139319967164f139c8d1bb8a11b14db9c4ba3cd
F src/hash.h 8890a25af81fb85a9ad7790d32eedab4b994da22 F src/hash.h 8890a25af81fb85a9ad7790d32eedab4b994da22
F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
@ -187,7 +187,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
F src/legacy.c 0df0b1550b9cc1f58229644735e317ac89131f12 F src/legacy.c 0df0b1550b9cc1f58229644735e317ac89131f12
F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b
F src/loadext.c 867c7b330b740c6c917af9956b13b81d0a048303 F src/loadext.c 867c7b330b740c6c917af9956b13b81d0a048303
F src/main.c 274a72f5de174a8eb20d01bbd83393347c092592 F src/main.c c2005c6386b087532757360b86584d0af5a4d02c
F src/malloc.c 0203ebce9152c6a0e5de520140b8ba65187350be F src/malloc.c 0203ebce9152c6a0e5de520140b8ba65187350be
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c c0c990fcaddff810ea277b4fb5d9138603dd5d4b F src/mem1.c c0c990fcaddff810ea277b4fb5d9138603dd5d4b
@ -199,7 +199,7 @@ F src/mutex.c 84a073c9a23a8d7bdd2ea832522d1730df18812c
F src/mutex.h 5bc526e19dccc412b7ff04642f6fdad3fdfdabea F src/mutex.h 5bc526e19dccc412b7ff04642f6fdad3fdfdabea
F src/mutex_noop.c f3f09fd7a2eb4287cfc799753ffc30380e7b71a1 F src/mutex_noop.c f3f09fd7a2eb4287cfc799753ffc30380e7b71a1
F src/mutex_unix.c 1b10d5413dfc794364a8adf3eb3a192926b43fa3 F src/mutex_unix.c 1b10d5413dfc794364a8adf3eb3a192926b43fa3
F src/mutex_w32.c aedd6752db7caf8b3a2084b1ba03116ff01aa2e3 F src/mutex_w32.c 13a6b8a3902f3750a3f251ee6640d983e7ca4d29
F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30 F src/notify.c 976dd0f6171d4588e89e874fcc765e92914b6d30
F src/os.c 1b147e4cf7cc39e618115c14a086aed44bc91ace F src/os.c 1b147e4cf7cc39e618115c14a086aed44bc91ace
F src/os.h 60d419395e32a8029fa380a80a3da2e9030f635e F src/os.h 60d419395e32a8029fa380a80a3da2e9030f635e
@ -225,13 +225,13 @@ F src/shell.c 6946aea9f21af551fa84bc6b2a8de55d93bf0004
F src/sqlite.h.in 53858ef439c84d794719901226447e8b5defb1b2 F src/sqlite.h.in 53858ef439c84d794719901226447e8b5defb1b2
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
F src/sqliteInt.h 851003126071d4a3bac86a0db75c48197fbd0ff0 F src/sqliteInt.h 7bda339d2422f20ec23c8a77d9ae7dfbe9ccc0b3
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158 F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
F src/tclsqlite.c e87c99e28a145943666b51b212dacae35fcea0bd F src/tclsqlite.c e87c99e28a145943666b51b212dacae35fcea0bd
F src/test1.c 268f7f2216eb8c0c2d9e65e6388ae7e499854aba F src/test1.c 268f7f2216eb8c0c2d9e65e6388ae7e499854aba
F src/test2.c 7355101c085304b90024f2261e056cdff13c6c35 F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712
F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c
F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df
F src/test5.c 5a34feec76d9b3a86aab30fd4f6cc9c48cbab4c1 F src/test5.c 5a34feec76d9b3a86aab30fd4f6cc9c48cbab4c1
@ -280,7 +280,7 @@ F src/tokenize.c 6da2de6e12218ccb0aea5184b56727d011f4bee7
F src/trigger.c 66f3470b03b52b395e839155786966e3e037fddb F src/trigger.c 66f3470b03b52b395e839155786966e3e037fddb
F src/update.c 5b3e74a03b3811e586b4f2b4cbd7c49f01c93115 F src/update.c 5b3e74a03b3811e586b4f2b4cbd7c49f01c93115
F src/utf.c 6dc9ec9f1b3db43ae8ba0365377f11df1ee4c01c F src/utf.c 6dc9ec9f1b3db43ae8ba0365377f11df1ee4c01c
F src/util.c 2b5fb283a190aacdb286f7835a447c45b345b83c F src/util.c 049fe1d3c0e2209c1bee107aec2fcff6285f909f
F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179 F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
F src/vdbe.c 89ab2ded5123e823b47293aedd7931a4742fb6bd F src/vdbe.c 89ab2ded5123e823b47293aedd7931a4742fb6bd
F src/vdbe.h 394464909ed682334aa3d5831aae0c2fe2abef94 F src/vdbe.h 394464909ed682334aa3d5831aae0c2fe2abef94
@ -699,7 +699,7 @@ F test/minmax.test 42fbad0e81afaa6e0de41c960329f2b2c3526efd
F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc F test/minmax2.test b44bae787fc7b227597b01b0ca5575c7cb54d3bc
F test/minmax3.test cc1e8b010136db0d01a6f2a29ba5a9f321034354 F test/minmax3.test cc1e8b010136db0d01a6f2a29ba5a9f321034354
F test/minmax4.test 536a3360470633a177e42fbc19660d146b51daef F test/minmax4.test 536a3360470633a177e42fbc19660d146b51daef
F test/misc1.test 441a0fafc7087f841db09fbfca54e7aea9f5a84c F test/misc1.test 1201a037c24f982cc0e956cdaa34fcaf6439c417
F test/misc2.test 00d7de54eda90e237fc9a38b9e5ccc769ebf6d4d F test/misc2.test 00d7de54eda90e237fc9a38b9e5ccc769ebf6d4d
F test/misc3.test cf3dda47d5dda3e53fc5804a100d3c82be736c9d F test/misc3.test cf3dda47d5dda3e53fc5804a100d3c82be736c9d
F test/misc4.test 9c078510fbfff05a9869a0b6d8b86a623ad2c4f6 F test/misc4.test 9c078510fbfff05a9869a0b6d8b86a623ad2c4f6
@ -1147,7 +1147,7 @@ F tool/mksqlite3c-noext.tcl 88a1e3b0c769773fb7a9ebb363ffc603a4ac21d8
F tool/mksqlite3c.tcl e72c0c97fe1a105fa9616483e652949be2199fe6 F tool/mksqlite3c.tcl e72c0c97fe1a105fa9616483e652949be2199fe6
F tool/mksqlite3h.tcl ba24038056f51fde07c0079c41885ab85e2cff12 F tool/mksqlite3h.tcl ba24038056f51fde07c0079c41885ab85e2cff12
F tool/mksqlite3internalh.tcl b6514145a7d5321b47e64e19b8116cc44f973eb1 F tool/mksqlite3internalh.tcl b6514145a7d5321b47e64e19b8116cc44f973eb1
F tool/mkvsix.tcl 924dcdecda86969686833301c08f84cca2600d94 F tool/mkvsix.tcl 52a4c613707ac34ae9c226e5ccc69cb948556105
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
F tool/omittest.tcl 34d7ac01fe4fd18e3637f64abe12c40eca0f6b97 F tool/omittest.tcl 34d7ac01fe4fd18e3637f64abe12c40eca0f6b97
F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
@ -1174,8 +1174,8 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
F tool/win/sqlite.vsix a94fb9b1b1ef06efc2898975cdfcfa9643731f5e F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 2e8d287d4f41d395a488bf65b20e956b0e311177 P 88cfe6d7de5f19f484304d0db585eac5de6c00ae 0d43a7ad9abe821e33e0bf83a997aa4461b1e3f2
R e7717e2e9621a181baf0cb2712e277d2 R ab0eda2a23c6a8769439757acdbfc7f8
U drh U drh
Z 12a20c396c3fdadc5d2762a7d632efff Z b6ed5f464b035536d72301437f5c1385

View File

@ -1 +1 @@
88cfe6d7de5f19f484304d0db585eac5de6c00ae 43fcbd9116401f30781fdcbe55d1674d6b96311b

View File

@ -174,15 +174,22 @@ SQLITE_WSD struct Sqlite3Config sqlite3Config = {
0, /* isMutexInit */ 0, /* isMutexInit */
0, /* isMallocInit */ 0, /* isMallocInit */
0, /* isPCacheInit */ 0, /* isPCacheInit */
0, /* pInitMutex */
0, /* nRefInitMutex */ 0, /* nRefInitMutex */
0, /* pInitMutex */
0, /* xLog */ 0, /* xLog */
0, /* pLogArg */ 0, /* pLogArg */
0, /* bLocaltimeFault */
#ifdef SQLITE_ENABLE_SQLLOG #ifdef SQLITE_ENABLE_SQLLOG
0, /* xSqllog */ 0, /* xSqllog */
0 /* pSqllogArg */ 0, /* pSqllogArg */
#endif #endif
#ifdef SQLITE_VDBE_COVERAGE
0, /* xVdbeBranch */
0, /* pVbeBranchArg */
#endif
#ifndef SQLITE_OMIT_BUILTIN_TEST
0, /* xTestCallback */
#endif
0 /* bLocaltimeFault */
}; };
/* /*

View File

@ -3124,6 +3124,23 @@ int sqlite3_test_control(int op, ...){
break; break;
} }
/*
** sqlite3_test_control(FAULT_INSTALL, xCallback)
**
** Arrange to invoke xCallback() whenever sqlite3FaultSim() is called,
** if xCallback is not NULL.
**
** As a test of the fault simulator mechanism itself, sqlite3FaultSim(0)
** is called immediately after installing the new callback and the return
** value from sqlite3FaultSim(0) becomes the return from
** sqlite3_test_control().
*/
case SQLITE_TESTCTRL_FAULT_INSTALL: {
sqlite3Config.xTestCallback = va_arg(ap, int(*)(int));
rc = sqlite3FaultSim(0);
break;
}
/* /*
** sqlite3_test_control(BENIGN_MALLOC_HOOKS, xBegin, xEnd) ** sqlite3_test_control(BENIGN_MALLOC_HOOKS, xBegin, xEnd)
** **

View File

@ -13,17 +13,19 @@
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#if SQLITE_OS_WIN
/*
** Include the header file for the Windows VFS.
*/
#include "os_win.h"
#endif
/* /*
** The code in this file is only used if we are compiling multithreaded ** The code in this file is only used if we are compiling multithreaded
** on a win32 system. ** on a win32 system.
*/ */
#ifdef SQLITE_MUTEX_W32 #ifdef SQLITE_MUTEX_W32
/*
** Include the header file for the Windows VFS.
*/
#include "os_win.h"
/* /*
** Each recursive mutex is an instance of the following structure. ** Each recursive mutex is an instance of the following structure.
*/ */

View File

@ -2732,11 +2732,10 @@ struct Sqlite3Config {
int isMutexInit; /* True after mutexes are initialized */ int isMutexInit; /* True after mutexes are initialized */
int isMallocInit; /* True after malloc is initialized */ int isMallocInit; /* True after malloc is initialized */
int isPCacheInit; /* True after malloc is initialized */ int isPCacheInit; /* True after malloc is initialized */
sqlite3_mutex *pInitMutex; /* Mutex used by sqlite3_initialize() */
int nRefInitMutex; /* Number of users of pInitMutex */ int nRefInitMutex; /* Number of users of pInitMutex */
sqlite3_mutex *pInitMutex; /* Mutex used by sqlite3_initialize() */
void (*xLog)(void*,int,const char*); /* Function for logging */ void (*xLog)(void*,int,const char*); /* Function for logging */
void *pLogArg; /* First argument to xLog() */ void *pLogArg; /* First argument to xLog() */
int bLocaltimeFault; /* True to fail localtime() calls */
#ifdef SQLITE_ENABLE_SQLLOG #ifdef SQLITE_ENABLE_SQLLOG
void(*xSqllog)(void*,sqlite3*,const char*, int); void(*xSqllog)(void*,sqlite3*,const char*, int);
void *pSqllogArg; void *pSqllogArg;
@ -2748,6 +2747,10 @@ struct Sqlite3Config {
void (*xVdbeBranch)(void*,int iSrcLine,u8 eThis,u8 eMx); /* Callback */ void (*xVdbeBranch)(void*,int iSrcLine,u8 eThis,u8 eMx); /* Callback */
void *pVdbeBranchArg; /* 1st argument */ void *pVdbeBranchArg; /* 1st argument */
#endif #endif
#ifndef SQLITE_OMIT_BUILTIN_TEST
int (*xTestCallback)(int); /* Invoked by sqlite3FaultSim() */
#endif
int bLocaltimeFault; /* True to fail localtime() calls */
}; };
/* /*
@ -3049,6 +3052,12 @@ int sqlite3ParseUri(const char*,const char*,unsigned int*,
Btree *sqlite3DbNameToBtree(sqlite3*,const char*); Btree *sqlite3DbNameToBtree(sqlite3*,const char*);
int sqlite3CodeOnce(Parse *); int sqlite3CodeOnce(Parse *);
#ifdef SQLITE_OMIT_BUILTIN_TEST
# define sqlite3FaultSim(X) SQLITE_OK
#else
int sqlite3FaultSim(int);
#endif
Bitvec *sqlite3BitvecCreate(u32); Bitvec *sqlite3BitvecCreate(u32);
int sqlite3BitvecTest(Bitvec*, u32); int sqlite3BitvecTest(Bitvec*, u32);
int sqlite3BitvecSet(Bitvec*, u32); int sqlite3BitvecSet(Bitvec*, u32);

View File

@ -568,7 +568,90 @@ static int testPendingByte(
rc = sqlite3_test_control(SQLITE_TESTCTRL_PENDING_BYTE, pbyte); rc = sqlite3_test_control(SQLITE_TESTCTRL_PENDING_BYTE, pbyte);
Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
return TCL_OK; return TCL_OK;
} }
/*
** The sqlite3FaultSim() callback:
*/
static Tcl_Interp *faultSimInterp = 0;
static int faultSimScriptSize = 0;
static char *faultSimScript;
static int faultSimCallback(int x){
char zInt[30];
int i;
int isNeg;
int rc;
if( x==0 ){
memcpy(faultSimScript+faultSimScriptSize, "0", 2);
}else{
/* Convert x to text without using any sqlite3 routines */
if( x<0 ){
isNeg = 1;
x = -x;
}else{
isNeg = 0;
}
zInt[sizeof(zInt)-1] = 0;
for(i=sizeof(zInt)-2; i>0 && x>0; i--, x /= 10){
zInt[i] = (x%10) + '0';
}
if( isNeg ) zInt[i--] = '-';
memcpy(faultSimScript+faultSimScriptSize, zInt+i+1, sizeof(zInt)-i);
}
rc = Tcl_Eval(faultSimInterp, faultSimScript);
if( rc ){
fprintf(stderr, "fault simulator script failed: [%s]", faultSimScript);
rc = SQLITE_ERROR;
}else{
rc = atoi(Tcl_GetStringResult(faultSimInterp));
}
Tcl_ResetResult(faultSimInterp);
return rc;
}
/*
** sqlite3_test_control_fault_install SCRIPT
**
** Arrange to invoke SCRIPT with the integer argument to sqlite3FaultSim()
** appended, whenever sqlite3FaultSim() is called. Or, if SCRIPT is the
** empty string, cancel the sqlite3FaultSim() callback.
*/
static int faultInstallCmd(
void *NotUsed,
Tcl_Interp *interp, /* The TCL interpreter that invoked this command */
int argc, /* Number of arguments */
const char **argv /* Text of each argument */
){
const char *zScript;
int nScript;
int rc;
if( argc!=1 && argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
" SCRIPT\"", (void*)0);
}
zScript = argc==2 ? argv[1] : "";
nScript = (int)strlen(zScript);
if( faultSimScript ){
free(faultSimScript);
faultSimScript = 0;
}
if( nScript==0 ){
rc = sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL, 0);
}else{
faultSimScript = malloc( nScript+100 );
if( faultSimScript==0 ){
Tcl_AppendResult(interp, "out of memory", (void*)0);
return SQLITE_ERROR;
}
memcpy(faultSimScript, zScript, nScript);
faultSimScript[nScript] = ' ';
faultSimScriptSize = nScript+1;
faultSimInterp = interp;
rc = sqlite3_test_control(SQLITE_TESTCTRL_FAULT_INSTALL, faultSimCallback);
}
Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
return SQLITE_OK;
}
/* /*
** sqlite3BitvecBuiltinTest SIZE PROGRAM ** sqlite3BitvecBuiltinTest SIZE PROGRAM
@ -638,7 +721,8 @@ int Sqlitetest2_Init(Tcl_Interp *interp){
{ "fake_big_file", (Tcl_CmdProc*)fake_big_file }, { "fake_big_file", (Tcl_CmdProc*)fake_big_file },
#endif #endif
{ "sqlite3BitvecBuiltinTest",(Tcl_CmdProc*)testBitvecBuiltinTest }, { "sqlite3BitvecBuiltinTest",(Tcl_CmdProc*)testBitvecBuiltinTest },
{ "sqlite3_test_control_pending_byte", (Tcl_CmdProc*)testPendingByte }, { "sqlite3_test_control_pending_byte", (Tcl_CmdProc*)testPendingByte },
{ "sqlite3_test_control_fault_install", (Tcl_CmdProc*)faultInstallCmd },
}; };
int i; int i;
for(i=0; i<sizeof(aCmd)/sizeof(aCmd[0]); i++){ for(i=0; i<sizeof(aCmd)/sizeof(aCmd[0]); i++){

View File

@ -31,6 +31,24 @@ void sqlite3Coverage(int x){
} }
#endif #endif
/*
** Give a callback to the test harness that can be used to simulate faults
** in places where it is difficult or expensive to do so purely by means
** of inputs.
**
** The intent of the integer argument is to let the fault simulator know
** which of multiple sqlite3FaultSim() calls has been hit.
**
** Return whatever integer value the test callback returns, or return
** SQLITE_OK if no test callback is installed.
*/
#ifndef SQLITE_OMIT_BUILTIN_TEST
int sqlite3FaultSim(int iTest){
int (*xCallback)(int) = sqlite3GlobalConfig.xTestCallback;
return xCallback ? xCallback(iTest) : SQLITE_OK;
}
#endif
#ifndef SQLITE_OMIT_FLOATING_POINT #ifndef SQLITE_OMIT_FLOATING_POINT
/* /*
** Return true if the floating point value is Not a Number (NaN). ** Return true if the floating point value is Not a Number (NaN).

View File

@ -604,5 +604,21 @@ do_execsql_test misc1-19.2 {
SELECT * FROM t19b; SELECT * FROM t19b;
} {4 5 6} } {4 5 6}
# 2014-05-16: Tests for the SQLITE_TESTCTRL_FAULT_INSTALL feature.
#
unset -nocomplain fault_callbacks
set fault_callbacks {}
proc fault_callback {n} {
lappend ::fault_callbacks $n
return 0
}
do_test misc1-19.1 {
sqlite3_test_control_fault_install fault_callback
set fault_callbacks
} {0}
do_test misc1-19.2 {
sqlite3_test_control_fault_install
set fault_callbacks
} {0}
finish_test finish_test

View File

@ -66,14 +66,15 @@
# containing the root of the source tree for SQLite. The third argument is # containing the root of the source tree for SQLite. The third argument is
# optional and if present must contain the flavor the VSIX package to build. # optional and if present must contain the flavor the VSIX package to build.
# Currently, the only supported package flavors are "WinRT", "WinRT81", "WP80", # Currently, the only supported package flavors are "WinRT", "WinRT81", "WP80",
# and "Win32". The fourth argument is optional and if present must be a string # "WP81", and "Win32". The fourth argument is optional and if present must be
# containing a list of platforms to include in the VSIX package. The platform # a string containing a list of platforms to include in the VSIX package. The
# list is "platform1,platform2,platform3". The fifth argument is optional and # platform list is "platform1,platform2,platform3". The fifth argument is
# if present must contain the version of Visual Studio required by the package. # optional and if present must contain the version of Visual Studio required by
# Currently, the only supported versions are "2012" and "2013". The package # the package. Currently, the only supported versions are "2012" and "2013".
# flavor "WinRT81" is only supported when the Visual Studio version is "2013". # The package flavors "WinRT81" and "WP81" are only supported when the Visual
# Typically, when on Windows, this script is executed using commands similar to # Studio version is "2013". Typically, when on Windows, this script is
# the following from a normal Windows command prompt: # executed using commands similar to the following from a normal Windows
# command prompt:
# #
# CD /D C:\dev\sqlite\core # CD /D C:\dev\sqlite\core
# tclsh85 tool\mkvsix.tcl C:\Temp # tclsh85 tool\mkvsix.tcl C:\Temp
@ -189,10 +190,42 @@ proc getMinVsVersionXmlChunk { vsVersion } {
} }
} }
proc getMaxPlatformVersionXmlChunk { packageFlavor vsVersion } {
#
# NOTE: Only Visual Studio 2013 supports this SDK manifest attribute.
#
if {![string equal $vsVersion 2013]} then {
return ""
}
switch -exact $packageFlavor {
WinRT {
return [appendArgs \
"\r\n " {MaxPlatformVersion="8.0"}]
}
WinRT81 {
return [appendArgs \
"\r\n " {MaxPlatformVersion="8.1"}]
}
WP80 {
return [appendArgs \
"\r\n " {MaxPlatformVersion="8.0"}]
}
WP81 {
return [appendArgs \
"\r\n " {MaxPlatformVersion="8.1"}]
}
default {
return ""
}
}
}
proc getExtraFileListXmlChunk { packageFlavor vsVersion } { proc getExtraFileListXmlChunk { packageFlavor vsVersion } {
# #
# NOTE: Windows Phone 8.0 does not require any extra attributes in its VSIX # NOTE: Windows Phone 8.0 does not require any extra attributes in its VSIX
# package SDK manifests. # package SDK manifests; however, it appears that Windows Phone 8.1
# does.
# #
if {[string equal $packageFlavor WP80]} then { if {[string equal $packageFlavor WP80]} then {
return "" return ""
@ -321,7 +354,7 @@ if {[string length $vsVersion] == 0} then {
fail "invalid Visual Studio version" fail "invalid Visual Studio version"
} }
if {$vsVersion ne "2012" && $vsVersion ne "2013"} then { if {![string equal $vsVersion 2012] && ![string equal $vsVersion 2013]} then {
fail [appendArgs \ fail [appendArgs \
"unsupported Visual Studio version, must be one of: " \ "unsupported Visual Studio version, must be one of: " \
[list 2012 2013]] [list 2012 2013]]
@ -332,6 +365,7 @@ set shortNames(WinRT,2013) SQLite.WinRT.2013
set shortNames(WinRT81,2013) SQLite.WinRT81 set shortNames(WinRT81,2013) SQLite.WinRT81
set shortNames(WP80,2012) SQLite.WP80 set shortNames(WP80,2012) SQLite.WP80
set shortNames(WP80,2013) SQLite.WP80.2013 set shortNames(WP80,2013) SQLite.WP80.2013
set shortNames(WP81,2013) SQLite.WP81
set shortNames(Win32,2012) SQLite.Win32 set shortNames(Win32,2012) SQLite.Win32
set shortNames(Win32,2013) SQLite.Win32.2013 set shortNames(Win32,2013) SQLite.Win32.2013
@ -340,6 +374,7 @@ set displayNames(WinRT,2013) "SQLite for Windows Runtime"
set displayNames(WinRT81,2013) "SQLite for Windows Runtime (Windows 8.1)" set displayNames(WinRT81,2013) "SQLite for Windows Runtime (Windows 8.1)"
set displayNames(WP80,2012) "SQLite for Windows Phone" set displayNames(WP80,2012) "SQLite for Windows Phone"
set displayNames(WP80,2013) "SQLite for Windows Phone" set displayNames(WP80,2013) "SQLite for Windows Phone"
set displayNames(WP81,2013) "SQLite for Windows Phone 8.1"
set displayNames(Win32,2012) "SQLite for Windows" set displayNames(Win32,2012) "SQLite for Windows"
set displayNames(Win32,2013) "SQLite for Windows" set displayNames(Win32,2013) "SQLite for Windows"
@ -349,6 +384,8 @@ if {[string equal $packageFlavor WinRT]} then {
set targetPlatformIdentifier Windows set targetPlatformIdentifier Windows
set targetPlatformVersion v8.0 set targetPlatformVersion v8.0
set minVsVersion [getMinVsVersionXmlChunk $vsVersion] set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
set maxPlatformVersion \
[getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
set extraSdkPath "" set extraSdkPath ""
set extraFileListAttributes \ set extraFileListAttributes \
[getExtraFileListXmlChunk $packageFlavor $vsVersion] [getExtraFileListXmlChunk $packageFlavor $vsVersion]
@ -363,6 +400,8 @@ if {[string equal $packageFlavor WinRT]} then {
set targetPlatformIdentifier Windows set targetPlatformIdentifier Windows
set targetPlatformVersion v8.1 set targetPlatformVersion v8.1
set minVsVersion [getMinVsVersionXmlChunk $vsVersion] set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
set maxPlatformVersion \
[getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
set extraSdkPath "" set extraSdkPath ""
set extraFileListAttributes \ set extraFileListAttributes \
[getExtraFileListXmlChunk $packageFlavor $vsVersion] [getExtraFileListXmlChunk $packageFlavor $vsVersion]
@ -372,6 +411,24 @@ if {[string equal $packageFlavor WinRT]} then {
set targetPlatformIdentifier "Windows Phone" set targetPlatformIdentifier "Windows Phone"
set targetPlatformVersion v8.0 set targetPlatformVersion v8.0
set minVsVersion [getMinVsVersionXmlChunk $vsVersion] set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
set maxPlatformVersion \
[getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
set extraSdkPath "\\..\\$targetPlatformIdentifier"
set extraFileListAttributes \
[getExtraFileListXmlChunk $packageFlavor $vsVersion]
} elseif {[string equal $packageFlavor WP81]} then {
if {$vsVersion ne "2013"} then {
fail [appendArgs \
"unsupported combination, package flavor " $packageFlavor \
" is only supported with Visual Studio 2013"]
}
set shortName $shortNames($packageFlavor,$vsVersion)
set displayName $displayNames($packageFlavor,$vsVersion)
set targetPlatformIdentifier WindowsPhoneApp
set targetPlatformVersion v8.1
set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
set maxPlatformVersion \
[getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
set extraSdkPath "\\..\\$targetPlatformIdentifier" set extraSdkPath "\\..\\$targetPlatformIdentifier"
set extraFileListAttributes \ set extraFileListAttributes \
[getExtraFileListXmlChunk $packageFlavor $vsVersion] [getExtraFileListXmlChunk $packageFlavor $vsVersion]
@ -381,13 +438,15 @@ if {[string equal $packageFlavor WinRT]} then {
set targetPlatformIdentifier Windows set targetPlatformIdentifier Windows
set targetPlatformVersion v8.0 set targetPlatformVersion v8.0
set minVsVersion [getMinVsVersionXmlChunk $vsVersion] set minVsVersion [getMinVsVersionXmlChunk $vsVersion]
set maxPlatformVersion \
[getMaxPlatformVersionXmlChunk $packageFlavor $vsVersion]
set extraSdkPath "" set extraSdkPath ""
set extraFileListAttributes \ set extraFileListAttributes \
[getExtraFileListXmlChunk $packageFlavor $vsVersion] [getExtraFileListXmlChunk $packageFlavor $vsVersion]
} else { } else {
fail [appendArgs \ fail [appendArgs \
"unsupported package flavor, must be one of: " \ "unsupported package flavor, must be one of: " \
[list WinRT WinRT81 WP80 Win32]] [list WinRT WinRT81 WP80 WP81 Win32]]
} }
############################################################################### ###############################################################################

Binary file not shown.