| Index: third_party/sqlite/src/tool/build-all-msvc.bat
|
| diff --git a/third_party/sqlite/src/tool/build-all-msvc.bat b/third_party/sqlite/src/tool/build-all-msvc.bat
|
| index 8f4c43d22c79029aa05f222bc317d0285ee18050..37aa1bf6fcad8987c7a84c5ff802af4584d4f139 100755
|
| --- a/third_party/sqlite/src/tool/build-all-msvc.bat
|
| +++ b/third_party/sqlite/src/tool/build-all-msvc.bat
|
| @@ -22,7 +22,7 @@ REM
|
| REM Example:
|
| REM
|
| REM CD /D C:\dev\sqlite\core
|
| -REM tool\build-all-msvc.bat C:\Temp
|
| +REM CALL tool\build-all-msvc.bat C:\Temp
|
| REM
|
| REM In the example above, "C:\dev\sqlite\core" represents the root of the
|
| REM source tree for SQLite and "C:\Temp" represents the final destination
|
| @@ -54,6 +54,11 @@ REM
|
| REM There are a few other environment variables that impact the build process
|
| REM when set ^(to anything^), they are:
|
| REM
|
| +REM USE_AUTOCONF_MAKEFILE
|
| +REM
|
| +REM When set, the "autoconf" Makefile for MSVC will be used instead of the main
|
| +REM Makefile for MSVC. It must exist at "%ROOT%\autoconf\Makefile.msc".
|
| +REM
|
| REM NOCLEAN
|
| REM
|
| REM When set, the "clean" target will not be used during each build iteration.
|
| @@ -69,6 +74,11 @@ REM be skipped and they will not appear in the final destination directory.
|
| REM Setting this environment variable is never strictly needed and could cause
|
| REM issues in some circumstances; therefore, setting it is not recommended.
|
| REM
|
| +REM NOMEMDEBUG
|
| +REM
|
| +REM When set, disables use of MEMDEBUG when building binaries for the "Debug"
|
| +REM configuration.
|
| +REM
|
| REM BUILD_ALL_SHELL
|
| REM
|
| REM When set, the command line shell will be built for each selected platform
|
| @@ -88,17 +98,30 @@ REM on the WindowsSdkDir environment variable. It causes this batch script to
|
| REM assume the Windows 10.0 SDK location should be used.
|
| REM
|
| REM NMAKE_ARGS
|
| +REM NMAKE_ARGS_DEBUG
|
| +REM NMAKE_ARGS_RETAIL
|
| REM
|
| -REM When set, the value is expanded and passed to the NMAKE command line, after
|
| -REM its other arguments. This is used to specify additional NMAKE options, for
|
| -REM example:
|
| +REM When set, these values are expanded and passed to the NMAKE command line,
|
| +REM after its other arguments. These may be used to specify additional NMAKE
|
| +REM options, for example:
|
| REM
|
| REM SET NMAKE_ARGS=FOR_WINRT=1
|
| +REM SET NMAKE_ARGS_DEBUG=MEMDEBUG=1
|
| +REM SET NMAKE_ARGS_RETAIL=WIN32HEAP=1
|
| REM
|
| REM Using the above command before running this tool will cause the compiled
|
| REM binaries to target the WinRT environment, which provides a subset of the
|
| REM Win32 API.
|
| REM
|
| +REM DLL_FILE_NAME
|
| +REM DLL_PDB_FILE_NAME
|
| +REM LIB_FILE_NAME
|
| +REM EXE_FILE_NAME
|
| +REM EXE_PDB_FILE_NAME
|
| +REM
|
| +REM When set, these values will override the associated target file name used
|
| +REM for the build.
|
| +REM
|
| SETLOCAL
|
|
|
| REM SET __ECHO=ECHO
|
| @@ -204,11 +227,17 @@ REM NOTE: If the command used to invoke NMAKE is not already set, use the
|
| REM default.
|
| REM
|
| IF NOT DEFINED NMAKE_CMD (
|
| - SET NMAKE_CMD=nmake -B -f Makefile.msc
|
| + IF DEFINED USE_AUTOCONF_MAKEFILE (
|
| + SET NMAKE_CMD=nmake -B -f autoconf\Makefile.msc
|
| + ) ELSE (
|
| + SET NMAKE_CMD=nmake -B -f Makefile.msc
|
| + )
|
| )
|
|
|
| %_VECHO% NmakeCmd = '%NMAKE_CMD%'
|
| %_VECHO% NmakeArgs = '%NMAKE_ARGS%'
|
| +%_VECHO% NmakeArgsDebug = '%NMAKE_ARGS_DEBUG%'
|
| +%_VECHO% NmakeArgsRetail = '%NMAKE_ARGS_RETAIL%'
|
|
|
| REM
|
| REM NOTE: Setup environment variables to translate between the MSVC platform
|
| @@ -239,7 +268,7 @@ REM
|
| IF DEFINED TCLSH_CMD (
|
| SET TCLSH_FILE=%TCLSH_CMD%
|
| ) ELSE (
|
| - SET TCLSH_FILE=tclsh85.exe
|
| + SET TCLSH_FILE=tclsh.exe
|
| )
|
|
|
| FOR %%T IN (%TCLSH_FILE%) DO (
|
| @@ -256,6 +285,30 @@ IF NOT DEFINED %TCLSH_FILE%_PATH (
|
| )
|
|
|
| REM
|
| +REM NOTE: Setup the default names for the build targets we are creating. Any
|
| +REM ^(or all^) of these may end up being overridden.
|
| +REM
|
| +IF NOT DEFINED DLL_FILE_NAME (
|
| + SET DLL_FILE_NAME=sqlite3.dll
|
| +)
|
| +
|
| +IF NOT DEFINED DLL_PDB_FILE_NAME (
|
| + SET DLL_PDB_FILE_NAME=sqlite3.pdb
|
| +)
|
| +
|
| +IF NOT DEFINED LIB_FILE_NAME (
|
| + SET LIB_FILE_NAME=sqlite3.lib
|
| +)
|
| +
|
| +IF NOT DEFINED EXE_FILE_NAME (
|
| + SET EXE_FILE_NAME=sqlite3.exe
|
| +)
|
| +
|
| +IF NOT DEFINED EXE_PDB_FILE_NAME (
|
| + SET EXE_PDB_FILE_NAME=sqlite3sh.pdb
|
| +)
|
| +
|
| +REM
|
| REM NOTE: Set the TOOLPATH variable to contain all the directories where the
|
| REM external tools were found in the search above.
|
| REM
|
| @@ -434,13 +487,21 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM NOTE: Setting this to non-zero should enable the SQLITE_MEMDEBUG
|
| REM define.
|
| REM
|
| - SET MEMDEBUG=1
|
| + IF NOT DEFINED NOMEMDEBUG (
|
| + SET MEMDEBUG=1
|
| + )
|
| ) ELSE (
|
| CALL :fn_UnsetVariable DEBUG
|
| CALL :fn_UnsetVariable MEMDEBUG
|
| )
|
|
|
| REM
|
| + REM NOTE: Copy the extra NMAKE arguments for this configuration into the
|
| + REM common variable used by the actual commands.
|
| + REM
|
| + CALL :fn_CopyVariable NMAKE_ARGS_%%B NMAKE_ARGS_CFG
|
| +
|
| + REM
|
| REM NOTE: Launch a nested command shell to perform the following steps:
|
| REM
|
| REM 1. Setup the MSVC environment for this platform using the
|
| @@ -546,7 +607,7 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM file, etc.
|
| REM
|
| IF NOT DEFINED NOCLEAN (
|
| - %__ECHO% %NMAKE_CMD% clean
|
| + CALL :fn_MakeClean %%D
|
|
|
| IF ERRORLEVEL 1 (
|
| ECHO Failed to clean for platform %%P.
|
| @@ -559,7 +620,7 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM specifically wanting to build for each platform.
|
| REM
|
| %_AECHO% Cleaning final core library output files only...
|
| - %__ECHO% DEL /Q *.lo sqlite3.dll sqlite3.lib sqlite3.pdb 2%REDIRECT% NUL
|
| + %__ECHO% DEL /Q *.lo "%DLL_FILE_NAME%" "%LIB_FILE_NAME%" "%DLL_PDB_FILE_NAME%" 2%REDIRECT% NUL
|
| )
|
|
|
| REM
|
| @@ -569,10 +630,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM Also, disable looking for and/or linking to the native Tcl
|
| REM runtime library.
|
| REM
|
| - %__ECHO% %NMAKE_CMD% sqlite3.dll XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS%
|
| + CALL :fn_MakeDll %%D
|
|
|
| IF ERRORLEVEL 1 (
|
| - ECHO Failed to build %%B "sqlite3.dll" for platform %%P.
|
| + ECHO Failed to build %%B "%DLL_FILE_NAME%" for platform %%P.
|
| GOTO errors
|
| )
|
|
|
| @@ -580,10 +641,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM NOTE: Copy the "sqlite3.dll" file to the appropriate directory for
|
| REM the build and platform beneath the binary directory.
|
| REM
|
| - %__ECHO% XCOPY sqlite3.dll "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
| + %__ECHO% XCOPY "%DLL_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
|
|
| IF ERRORLEVEL 1 (
|
| - ECHO Failed to copy "sqlite3.dll" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| + ECHO Failed to copy "%DLL_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| GOTO errors
|
| )
|
|
|
| @@ -591,10 +652,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM NOTE: Copy the "sqlite3.lib" file to the appropriate directory for
|
| REM the build and platform beneath the binary directory.
|
| REM
|
| - %__ECHO% XCOPY sqlite3.lib "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
| + %__ECHO% XCOPY "%LIB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
|
|
| IF ERRORLEVEL 1 (
|
| - ECHO Failed to copy "sqlite3.lib" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| + ECHO Failed to copy "%LIB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| GOTO errors
|
| )
|
|
|
| @@ -604,11 +665,13 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM are prevented from doing so.
|
| REM
|
| IF NOT DEFINED NOSYMBOLS (
|
| - %__ECHO% XCOPY sqlite3.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
| + IF EXIST "%DLL_PDB_FILE_NAME%" (
|
| + %__ECHO% XCOPY "%DLL_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
|
|
| - IF ERRORLEVEL 1 (
|
| - ECHO Failed to copy "sqlite3.pdb" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| - GOTO errors
|
| + IF ERRORLEVEL 1 (
|
| + ECHO Failed to copy "%DLL_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| + GOTO errors
|
| + )
|
| )
|
| )
|
|
|
| @@ -627,7 +690,7 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM specifically wanting to build for each platform.
|
| REM
|
| %_AECHO% Cleaning final shell executable output files only...
|
| - %__ECHO% DEL /Q sqlite3.exe sqlite3sh.pdb 2%REDIRECT% NUL
|
| + %__ECHO% DEL /Q "%EXE_FILE_NAME%" "%EXE_PDB_FILE_NAME%" 2%REDIRECT% NUL
|
| )
|
|
|
| REM
|
| @@ -637,10 +700,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM Also, disable looking for and/or linking to the native Tcl
|
| REM runtime library.
|
| REM
|
| - %__ECHO% %NMAKE_CMD% sqlite3.exe XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS%
|
| + CALL :fn_MakeExe %%D
|
|
|
| IF ERRORLEVEL 1 (
|
| - ECHO Failed to build %%B "sqlite3.exe" for platform %%P.
|
| + ECHO Failed to build %%B "%EXE_FILE_NAME%" for platform %%P.
|
| GOTO errors
|
| )
|
|
|
| @@ -648,10 +711,10 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM NOTE: Copy the "sqlite3.exe" file to the appropriate directory
|
| REM for the build and platform beneath the binary directory.
|
| REM
|
| - %__ECHO% XCOPY sqlite3.exe "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
| + %__ECHO% XCOPY "%EXE_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
|
|
| IF ERRORLEVEL 1 (
|
| - ECHO Failed to copy "sqlite3.exe" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| + ECHO Failed to copy "%EXE_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| GOTO errors
|
| )
|
|
|
| @@ -661,11 +724,13 @@ FOR %%P IN (%PLATFORMS%) DO (
|
| REM unless we are prevented from doing so.
|
| REM
|
| IF NOT DEFINED NOSYMBOLS (
|
| - %__ECHO% XCOPY sqlite3sh.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
| + IF EXIST "%EXE_PDB_FILE_NAME%" (
|
| + %__ECHO% XCOPY "%EXE_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS%
|
|
|
| - IF ERRORLEVEL 1 (
|
| - ECHO Failed to copy "sqlite3sh.pdb" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| - GOTO errors
|
| + IF ERRORLEVEL 1 (
|
| + ECHO Failed to copy "%EXE_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\".
|
| + GOTO errors
|
| + )
|
| )
|
| )
|
| )
|
| @@ -696,6 +761,18 @@ REM NOTE: If we get to this point, we have succeeded.
|
| REM
|
| GOTO no_errors
|
|
|
| +:fn_MakeClean
|
| + %__ECHO% %NMAKE_CMD% clean "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
|
| + GOTO :EOF
|
| +
|
| +:fn_MakeDll
|
| + %__ECHO% %NMAKE_CMD% "%DLL_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
|
| + GOTO :EOF
|
| +
|
| +:fn_MakeExe
|
| + %__ECHO% %NMAKE_CMD% "%EXE_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG%
|
| + GOTO :EOF
|
| +
|
| :fn_ShowVariable
|
| SETLOCAL
|
| SET __ECHO_CMD=ECHO %%%2%%
|
| @@ -729,10 +806,16 @@ GOTO no_errors
|
| GOTO :EOF
|
|
|
| :fn_UnsetVariable
|
| - IF NOT "%1" == "" (
|
| - SET %1=
|
| - CALL :fn_ResetErrorLevel
|
| + SETLOCAL
|
| + SET VALUE=%1
|
| + IF DEFINED VALUE (
|
| + SET VALUE=
|
| + ENDLOCAL
|
| + SET %VALUE%=
|
| + ) ELSE (
|
| + ENDLOCAL
|
| )
|
| + CALL :fn_ResetErrorLevel
|
| GOTO :EOF
|
|
|
| :fn_AppendVariable
|
|
|