Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao <liming....@intel.com> Reviewed-by: Wu Hao A <hao.a...@intel.com> --- BaseTools/Scripts/SetVisualStudio.bat | 2 +- BaseTools/Scripts/ShowEnvironment.bat | 2 ++ Edk2Setup.bat | 64 +++++++++++++++++++++++++---------- 3 files changed, 50 insertions(+), 18 deletions(-)
diff --git a/BaseTools/Scripts/SetVisualStudio.bat b/BaseTools/Scripts/SetVisualStudio.bat index a302a83..d379cd7 100755 --- a/BaseTools/Scripts/SetVisualStudio.bat +++ b/BaseTools/Scripts/SetVisualStudio.bat @@ -68,7 +68,7 @@ if not exist "%COMMONTOOLSx64%\vcvarsx86_amd64.bat" ( @goto End :RebuildTools -@call python "%WORKSPACE%\BaseTools\Scripts\UpdateBuildVersions.py" +@call python "%BASE_TOOLS_PATH%\Scripts\UpdateBuildVersions.py" @set "BIN_DIR=%EDK_TOOLS_PATH%\Bin\Win32" if not exist "%BIN_DIR%" @mkdir "%BIN_DIR%" @echo Removing temporary and binary files diff --git a/BaseTools/Scripts/ShowEnvironment.bat b/BaseTools/Scripts/ShowEnvironment.bat index c4613e1..2b320fb 100755 --- a/BaseTools/Scripts/ShowEnvironment.bat +++ b/BaseTools/Scripts/ShowEnvironment.bat @@ -47,9 +47,11 @@ if defined SRC_CONF @goto SetEnv @echo ############################################################################# @if defined WORKSPACE @echo WORKSPACE = %WORKSPACE% @if not defined WORKSPACE @echo WORKSPACE = Not Set +@if defined PACKAGES_PATH @echo PACKAGES_PATH = %PACKAGES_PATH% @if defined EDK_TOOLS_PATH @echo EDK_TOOLS_PATH = %EDK_TOOLS_PATH% @if not defined EDK_TOOLS_PATH @echo EDK_TOOLS_PATH = Not Set @if defined BASE_TOOLS_PATH @echo BASE_TOOLS_PATH = %BASE_TOOLS_PATH% +@if defined EDK_TOOLS_BIN @echo EDK_TOOLS_BIN = %EDK_TOOLS_BIN% @if defined PYTHON_FREEZER_PATH @echo PYTHON_FREEZER_PATH = %PYTHON_FREEZER_PATH% @if "%NT32PKG%"=="TRUE" ( @echo. diff --git a/Edk2Setup.bat b/Edk2Setup.bat index 0aa786d..2d13234 100755 --- a/Edk2Setup.bat +++ b/Edk2Setup.bat @@ -62,14 +62,33 @@ @if not defined ORIGINAL_PATH set "ORIGINAL_PATH=%PATH%" @REM Always set the WORKSPACE environment variable to the current directory -@set "WORKSPACE=%CD%" -@if exist "%WORKSPACE%\BaseTools" @set "BASE_TOOLS_PATH=%WORKSPACE%\BaseTools" +@if not defined WORKSPACE ( + @set "WORKSPACE=%CD%" +) +@if not exist "%BASE_TOOLS_PATH%" ( + @if exist "%WORKSPACE%\BaseTools" ( + set "BASE_TOOLS_PATH=%WORKSPACE%\BaseTools" + ) else ( + @if defined PACKAGES_PATH ( + @for %%i IN (%PACKAGES_PATH%) DO ( + @if exist %%~fi\BaseTools ( + @set BASE_TOOLS_PATH=%%~fi\BaseTools + @goto checkBaseTools + ) + ) + ) + ) +) +:checkBaseTools +@if not defined BASE_TOOLS_PATH ( + @echo. + @echo !!! ERROR !!! The BaseTools Package was not found !!! + @echo. + @goto ExitFailure +) @if not exist "%WORKSPACE%\Conf" @mkdir "%WORKSPACE%\Conf" -@@if not defined EDK_TOOLS_PATH @set "EDK_TOOLS_PATH=%WORKSPACE%\BaseTools" -@rem @set "PATH=%WORKSPACE%\BaseTools\Bin\Win32;%PATH%" -@rem @set WORKSPACE_TOOLS_PATH=%WORKSPACE%\BaseTools -@rem ) +@@if not defined EDK_TOOLS_PATH @set "EDK_TOOLS_PATH=%BASE_TOOLS_PATH%" @REM Keep the existing EDK_TOOLS_PATH value, the --reset flag will set it @REM back to WORKSPACE\BaseTools while the --location DIRECTORY flag will @@ -259,7 +278,7 @@ @echo %SCRIPT_NAME% Version: %SCRIPT_VERSION%%SVN_REVISION:~11,-1% @echo Copyright(c) 2014, Intel Corporation. All rights reserved. @set HIDE_PATH=TRUE -@call "%WORKSPACE%\BaseTools\Scripts\ShowEnvironment.bat" +@call "%BASE_TOOLS_PATH%\Scripts\ShowEnvironment.bat" @set HIDE_PATH= @goto ExitSuccess @@ -352,8 +371,8 @@ @REM copied or replaced from the WORKSPACE\BaseTools\Conf directories' template files. :SetConf @if not exist "%EDK_TOOLS_PATH%\Conf" ( - @if exist "%WORKSPACE%\BaseTools\Conf" ( - @set "SRC_CONF=%WORKSPACE%\BaseTools\Conf" + @if exist "%BASE_TOOLS_PATH%\Conf" ( + @set "SRC_CONF=%BASE_TOOLS_PATH%\Conf" ) ) else ( @set "SRC_CONF=%EDK_TOOLS_PATH%\Conf" @@ -365,7 +384,7 @@ @REM The script will test to see if the files exist, and also use the RESET_ENVIRONMENT flag @REM to overwrite the WORKSPACE\Conf *.txt files. -@call "%WORKSPACE%\BaseTools\Scripts\ShowEnvironment.bat" +@call "%BASE_TOOLS_PATH%\Scripts\ShowEnvironment.bat" @if errorlevel 1 ( @echo Unable to copy the template files from "%SRC_CONF%" to "%WORKSPACE%\Conf" @goto ExitFailure @@ -375,22 +394,34 @@ @REM Set up Visual Studio if required to build the Nt32Pkg/Nt32Pkg.dsc emulator @if "%NT32PKG%"=="TRUE" ( @if not defined VSINSTALLDIR @set "PATH=%ORIGINAL_PATH%" - @if not defined NT32_X64 @call "%WORKSPACE%\BaseTools\get_vsvars.bat" - @if defined NT32_X64 call "%WORKSPACE%\BaseTools\Scripts\SetVisualStudio.bat" + @if not defined NT32_X64 @call "%BASE_TOOLS_PATH%\get_vsvars.bat" + @if defined NT32_X64 call "%BASE_TOOLS_PATH%\Scripts\SetVisualStudio.bat" ) @if "%NT32PKG%"=="TRUE" ( @if not defined VS_PATH set "VS_PATH=%PATH%" ) @if defined VS_PATH @set "PATH=%VS_PATH%" @if not defined VS_PATH @set "PATH=%ORIGINAL_PATH%" -@set "PATH=%EDK_TOOLS_PATH%\Bin\Win32;%PATH%" +@if not defined EDK_TOOLS_BIN ( + @if exist %EDK_TOOLS_PATH%\Bin\Win32 ( + @set EDK_TOOLS_BIN=%EDK_TOOLS_PATH%\Bin\Win32 + ) else ( + @echo. + @echo !!! ERROR !!! Cannot find BaseTools Bin Win32!!! + @echo Please check the directory %EDK_TOOLS_PATH%\Bin\Win32 + @echo Or configure EDK_TOOLS_BIN env to point Win32 directory. + @echo. + @goto ExitFailure + ) +) +@set "PATH=%EDK_TOOLS_BIN%;%PATH%" @if "%REBUILD_TOOLS%"=="TRUE" @goto Rebuild @if "%SVN_PULL%"== "TRUE" ( if defined PYTHONHOME ( @REM Use the python script if possible to test is the svn command is available, if it fails, the user may be @REM able to rebuild the Win32 binaries - @call "%WORKSPACE%\BaseTools\Scripts\UpdateBuildVersions.py" --svn-test -v + @call "%BASE_TOOLS_PATH%\Scripts\UpdateBuildVersions.py" --svn-test -v @if errorlevel 1 ( @echo ERROR : The command-line svn tool is not available and the Win32 binaries do not exist @echo Please re-run this script again with the --rebuild option to attempt to build @@ -417,7 +448,6 @@ @REM The following code is used to rebuild the Win32 BaseTools binaries - check that required tools are available :Rebuild -@if not defined BASE_TOOLS_PATH @set "BASE_TOOLS_PATH=%WORKSPACE%\BaseTools" @if not exist "%BASE_TOOLS_PATH%\Source" @goto NoBaseTools @endlocal @if not defined VCINSTALLDIR @goto NoVisualStudio @@ -430,11 +460,11 @@ @if not exist "%PYTHONHOME%\Scripts\cxfreeze.bat" @goto NoCxFreeze @set "PYTHON_FREEZER_PATH=%PYTHONHOME%\Scripts" ) -@call "%WORKSPACE%\BaseTools\Scripts\SetVisualStudio.bat" +@call "%BASE_TOOLS_PATH%\Scripts\SetVisualStudio.bat" @if errorlevel 1 @goto ExitFailure :ShowAndExit -@call "%WORKSPACE%\BaseTools\Scripts\ShowEnvironment.bat" +@call "%BASE_TOOLS_PATH%\Scripts\ShowEnvironment.bat" @REM ######################################################################################### @REM EXIT ROUTINES -- 1.9.5.msysgit.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel