]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Modify VSIX build tools in support of an additional package flavor.
authormistachkin <mistachkin@noemail.net>
Sat, 20 Oct 2012 08:40:05 +0000 (08:40 +0000)
committermistachkin <mistachkin@noemail.net>
Sat, 20 Oct 2012 08:40:05 +0000 (08:40 +0000)
FossilOrigin-Name: 702ebc646b43468e6a89322e4e2f4b1ef7858589

manifest
manifest.uuid
tool/build-all-msvc.bat
tool/mkvsix.tcl
tool/win/sqlite.vsix

index 4e7f38b9c76adb61c43c16c774711494ff3fd34a..5a01ae00eec2a753ac7e34e9c7da614c551b0dde 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\ssure\ssubstructure\selements\shave\sproper\salignment\sin\sthe\sICU\stokenizers\nof\sFTS2\sand\sFTS3.
-D 2012-10-19T02:10:53.511
+C Modify\sVSIX\sbuild\stools\sin\ssupport\sof\san\sadditional\spackage\sflavor.
+D 2012-10-20T08:40:05.626
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5f4f26109f9d80829122e0e09f9cda008fa065fb
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -977,7 +977,7 @@ F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
 F test/win32lock.test b2a539e85ae6b2d78475e016a9636b4451dc7fb9
 F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
 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/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
 F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
@@ -995,7 +995,7 @@ F tool/mksqlite3c-noext.tcl 8bce31074e4cbe631bb7676526a048335f4c9f02
 F tool/mksqlite3c.tcl 589c7f44e990be1b8443cfe4808dce392b0327fa
 F tool/mksqlite3h.tcl 78013ad79a5e492e5f764f3c7a8ef834255061f8
 F tool/mksqlite3internalh.tcl 3dca7bb5374cee003379b8cbac73714f610ef795
-F tool/mkvsix.tcl c5e0d52592fb07a17626cd54e5f71295fb4d1b55
+F tool/mkvsix.tcl 0c7febb4115fd278ff5764f59bf5111172d78d1b
 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
 F tool/omittest.tcl 4665982e95a6e5c1bd806cf7bc3dea95be422d77
 F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
@@ -1020,8 +1020,11 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
-P 0482c73bfdf80b0c0ce9abea706554d7ddf36f69
-R 359b18ae3c286a09e1c7579425de96fe
-U drh
-Z 09f8af841cfaabcfb0c92e8b07cb012e
+F tool/win/sqlite.vsix afaf61050ca4587a7acf3335fc4cde7c9aa254af
+P aaa2d9b0db74d8452d9294de17cff786ab4ec7c8
+R 75ba814e4bd96022706eb169d0651507
+T *branch * vsixFlavor
+T *sym-vsixFlavor *
+T -sym-trunk *
+U mistachkin
+Z ef10ccc9c6ae9e2d11f5c86ef842bcab
index 9bcbd35ae6f6cc61cdefc4b443c628e7351e411a..7e2c2365350a034a631d003a29b6bb392f2ce5dc 100644 (file)
@@ -1 +1 @@
-aaa2d9b0db74d8452d9294de17cff786ab4ec7c8
\ No newline at end of file
+702ebc646b43468e6a89322e4e2f4b1ef7858589
\ No newline at end of file
index c768e2b6e84bb42d4a042cf7bd5c4cfa53f25526..758036fb75755ccf734b59337cd042d2785497aa 100755 (executable)
@@ -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\r
 REM       directories.\r
 REM\r
+SET amd64_NAME=x64\r
+SET arm_NAME=ARM\r
+SET x64_NAME=x64\r
 SET x86_NAME=x86\r
 SET x86_amd64_NAME=x64\r
 SET x86_arm_NAME=ARM\r
+SET x86_x64_NAME=x64\r
 \r
+%_VECHO% amd64_Name = '%amd64_NAME%'\r
+%_VECHO% arm_Name = '%arm_NAME%'\r
+%_VECHO% x64_Name = '%x64_NAME%'\r
 %_VECHO% x86_Name = '%x86_NAME%'\r
 %_VECHO% x86_amd64_Name = '%x86_amd64_NAME%'\r
 %_VECHO% x86_arm_Name = '%x86_arm_NAME%'\r
