mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Merge VSIX tooling and packaging enhancements to trunk.
FossilOrigin-Name: 99f27d642fbaba02264a470977cde38c3a526d13
This commit is contained in:
@ -944,7 +944,7 @@ clean:
|
|||||||
rm -f sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def
|
rm -f sqlite3.dll sqlite3.lib sqlite3.exp sqlite3.def
|
||||||
rm -f sqlite3.c
|
rm -f sqlite3.c
|
||||||
rm -f sqlite3_analyzer$(TEXE) sqlite3_analyzer.c
|
rm -f sqlite3_analyzer$(TEXE) sqlite3_analyzer.c
|
||||||
rm -f sqlite-output.vsix
|
rm -f sqlite-*-output.vsix
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f config.log config.status libtool Makefile sqlite3.pc
|
rm -f config.log config.status libtool Makefile sqlite3.pc
|
||||||
|
@ -1247,7 +1247,7 @@ clean:
|
|||||||
del /Q sqlite3.c
|
del /Q sqlite3.c
|
||||||
del /Q sqlite3rc.h
|
del /Q sqlite3rc.h
|
||||||
del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c
|
del /Q sqlite3_analyzer.exe sqlite3_analyzer.exp sqlite3_analyzer.c
|
||||||
del /Q sqlite-output.vsix
|
del /Q sqlite-*-output.vsix
|
||||||
|
|
||||||
# Dynamic link library section.
|
# Dynamic link library section.
|
||||||
#
|
#
|
||||||
|
2
main.mk
2
main.mk
@ -619,4 +619,4 @@ clean:
|
|||||||
rm -f threadtest3 threadtest3.exe
|
rm -f threadtest3 threadtest3.exe
|
||||||
rm -f sqlite3.c fts?amal.c tclsqlite3.c
|
rm -f sqlite3.c fts?amal.c tclsqlite3.c
|
||||||
rm -f sqlite3_analyzer sqlite3_analyzer.exe sqlite3_analyzer.c
|
rm -f sqlite3_analyzer sqlite3_analyzer.exe sqlite3_analyzer.c
|
||||||
rm -f sqlite-output.vsix
|
rm -f sqlite-*-output.vsix
|
||||||
|
24
manifest
24
manifest
@ -1,9 +1,9 @@
|
|||||||
C Fix\sa\s32-bit\sinteger\soverflow\sproblem\sthat\scould\scause\san\serror\sin\sa\sCREATE\sINDEX\sstatement\sthat\swrites\smore\sthan\s16GB\sof\sdata.
|
C Merge\sVSIX\stooling\sand\spackaging\senhancements\sto\strunk.
|
||||||
D 2012-10-26T19:22:45.500
|
D 2012-10-28T19:35:55.072
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 5f4f26109f9d80829122e0e09f9cda008fa065fb
|
F Makefile.in 82c41c0ed4cc94dd3cc7d498575b84c57c2c2384
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
F Makefile.msc 1d8a5d3cf33b8b8d3247c99367a37af384cc7ebd
|
F Makefile.msc 911b8188f5d67801035a113e063c3023a617525d
|
||||||
F Makefile.vxworks b18ad88e9a8c6a001f5cf4a389116a4f1a7ab45f
|
F Makefile.vxworks b18ad88e9a8c6a001f5cf4a389116a4f1a7ab45f
|
||||||
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
|
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
|
||||||
F VERSION edab4af5a4623f8198833ea481ce98ab53750a8d
|
F VERSION edab4af5a4623f8198833ea481ce98ab53750a8d
|
||||||
@ -103,7 +103,7 @@ F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
|
|||||||
F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
|
F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
|
||||||
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
|
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
|
||||||
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
|
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
|
||||||
F main.mk ed9b74318401c0242fcac7caa95747912b9bd18f
|
F main.mk 615aeaf7474cb2f141547e0c3ac08bcb75dd2b55
|
||||||
F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
|
F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
|
||||||
F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f
|
F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f
|
||||||
F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac
|
F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac
|
||||||
@ -977,7 +977,7 @@ F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
|
|||||||
F test/win32lock.test b2a539e85ae6b2d78475e016a9636b4451dc7fb9
|
F test/win32lock.test b2a539e85ae6b2d78475e016a9636b4451dc7fb9
|
||||||
F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
|
F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
|
||||||
F test/zerodamage.test e7f77fded01dfcdf92ac2c5400f1e35d7a21463c
|
F test/zerodamage.test e7f77fded01dfcdf92ac2c5400f1e35d7a21463c
|
||||||
F tool/build-all-msvc.bat c4ff2f18b1a59bb370ce48fdd286b51a82fa0f5c x
|
F tool/build-all-msvc.bat 74fb6e5cca66ebdb6c9bbafb2f8b802f08146d38 x
|
||||||
F tool/build-shell.sh b64a481901fc9ffe5ca8812a2a9255b6cfb77381
|
F tool/build-shell.sh b64a481901fc9ffe5ca8812a2a9255b6cfb77381
|
||||||
F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
|
F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
|
||||||
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
|
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
|
||||||
@ -995,7 +995,7 @@ F tool/mksqlite3c-noext.tcl 8bce31074e4cbe631bb7676526a048335f4c9f02
|
|||||||
F tool/mksqlite3c.tcl 589c7f44e990be1b8443cfe4808dce392b0327fa
|
F tool/mksqlite3c.tcl 589c7f44e990be1b8443cfe4808dce392b0327fa
|
||||||
F tool/mksqlite3h.tcl 78013ad79a5e492e5f764f3c7a8ef834255061f8
|
F tool/mksqlite3h.tcl 78013ad79a5e492e5f764f3c7a8ef834255061f8
|
||||||
F tool/mksqlite3internalh.tcl 3dca7bb5374cee003379b8cbac73714f610ef795
|
F tool/mksqlite3internalh.tcl 3dca7bb5374cee003379b8cbac73714f610ef795
|
||||||
F tool/mkvsix.tcl c5e0d52592fb07a17626cd54e5f71295fb4d1b55
|
F tool/mkvsix.tcl 0be7f7a591f1e83f9199cb82911b66668ca484c9
|
||||||
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
|
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
|
||||||
F tool/omittest.tcl 4665982e95a6e5c1bd806cf7bc3dea95be422d77
|
F tool/omittest.tcl 4665982e95a6e5c1bd806cf7bc3dea95be422d77
|
||||||
F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
|
F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
|
||||||
@ -1020,8 +1020,8 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
|
|||||||
F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
|
||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||||
F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
|
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
||||||
P ac1d5d8a553d8ba76a332eed9d563ce7f04a7a37
|
P e24ba5bee4424e99d0859ef652164ae1397a2378 5023a7adcac2022a4a2009183d9d9e0f6b46952b
|
||||||
R 3459aaea2ca2a903a1c6e2fb4e6f5b42
|
R 2f269b564c50576f53b5801166a85a63
|
||||||
U dan
|
U mistachkin
|
||||||
Z ba6f72d8caf0a404fc1f08cc5da9f7c5
|
Z 36e5e06b13ff5e0a8276b5cdb5553525
|
||||||
|
@ -1 +1 @@
|
|||||||
e24ba5bee4424e99d0859ef652164ae1397a2378
|
99f27d642fbaba02264a470977cde38c3a526d13
|
@ -151,13 +151,21 @@ REM NOTE: Setup environment variables to translate between the MSVC platform
|
|||||||
REM names and the names to be used for the platform-specific binary
|
REM names and the names to be used for the platform-specific binary
|
||||||
REM directories.
|
REM directories.
|
||||||
REM
|
REM
|
||||||
|
SET amd64_NAME=x64
|
||||||
|
SET arm_NAME=ARM
|
||||||
|
SET x64_NAME=x64
|
||||||
SET x86_NAME=x86
|
SET x86_NAME=x86
|
||||||
SET x86_amd64_NAME=x64
|
SET x86_amd64_NAME=x64
|
||||||
SET x86_arm_NAME=ARM
|
SET x86_arm_NAME=ARM
|
||||||
|
SET x86_x64_NAME=x64
|
||||||
|
|
||||||
|
%_VECHO% amd64_Name = '%amd64_NAME%'
|
||||||
|
%_VECHO% arm_Name = '%arm_NAME%'
|
||||||
|
%_VECHO% x64_Name = '%x64_NAME%'
|
||||||
%_VECHO% x86_Name = '%x86_NAME%'
|
%_VECHO% x86_Name = '%x86_NAME%'
|
||||||
%_VECHO% x86_amd64_Name = '%x86_amd64_NAME%'
|
%_VECHO% x86_amd64_Name = '%x86_amd64_NAME%'
|
||||||
%_VECHO% x86_arm_Name = '%x86_arm_NAME%'
|
%_VECHO% x86_arm_Name = '%x86_arm_NAME%'
|
||||||
|
%_VECHO% x86_x64_Name = '%x86_x64_NAME%'
|
||||||
|
|
||||||
REM
|
REM
|
||||||
REM NOTE: Check for the external tools needed during the build process ^(i.e.
|
REM NOTE: Check for the external tools needed during the build process ^(i.e.
|
||||||
@ -210,6 +218,19 @@ IF "%VisualStudioVersion%" == "11.0" (
|
|||||||
CALL :fn_UnsetVariable SET_NSDKLIBPATH
|
CALL :fn_UnsetVariable SET_NSDKLIBPATH
|
||||||
)
|
)
|
||||||
|
|
||||||
|
REM
|
||||||
|
REM NOTE: Check if this is the Windows Phone SDK. If so, a different batch
|
||||||
|
REM file is necessary to setup the build environment. Since the variable
|
||||||
|
REM values involved here may contain parenthesis, using GOTO instead of
|
||||||
|
REM an IF block is required.
|
||||||
|
REM
|
||||||
|
IF DEFINED WindowsPhoneKitDir GOTO set_vcvarsall_phone
|
||||||
|
SET VCVARSALL=%VCINSTALLDIR%\vcvarsall.bat
|
||||||
|
GOTO set_vcvarsall_done
|
||||||
|
:set_vcvarsall_phone
|
||||||
|
SET VCVARSALL=%VCINSTALLDIR%\WPSDK\WP80\vcvarsphoneall.bat
|
||||||
|
:set_vcvarsall_done
|
||||||
|
|
||||||
REM
|
REM
|
||||||
REM NOTE: This is the outer loop. There should be exactly one iteration per
|
REM NOTE: This is the outer loop. There should be exactly one iteration per
|
||||||
REM platform.
|
REM platform.
|
||||||
@ -250,6 +271,7 @@ FOR %%P IN (%PLATFORMS%) DO (
|
|||||||
CALL :fn_UnsetVariable Platform
|
CALL :fn_UnsetVariable Platform
|
||||||
REM CALL :fn_UnsetVariable VCINSTALLDIR
|
REM CALL :fn_UnsetVariable VCINSTALLDIR
|
||||||
CALL :fn_UnsetVariable VSINSTALLDIR
|
CALL :fn_UnsetVariable VSINSTALLDIR
|
||||||
|
CALL :fn_UnsetVariable WindowsPhoneKitDir
|
||||||
CALL :fn_UnsetVariable WindowsSdkDir
|
CALL :fn_UnsetVariable WindowsSdkDir
|
||||||
CALL :fn_UnsetVariable WindowsSdkDir_35
|
CALL :fn_UnsetVariable WindowsSdkDir_35
|
||||||
CALL :fn_UnsetVariable WindowsSdkDir_old
|
CALL :fn_UnsetVariable WindowsSdkDir_old
|
||||||
@ -292,10 +314,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
|||||||
REM
|
REM
|
||||||
REM NOTE: Attempt to setup the MSVC environment for this platform.
|
REM NOTE: Attempt to setup the MSVC environment for this platform.
|
||||||
REM
|
REM
|
||||||
%__ECHO3% CALL "%VCINSTALLDIR%\vcvarsall.bat" %%P
|
%__ECHO3% CALL "%VCVARSALL%" %%P
|
||||||
|
|
||||||
IF ERRORLEVEL 1 (
|
IF ERRORLEVEL 1 (
|
||||||
ECHO Failed to call "%VCINSTALLDIR%\vcvarsall.bat" for platform %%P.
|
ECHO Failed to call "%VCVARSALL%" for platform %%P.
|
||||||
GOTO errors
|
GOTO errors
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -305,10 +327,12 @@ FOR %%P IN (%PLATFORMS%) DO (
|
|||||||
REM as current versions of their official batch file do not set
|
REM as current versions of their official batch file do not set
|
||||||
REM the exit code upon failure.
|
REM the exit code upon failure.
|
||||||
REM
|
REM
|
||||||
IF NOT DEFINED __ECHO (
|
IF NOT DEFINED __ECHO3 (
|
||||||
IF NOT DEFINED WindowsSdkDir (
|
IF NOT DEFINED WindowsPhoneKitDir (
|
||||||
ECHO Cannot build, Windows SDK not found for platform %%P.
|
IF NOT DEFINED WindowsSdkDir (
|
||||||
GOTO errors
|
ECHO Cannot build, Windows SDK not found for platform %%P.
|
||||||
|
GOTO errors
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -322,8 +346,13 @@ FOR %%P IN (%PLATFORMS%) DO (
|
|||||||
REM file used to setup the MSVC environment.
|
REM file used to setup the MSVC environment.
|
||||||
REM
|
REM
|
||||||
IF DEFINED SET_NSDKLIBPATH (
|
IF DEFINED SET_NSDKLIBPATH (
|
||||||
CALL :fn_CopyVariable WindowsSdkDir NSDKLIBPATH
|
IF DEFINED WindowsPhoneKitDir (
|
||||||
CALL :fn_AppendVariable NSDKLIBPATH \lib\win8\um\x86
|
CALL :fn_CopyVariable WindowsPhoneKitDir NSDKLIBPATH
|
||||||
|
CALL :fn_AppendVariable NSDKLIBPATH \lib\x86
|
||||||
|
) ELSE IF DEFINED WindowsSdkDir (
|
||||||
|
CALL :fn_CopyVariable WindowsSdkDir NSDKLIBPATH
|
||||||
|
CALL :fn_AppendVariable NSDKLIBPATH \lib\win8\um\x86
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
REM
|
REM
|
||||||
|
265
tool/mkvsix.tcl
265
tool/mkvsix.tcl
@ -59,8 +59,18 @@
|
|||||||
#
|
#
|
||||||
# USAGE
|
# USAGE
|
||||||
#
|
#
|
||||||
# Typically, when on Windows, this script is executed using commands similar to
|
# The first argument to this script is required and must be the name of the
|
||||||
# the following (from a normal Windows command prompt window):
|
# top-level directory containing the directories and files organized into a
|
||||||
|
# tree as described in item 6 of the PREREQUISITES section, above. The second
|
||||||
|
# argument is optional and if present must contain the name of the directory
|
||||||
|
# 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.
|
||||||
|
# Currently, the only supported package flavors are "WinRT" and "WP80". The
|
||||||
|
# fourth argument is optional and if present must be a string containing a list
|
||||||
|
# of platforms to include in the VSIX package. The format of the platform list
|
||||||
|
# string is "platform1,platform2,platform3". Typically, when on Windows, this
|
||||||
|
# script is 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
|
||||||
@ -89,7 +99,8 @@ proc fail { {error ""} {usage false} } {
|
|||||||
|
|
||||||
puts stdout "usage:\
|
puts stdout "usage:\
|
||||||
[file tail [info nameofexecutable]]\
|
[file tail [info nameofexecutable]]\
|
||||||
[file tail [info script]] <binaryDirectory> \[sourceDirectory\]"
|
[file tail [info script]] <binaryDirectory> \[sourceDirectory\]\
|
||||||
|
\[packageFlavor\] \[platformNames\]"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
@ -162,21 +173,24 @@ proc writeFile { fileName data } {
|
|||||||
proc substFile { fileName } {
|
proc substFile { fileName } {
|
||||||
#
|
#
|
||||||
# NOTE: Performs all Tcl command, variable, and backslash substitutions in
|
# NOTE: Performs all Tcl command, variable, and backslash substitutions in
|
||||||
# the specified file and then re-writes the contents of that same file
|
# the specified file and then rewrites the contents of that same file
|
||||||
# with the substituted data.
|
# with the substituted data.
|
||||||
#
|
#
|
||||||
return [writeFile $fileName [uplevel 1 [list subst [readFile $fileName]]]]
|
return [writeFile $fileName [uplevel 1 [list subst [readFile $fileName]]]]
|
||||||
}
|
}
|
||||||
|
|
||||||
proc replaceBuildAndPlatform { fileName buildName platformName } {
|
proc replaceFileNameTokens { fileName name buildName platformName } {
|
||||||
#
|
#
|
||||||
# NOTE: Returns the specified file name containing the platform name instead
|
# NOTE: Returns the specified file name containing the platform name instead
|
||||||
# of platform placeholder tokens.
|
# of platform placeholder tokens.
|
||||||
#
|
#
|
||||||
return [string map [list <build> $buildName <platform> $platformName] \
|
return [string map [list <build> $buildName <platform> $platformName \
|
||||||
$fileName]
|
<name> $name] $fileName]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# NOTE: This is the entry point for this script.
|
||||||
|
#
|
||||||
set script [file normalize [info script]]
|
set script [file normalize [info script]]
|
||||||
|
|
||||||
if {[string length $script] == 0} then {
|
if {[string length $script] == 0} then {
|
||||||
@ -192,7 +206,7 @@ set rootName [file rootname [file tail $script]]
|
|||||||
# NOTE: Process and verify all the command line arguments.
|
# NOTE: Process and verify all the command line arguments.
|
||||||
#
|
#
|
||||||
set argc [llength $argv]
|
set argc [llength $argv]
|
||||||
if {$argc != 1 && $argc != 2} then {fail}
|
if {$argc < 1 || $argc > 4} then {fail}
|
||||||
|
|
||||||
set binaryDirectory [lindex $argv 0]
|
set binaryDirectory [lindex $argv 0]
|
||||||
|
|
||||||
@ -205,7 +219,7 @@ if {![file exists $binaryDirectory] || \
|
|||||||
fail "binary directory does not exist"
|
fail "binary directory does not exist"
|
||||||
}
|
}
|
||||||
|
|
||||||
if {$argc == 2} then {
|
if {$argc >= 2} then {
|
||||||
set sourceDirectory [lindex $argv 1]
|
set sourceDirectory [lindex $argv 1]
|
||||||
} else {
|
} else {
|
||||||
#
|
#
|
||||||
@ -224,6 +238,47 @@ if {![file exists $sourceDirectory] || \
|
|||||||
fail "source directory does not exist"
|
fail "source directory does not exist"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if {$argc >= 3} then {
|
||||||
|
set packageFlavor [lindex $argv 2]
|
||||||
|
} else {
|
||||||
|
#
|
||||||
|
# NOTE: Assume the package flavor is WinRT.
|
||||||
|
#
|
||||||
|
set packageFlavor WinRT
|
||||||
|
}
|
||||||
|
|
||||||
|
if {[string length $packageFlavor] == 0} then {
|
||||||
|
fail "invalid package flavor"
|
||||||
|
}
|
||||||
|
|
||||||
|
if {[string equal -nocase $packageFlavor WinRT]} then {
|
||||||
|
set shortName SQLite.WinRT
|
||||||
|
set displayName "SQLite for Windows Runtime"
|
||||||
|
set targetPlatformIdentifier Windows
|
||||||
|
set extraSdkPath ""
|
||||||
|
set extraFileListAttributes [appendArgs \
|
||||||
|
"\r\n " {AppliesTo="WindowsAppContainer"} \
|
||||||
|
"\r\n " {DependsOn="Microsoft.VCLibs, version=11.0"}]
|
||||||
|
} elseif {[string equal -nocase $packageFlavor WP80]} then {
|
||||||
|
set shortName SQLite.WP80
|
||||||
|
set displayName "SQLite for Windows Phone"
|
||||||
|
set targetPlatformIdentifier "Windows Phone"
|
||||||
|
set extraSdkPath "\\..\\$targetPlatformIdentifier"
|
||||||
|
set extraFileListAttributes ""
|
||||||
|
} else {
|
||||||
|
fail "unsupported package flavor, must be \"WinRT\" or \"WP80\""
|
||||||
|
}
|
||||||
|
|
||||||
|
if {$argc >= 4} then {
|
||||||
|
set platformNames [list]
|
||||||
|
|
||||||
|
foreach platformName [split [lindex $argv 3] ", "] {
|
||||||
|
if {[string length $platformName] > 0} then {
|
||||||
|
lappend platformNames $platformName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -247,7 +302,8 @@ if {![file exists $templateFile] || \
|
|||||||
}
|
}
|
||||||
|
|
||||||
set currentDirectory [pwd]
|
set currentDirectory [pwd]
|
||||||
set outputFile [file join $currentDirectory sqlite-output.vsix]
|
set outputFile [file join $currentDirectory [appendArgs sqlite- \
|
||||||
|
$packageFlavor -output.vsix]]
|
||||||
|
|
||||||
if {[file exists $outputFile]} then {
|
if {[file exists $outputFile]} then {
|
||||||
fail [appendArgs "output file \"" $outputFile "\" already exists"]
|
fail [appendArgs "output file \"" $outputFile "\" already exists"]
|
||||||
@ -323,17 +379,41 @@ if {![regexp -line -- $pattern $data dummy version]} then {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Setup all the master file list data. This includes the source and
|
# NOTE: Setup all the master file list data. This includes the source file
|
||||||
# destination file names, build-neutral boolean flags, platform-neutral
|
# names, the destination file names, and the file processing flags. The
|
||||||
# boolean flags, and the dynamic content (subst) boolean flags. There
|
# possible file processing flags are:
|
||||||
# is also one set of boolean flags per build configuration, currently
|
#
|
||||||
# "Debug" and "Retail", that control which files are skipped for it.
|
# "buildNeutral" -- This flag indicates the file location and content do
|
||||||
|
# not depend on the build configuration.
|
||||||
|
#
|
||||||
|
# "platformNeutral" -- This flag indicates the file location and content
|
||||||
|
# do not depend on the build platform.
|
||||||
|
#
|
||||||
|
# "subst" -- This flag indicates that the file contains dynamic textual
|
||||||
|
# content that needs to be processed using [subst] prior to
|
||||||
|
# packaging the file into the final VSIX package. The primary
|
||||||
|
# use of this flag is to insert the name of the VSIX package,
|
||||||
|
# some package flavor-specific value, or the SQLite version
|
||||||
|
# into a file.
|
||||||
|
#
|
||||||
|
# "noDebug" -- This flag indicates that the file should be skipped when
|
||||||
|
# processing the debug build.
|
||||||
|
#
|
||||||
|
# "noRetail" -- This flag indicates that the file should be skipped when
|
||||||
|
# processing the retail build.
|
||||||
|
#
|
||||||
|
# "move" -- This flag indicates that the file should be moved from the
|
||||||
|
# source to the destination instead of being copied.
|
||||||
|
#
|
||||||
|
# This file metadata may be overridden, either in whole or in part, via
|
||||||
|
# the user-specific customizations file.
|
||||||
#
|
#
|
||||||
if {![info exists fileNames(source)]} then {
|
if {![info exists fileNames(source)]} then {
|
||||||
set fileNames(source) [list "" "" "" \
|
set fileNames(source) [list "" "" \
|
||||||
[file join $sourceDirectory sqlite3.h] \
|
[file join $stagingDirectory DesignTime <build> <platform> sqlite3.props] \
|
||||||
[file join $binaryDirectory <build> <platform> sqlite3.lib] \
|
[file join $sourceDirectory sqlite3.h] \
|
||||||
[file join $binaryDirectory <build> <platform> sqlite3.dll]]
|
[file join $binaryDirectory <build> <platform> sqlite3.lib] \
|
||||||
|
[file join $binaryDirectory <build> <platform> sqlite3.dll]]
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
if {![info exists no(symbols)]} then {
|
||||||
lappend fileNames(source) \
|
lappend fileNames(source) \
|
||||||
@ -343,13 +423,12 @@ if {![info exists fileNames(source)]} then {
|
|||||||
|
|
||||||
if {![info exists fileNames(destination)]} then {
|
if {![info exists fileNames(destination)]} then {
|
||||||
set fileNames(destination) [list \
|
set fileNames(destination) [list \
|
||||||
[file join $stagingDirectory extension.vsixmanifest] \
|
[file join $stagingDirectory extension.vsixmanifest] \
|
||||||
[file join $stagingDirectory SDKManifest.xml] \
|
[file join $stagingDirectory SDKManifest.xml] \
|
||||||
[file join $stagingDirectory DesignTime <build> <platform> \
|
[file join $stagingDirectory DesignTime <build> <platform> <name>.props] \
|
||||||
SQLite.WinRT.props] \
|
[file join $stagingDirectory DesignTime <build> <platform> sqlite3.h] \
|
||||||
[file join $stagingDirectory DesignTime <build> <platform> sqlite3.h] \
|
[file join $stagingDirectory DesignTime <build> <platform> sqlite3.lib] \
|
||||||
[file join $stagingDirectory DesignTime <build> <platform> sqlite3.lib] \
|
[file join $stagingDirectory Redist <build> <platform> sqlite3.dll]]
|
||||||
[file join $stagingDirectory Redist <build> <platform> sqlite3.dll]]
|
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
if {![info exists no(symbols)]} then {
|
||||||
lappend fileNames(destination) \
|
lappend fileNames(destination) \
|
||||||
@ -357,50 +436,24 @@ if {![info exists fileNames(destination)]} then {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if {![info exists fileNames(buildNeutral)]} then {
|
if {![info exists fileNames(flags)]} then {
|
||||||
set fileNames(buildNeutral) [list 1 1 1 1 0 0]
|
set fileNames(flags) [list \
|
||||||
|
[list buildNeutral platformNeutral subst] \
|
||||||
|
[list buildNeutral platformNeutral subst] \
|
||||||
|
[list buildNeutral platformNeutral subst move] \
|
||||||
|
[list buildNeutral platformNeutral] \
|
||||||
|
[list] [list] [list noRetail]]
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
if {![info exists no(symbols)]} then {
|
||||||
lappend fileNames(buildNeutral) 0
|
lappend fileNames(flags) [list noRetail]
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if {![info exists fileNames(platformNeutral)]} then {
|
|
||||||
set fileNames(platformNeutral) [list 1 1 1 1 0 0]
|
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
|
||||||
lappend fileNames(platformNeutral) 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if {![info exists fileNames(subst)]} then {
|
|
||||||
set fileNames(subst) [list 1 1 1 0 0 0]
|
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
|
||||||
lappend fileNames(subst) 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if {![info exists fileNames(noDebug)]} then {
|
|
||||||
set fileNames(noDebug) [list 0 0 0 0 0 0]
|
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
|
||||||
lappend fileNames(noDebug) 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if {![info exists fileNames(noRetail)]} then {
|
|
||||||
set fileNames(noRetail) [list 0 0 0 0 0 0]
|
|
||||||
|
|
||||||
if {![info exists no(symbols)]} then {
|
|
||||||
lappend fileNames(noRetail) 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Setup the list of builds supported by this script.
|
# NOTE: Setup the list of builds supported by this script. These may be
|
||||||
|
# overridden via the user-specific customizations file.
|
||||||
#
|
#
|
||||||
if {![info exists buildNames]} then {
|
if {![info exists buildNames]} then {
|
||||||
set buildNames [list Debug Retail]
|
set buildNames [list Debug Retail]
|
||||||
@ -409,7 +462,9 @@ if {![info exists buildNames]} then {
|
|||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Setup the list of platforms supported by this script.
|
# NOTE: Setup the list of platforms supported by this script. These may be
|
||||||
|
# overridden via the command line or the user-specific customizations
|
||||||
|
# file.
|
||||||
#
|
#
|
||||||
if {![info exists platformNames]} then {
|
if {![info exists platformNames]} then {
|
||||||
set platformNames [list x86 x64 ARM]
|
set platformNames [list x86 x64 ARM]
|
||||||
@ -423,54 +478,64 @@ if {![info exists platformNames]} then {
|
|||||||
file mkdir $stagingDirectory
|
file mkdir $stagingDirectory
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Build the Tcl command used to extract the template package to the
|
# NOTE: Build the Tcl command used to extract the template VSIX package to
|
||||||
# staging directory.
|
# the staging directory.
|
||||||
#
|
#
|
||||||
set extractCommand [list exec -- $unzip $templateFile -d $stagingDirectory]
|
set extractCommand [list exec -- $unzip $templateFile -d $stagingDirectory]
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Extract the template package to the staging directory.
|
# NOTE: Extract the template VSIX package to the staging directory.
|
||||||
#
|
#
|
||||||
eval $extractCommand
|
eval $extractCommand
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Process each file in the master file list. There are actually seven
|
# NOTE: Process each file in the master file list. There are actually three
|
||||||
# parallel lists that contain the source file names, the destination file
|
# parallel lists that contain the source file names, the destination file
|
||||||
# names, the build-neutral flags, the platform-neutral flags, the
|
# names, and the file processing flags. If the "buildNeutral" flag is
|
||||||
# use-subst flags, the no-debug flags, and the no-retail flags. If the
|
# present, the file location and content do not depend on the build
|
||||||
# platform-neutral flag is non-zero, the file is not platform-specific.
|
# configuration and "CommonConfiguration" will be used in place of the
|
||||||
# If the build-neutral flag is non-zero, the file is not build-specific.
|
# build configuration name. If the "platformNeutral" flag is present,
|
||||||
# If the use-subst flag is non-zero, the file is considered to be a text
|
# the file location and content do not depend on the build platform and
|
||||||
# file that may contain Tcl variable and/or command replacements, to be
|
# "neutral" will be used in place of the build platform name. If the
|
||||||
# dynamically replaced during processing. If the no-debug flag is
|
# "subst" flag is present, the file is assumed to be a text file that may
|
||||||
# non-zero, the file will be skipped when processing for the debug build.
|
# contain Tcl variable, command, and backslash replacements, to be
|
||||||
# If the no-retail flag is non-zero, the file will be skipped when
|
# dynamically replaced during processing using the Tcl [subst] command.
|
||||||
# processing for the retail build. If the source file name is an empty
|
# If the "noDebug" flag is present, the file will be skipped when
|
||||||
# string, then the destination file name will be assumed to already exist
|
# processing for the debug build. If the "noRetail" flag is present, the
|
||||||
# in the staging directory and will not be copied; however, dynamic
|
# file will be skipped when processing for the retail build. If the
|
||||||
# replacements may still be performed on the destination file prior to
|
# "move" flag is present, the source file will be deleted after it is
|
||||||
# the package being re-zipped.
|
# copied to the destination file. If the source file name is an empty
|
||||||
|
# string, the destination file name will be assumed to already exist in
|
||||||
|
# the staging directory and will not be copied; however, Tcl variable,
|
||||||
|
# command, and backslash replacements may still be performed on the
|
||||||
|
# destination file prior to the final VSIX package being built if the
|
||||||
|
# "subst" flag is present.
|
||||||
#
|
#
|
||||||
foreach sourceFileName $fileNames(source) \
|
foreach sourceFileName $fileNames(source) \
|
||||||
destinationFileName $fileNames(destination) \
|
destinationFileName $fileNames(destination) \
|
||||||
buildNeutral $fileNames(buildNeutral) \
|
fileFlags $fileNames(flags) {
|
||||||
platformNeutral $fileNames(platformNeutral) \
|
#
|
||||||
useSubst $fileNames(subst) \
|
# NOTE: Process the file flags into separate boolean variables that may be
|
||||||
noDebug $fileNames(noDebug) \
|
# used within the loop.
|
||||||
noRetail $fileNames(noRetail) {
|
#
|
||||||
|
set isBuildNeutral [expr {[lsearch $fileFlags buildNeutral] != -1}]
|
||||||
|
set isPlatformNeutral [expr {[lsearch $fileFlags platformNeutral] != -1}]
|
||||||
|
set isMove [expr {[lsearch $fileFlags move] != -1}]
|
||||||
|
set useSubst [expr {[lsearch $fileFlags subst] != -1}]
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: If the current file is build-neutral, then only one build will
|
# NOTE: If the current file is build-neutral, then only one build will
|
||||||
# be processed for it, namely "CommonConfiguration"; otherwise, each
|
# be processed for it, namely "CommonConfiguration"; otherwise, each
|
||||||
# supported build will be processed for it individually.
|
# supported build will be processed for it individually.
|
||||||
#
|
#
|
||||||
foreach buildName \
|
foreach buildName \
|
||||||
[expr {$buildNeutral ? [list CommonConfiguration] : $buildNames}] {
|
[expr {$isBuildNeutral ? [list CommonConfiguration] : $buildNames}] {
|
||||||
#
|
#
|
||||||
# NOTE: Should the current file be skipped for this build?
|
# NOTE: Should the current file be skipped for this build?
|
||||||
#
|
#
|
||||||
if {[info exists no${buildName}] && [set no${buildName}]} then {
|
if {[lsearch $fileFlags no${buildName}] != -1} then {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -480,12 +545,12 @@ foreach sourceFileName $fileNames(source) \
|
|||||||
# supported platform will be processed for it individually.
|
# supported platform will be processed for it individually.
|
||||||
#
|
#
|
||||||
foreach platformName \
|
foreach platformName \
|
||||||
[expr {$platformNeutral ? [list neutral] : $platformNames}] {
|
[expr {$isPlatformNeutral ? [list neutral] : $platformNames}] {
|
||||||
#
|
#
|
||||||
# NOTE: Use the actual platform name in the destination file name.
|
# NOTE: Use the actual platform name in the destination file name.
|
||||||
#
|
#
|
||||||
set newDestinationFileName [replaceBuildAndPlatform \
|
set newDestinationFileName [replaceFileNameTokens $destinationFileName \
|
||||||
$destinationFileName $buildName $platformName]
|
$shortName $buildName $platformName]
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Does the source file need to be copied to the destination file?
|
# NOTE: Does the source file need to be copied to the destination file?
|
||||||
@ -499,8 +564,18 @@ foreach sourceFileName $fileNames(source) \
|
|||||||
#
|
#
|
||||||
# NOTE: Then, copy the source file to the destination file verbatim.
|
# NOTE: Then, copy the source file to the destination file verbatim.
|
||||||
#
|
#
|
||||||
file copy [replaceBuildAndPlatform $sourceFileName $buildName \
|
set newSourceFileName [replaceFileNameTokens $sourceFileName \
|
||||||
$platformName] $newDestinationFileName
|
$shortName $buildName $platformName]
|
||||||
|
|
||||||
|
file copy $newSourceFileName $newDestinationFileName
|
||||||
|
|
||||||
|
#
|
||||||
|
# NOTE: If this is a move instead of a copy, delete the source file
|
||||||
|
# now.
|
||||||
|
#
|
||||||
|
if {$isMove} then {
|
||||||
|
file delete $newSourceFileName
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -528,13 +603,13 @@ foreach sourceFileName $fileNames(source) \
|
|||||||
cd $stagingDirectory
|
cd $stagingDirectory
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Build the Tcl command used to archive the final package in the
|
# NOTE: Build the Tcl command used to archive the final VSIX package in the
|
||||||
# output directory.
|
# output directory.
|
||||||
#
|
#
|
||||||
set archiveCommand [list exec -- $zip -r $outputFile *]
|
set archiveCommand [list exec -- $zip -r $outputFile *]
|
||||||
|
|
||||||
#
|
#
|
||||||
# NOTE: Build the final package archive in the output directory.
|
# NOTE: Build the final VSIX package archive in the output directory.
|
||||||
#
|
#
|
||||||
eval $archiveCommand
|
eval $archiveCommand
|
||||||
|
|
||||||
|
Binary file not shown.
Reference in New Issue
Block a user