+%_VECHO% x86_x64_Name = '%x86_x64_NAME%'\r
 \r
 REM\r
 REM NOTE: Check for the external tools needed during the build process ^(i.e.\r
@@ -210,6 +218,19 @@ IF "%VisualStudioVersion%" == "11.0" (
   CALL :fn_UnsetVariable SET_NSDKLIBPATH\r
 )\r
 \r
+REM\r
+REM NOTE: Check if this is the Windows Phone SDK.  If so, a different batch\r
+REM       file is necessary to setup the build environment.  Since the variable\r
+REM       values involved here may contain parenthesis, using GOTO instead of\r
+REM       an IF block is required.\r
+REM\r
+IF DEFINED WindowsPhoneKitDir GOTO set_vcvarsall_phone\r
+SET VCVARSALL=%VCINSTALLDIR%\vcvarsall.bat\r
+GOTO set_vcvarsall_done\r
+:set_vcvarsall_phone\r
+SET VCVARSALL=%VCINSTALLDIR%\WPSDK\WP80\vcvarsphoneall.bat\r
+:set_vcvarsall_done\r
+\r
 REM\r
 REM NOTE: This is the outer loop.  There should be exactly one iteration per\r
 REM       platform.\r
@@ -250,6 +271,7 @@ FOR %%P IN (%PLATFORMS%) DO (
     CALL :fn_UnsetVariable Platform\r
     REM CALL :fn_UnsetVariable VCINSTALLDIR\r
     CALL :fn_UnsetVariable VSINSTALLDIR\r
+    CALL :fn_UnsetVariable WindowsPhoneKitDir\r
     CALL :fn_UnsetVariable WindowsSdkDir\r
     CALL :fn_UnsetVariable WindowsSdkDir_35\r
     CALL :fn_UnsetVariable WindowsSdkDir_old\r
@@ -292,10 +314,10 @@ FOR %%P IN (%PLATFORMS%) DO (
         REM\r
         REM NOTE: Attempt to setup the MSVC environment for this platform.\r
         REM\r
-        %__ECHO3% CALL "%VCINSTALLDIR%\vcvarsall.bat" %%P\r
+        %__ECHO3% CALL "%VCVARSALL%" %%P\r
 \r
         IF ERRORLEVEL 1 (\r
-          ECHO Failed to call "%VCINSTALLDIR%\vcvarsall.bat" for platform %%P.\r
+          ECHO Failed to call "%VCVARSALL%" for platform %%P.\r
           GOTO errors\r
         )\r
 \r
@@ -305,10 +327,12 @@ FOR %%P IN (%PLATFORMS%) DO (
         REM       as current versions of their official batch file do not set\r
         REM       the exit code upon failure.\r
         REM\r
-        IF NOT DEFINED __ECHO (\r
-          IF NOT DEFINED WindowsSdkDir (\r
-            ECHO Cannot build, Windows SDK not found for platform %%P.\r
-            GOTO errors\r
+        IF NOT DEFINED __ECHO3 (\r
+          IF NOT DEFINED WindowsPhoneKitDir (\r
+            IF NOT DEFINED WindowsSdkDir (\r
+              ECHO Cannot build, Windows SDK not found for platform %%P.\r
+              GOTO errors\r
+            )\r
           )\r
         )\r
 \r
@@ -322,8 +346,13 @@ FOR %%P IN (%PLATFORMS%) DO (
         REM       file used to setup the MSVC environment.\r
         REM\r
         IF DEFINED SET_NSDKLIBPATH (\r
-          CALL :fn_CopyVariable WindowsSdkDir NSDKLIBPATH\r
-          CALL :fn_AppendVariable NSDKLIBPATH \lib\win8\um\x86\r
+          IF DEFINED WindowsPhoneKitDir (\r
+            CALL :fn_CopyVariable WindowsPhoneKitDir NSDKLIBPATH\r
+            CALL :fn_AppendVariable NSDKLIBPATH \lib\x86\r
+          ) ELSE IF DEFINED WindowsSdkDir (\r
+            CALL :fn_CopyVariable WindowsSdkDir NSDKLIBPATH\r
+            CALL :fn_AppendVariable NSDKLIBPATH \lib\win8\um\x86\r
+          )\r
         )\r
 \r
         REM\r
index 750453ab94aa42da7f9ef7ee1a622a335253e6bd..dcf195ee0ec548732d69cadf7f3fcacdb7103242 100644 (file)
 #
 # USAGE
 #
-# Typically, when on Windows, this script is executed using commands similar to
-# the following (from a normal Windows command prompt window):
+# The first argument to this script is required and must be the name of the
+# 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
 #                         tclsh85 tool\mkvsix.tcl C:\Temp
@@ -89,11 +99,16 @@ proc fail { {error ""} {usage false} } {
 
   puts stdout "usage:\
 [file tail [info nameofexecutable]]\
-[file tail [info script]] <binaryDirectory> \[sourceDirectory\]"
+[file tail [info script]] <binaryDirectory> \[sourceDirectory\]\
+\[packageFlavor\] \[platformNames\]"
 
   exit 1
 }
 \f
+proc appendArgs { args } {
+  set result ""; eval append result $args
+}
+\f
 proc getEnvironmentVariable { name } {
   #
   # NOTE: Returns the value of the specified environment variable or an empty
@@ -162,21 +177,24 @@ proc writeFile { fileName data } {
 proc substFile { fileName } {
   #
   # 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.
   #
   return [writeFile $fileName [uplevel 1 [list subst [readFile $fileName]]]]
 }
 \f
-proc replaceBuildAndPlatform { fileName buildName platformName } {
+proc replaceFileNameTokens { fileName name buildName platformName } {
   #
   # NOTE: Returns the specified file name containing the platform name instead
   #       of platform placeholder tokens.
   #
-  return [string map [list <build> $buildName <platform> $platformName] \
-      $fileName]
+  return [string map [list <build> $buildName <platform> $platformName \
+      <name> $name] $fileName]
 }
 \f
+#
+# NOTE: This is the entry point for this script.
+#
 set script [file normalize [info script]]
 
 if {[string length $script] == 0} then {
@@ -192,7 +210,7 @@ set rootName [file rootname [file tail $script]]
 # NOTE: Process and verify all the command line arguments.
 #
 set argc [llength $argv]
-if {$argc != 1 && $argc != 2} then {fail}
+if {$argc < 1 || $argc > 4} then {fail}
 
 set binaryDirectory [lindex $argv 0]
 
@@ -205,7 +223,7 @@ if {![file exists $binaryDirectory] || \
   fail "binary directory does not exist"
 }
 
-if {$argc == 2} then {
+if {$argc >= 2} then {
   set sourceDirectory [lindex $argv 1]
 } else {
   #
@@ -224,6 +242,47 @@ if {![file exists $sourceDirectory] || \
   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 +306,7 @@ if {![file exists $templateFile] || \
 }
 
 set currentDirectory [pwd]
-set outputFile [file join $currentDirectory sqlite-output.vsix]
+set outputFile [file join $currentDirectory sqlite-$packageFlavor-output.vsix]
 
 if {[file exists $outputFile]} then {
   fail [appendArgs "output file \"" $outputFile "\" already exists"]
@@ -323,17 +382,41 @@ if {![regexp -line -- $pattern $data dummy version]} then {
 ###############################################################################
 
 #
-# NOTE: Setup all the master file list data.  This includes the source and
-#       destination file names, build-neutral boolean flags, platform-neutral
-#       boolean flags, and the dynamic content (subst) boolean flags.  There
-#       is also one set of boolean flags per build configuration, currently
-#       "Debug" and "Retail", that control which files are skipped for it.
+# NOTE: Setup all the master file list data.  This includes the source file
+#       names, the destination file names, and the file processing flags.  The
+#       possible file processing flags are:
+#
+#       "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 {
-  set fileNames(source) [list "" "" "" \
-      [file join $sourceDirectory sqlite3.h] \
-      [file join $binaryDirectory <build> <platform> sqlite3.lib] \
-      [file join $binaryDirectory <build> <platform> sqlite3.dll]]
+  set fileNames(source) [list "" "" \
+    [file join $stagingDirectory DesignTime <build> <platform> sqlite3.props] \
+    [file join $sourceDirectory sqlite3.h] \
+    [file join $binaryDirectory <build> <platform> sqlite3.lib] \
+    [file join $binaryDirectory <build> <platform> sqlite3.dll]]
 
   if {![info exists no(symbols)]} then {
     lappend fileNames(source) \
@@ -343,13 +426,12 @@ if {![info exists fileNames(source)]} then {
 
 if {![info exists fileNames(destination)]} then {
   set fileNames(destination) [list \
-      [file join $stagingDirectory extension.vsixmanifest] \
-      [file join $stagingDirectory SDKManifest.xml] \
-      [file join $stagingDirectory DesignTime <build> <platform> \
-          SQLite.WinRT.props] \
-      [file join $stagingDirectory DesignTime <build> <platform> sqlite3.h] \
-      [file join $stagingDirectory DesignTime <build> <platform> sqlite3.lib] \
-      [file join $stagingDirectory Redist <build> <platform> sqlite3.dll]]
+    [file join $stagingDirectory extension.vsixmanifest] \
+    [file join $stagingDirectory SDKManifest.xml] \
+    [file join $stagingDirectory DesignTime <build> <platform> <name>.props] \
+    [file join $stagingDirectory DesignTime <build> <platform> sqlite3.h] \
+    [file join $stagingDirectory DesignTime <build> <platform> sqlite3.lib] \
+    [file join $stagingDirectory Redist <build> <platform> sqlite3.dll]]
 
   if {![info exists no(symbols)]} then {
     lappend fileNames(destination) \
@@ -357,50 +439,24 @@ if {![info exists fileNames(destination)]} then {
   }
 }
 
-if {![info exists fileNames(buildNeutral)]} then {
-  set fileNames(buildNeutral) [list 1 1 1 1 0 0]
+if {![info exists fileNames(flags)]} then {
+  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 {
-    lappend fileNames(buildNeutral) 0
-  }
-}
-
-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
+    lappend fileNames(flags) [list noRetail]
   }
 }
 
 ###############################################################################
 
 #
-# 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 {
   set buildNames [list Debug Retail]
@@ -409,7 +465,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 {
   set platformNames [list x86 x64 ARM]
@@ -423,54 +481,64 @@ if {![info exists platformNames]} then {
 file mkdir $stagingDirectory
 
 #
-# NOTE: Build the Tcl command used to extract the template package to the
-#       staging directory.
+# NOTE: Build the Tcl command used to extract the template VSIX package to
+#       the staging directory.
 #
 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
 
 ###############################################################################
 
 #
-# 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
-#       names, the build-neutral flags, the platform-neutral flags, the
-#       use-subst flags, the no-debug flags, and the no-retail flags.  If the
-#       platform-neutral flag is non-zero, the file is not platform-specific.
-#       If the build-neutral flag is non-zero, the file is not build-specific.
-#       If the use-subst flag is non-zero, the file is considered to be a text
-#       file that may contain Tcl variable and/or command replacements, to be
-#       dynamically replaced during processing.  If the no-debug flag is
-#       non-zero, the file will be skipped when processing for the debug build.
-#       If the no-retail flag is non-zero, the file will be skipped when
-#       processing for the retail build.  If the source file name is an empty
-#       string, then the destination file name will be assumed to already exist
-#       in the staging directory and will not be copied; however, dynamic
-#       replacements may still be performed on the destination file prior to
-#       the package being re-zipped.
+#       names, and the file processing flags. If the "buildNeutral" flag is
+#       present, the file location and content do not depend on the build
+#       configuration and "CommonConfiguration" will be used in place of the
+#       build configuration name.  If the "platformNeutral" flag is present,
+#       the file location and content do not depend on the build platform and
+#       "neutral" will be used in place of the build platform name.  If the
+#       "subst" flag is present, the file is assumed to be a text file that may
+#       contain Tcl variable, command, and backslash replacements, to be
+#       dynamically replaced during processing using the Tcl [subst] command.
+#       If the "noDebug" flag is present, the file will be skipped when
+#       processing for the debug build.  If the "noRetail" flag is present, the
+#       file will be skipped when processing for the retail build.  If the
+#       "move" flag is present, the source file will be deleted after it is
+#       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) \
         destinationFileName $fileNames(destination) \
-        buildNeutral        $fileNames(buildNeutral) \
-        platformNeutral     $fileNames(platformNeutral) \
-        useSubst            $fileNames(subst) \
-        noDebug             $fileNames(noDebug) \
-        noRetail            $fileNames(noRetail) {
+        fileFlags           $fileNames(flags) {
+  #
+  # NOTE: Process the file flags into separate boolean variables that may be
+  #       used within the loop.
+  #
+  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
   #       be processed for it, namely "CommonConfiguration"; otherwise, each
   #       supported build will be processed for it individually.
   #
   foreach buildName \
-      [expr {$buildNeutral ? [list CommonConfiguration] : $buildNames}] {
+      [expr {$isBuildNeutral ? [list CommonConfiguration] : $buildNames}] {
     #
     # 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
     }
 
@@ -480,12 +548,12 @@ foreach sourceFileName      $fileNames(source) \
     #       supported platform will be processed for it individually.
     #
     foreach platformName \
-        [expr {$platformNeutral ? [list neutral] : $platformNames}] {
+        [expr {$isPlatformNeutral ? [list neutral] : $platformNames}] {
       #
       # NOTE: Use the actual platform name in the destination file name.
       #
-      set newDestinationFileName [replaceBuildAndPlatform \
-          $destinationFileName $buildName $platformName]
+      set newDestinationFileName [replaceFileNameTokens $destinationFileName \
+          $shortName $buildName $platformName]
 
       #
       # NOTE: Does the source file need to be copied to the destination file?
@@ -499,8 +567,18 @@ foreach sourceFileName      $fileNames(source) \
         #
         # NOTE: Then, copy the source file to the destination file verbatim.
         #
-        file copy [replaceBuildAndPlatform $sourceFileName $buildName \
-            $platformName] $newDestinationFileName
+        set newSourceFileName [replaceFileNameTokens $sourceFileName \
+            $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 +606,13 @@ foreach sourceFileName      $fileNames(source) \
 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.
 #
 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
 
index 4bdfda5c7df1cbd70227f33bb4b2200a7b77c25e..13f121f2fecba8e02d0e9eec0d31865d941afff7 100644 (file)
Binary files a/tool/win/sqlite.vsix and b/tool/win/sqlite.vsix differ