Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 @echo off | 1 @echo off |
| 2 | 2 |
| 3 :: Copyright (c) 2012 Google Inc. All rights reserved. | 3 :: Copyright (c) 2012 Google Inc. All rights reserved. |
| 4 :: Use of this source code is governed by a BSD-style license that can be | 4 :: Use of this source code is governed by a BSD-style license that can be |
| 5 :: found in the LICENSE file. | 5 :: found in the LICENSE file. |
| 6 | 6 |
| 7 setlocal enabledelayedexpansion | 7 setlocal enabledelayedexpansion |
| 8 | 8 |
| 9 :: Parse args to see if a -C argument (to change working directory) is being | 9 :: Parse args to see if a -C argument (to change working directory) is being |
| 10 :: supplied. We expect project generation to output a set_environment.bat that | 10 :: supplied. We expect project generation to output a set_environment.bat that |
| 11 :: will set up the environment (variables and path). This script generally | 11 :: will set up the environment (variables and path). This script generally |
| 12 :: just calls the correct VS vars batch file, but only gyp has the knowledge | 12 :: just calls the correct VS vars batch file, but only gyp has the knowledge |
| 13 :: to determine which version of the IDE/toolchain it wants to use, so we have | 13 :: to determine which version of the IDE/toolchain it wants to use, so we have |
| 14 :: to defer to it to make that decision. | 14 :: to defer to it to make that decision. |
| 15 set found_dash_c=0 | 15 set found_dash_c=0 |
| 16 set cd_path=. | 16 set cd_path=. |
| 17 for %%A in (%*) do ( | 17 for %%A in (%*) do ( |
| 18 if "!found_dash_c!"=="1" ( | 18 if "!found_dash_c!"=="1" ( |
| 19 set cd_path=%%A | 19 set cd_path=%%A |
| 20 goto done_dash_c | 20 goto done_dash_c |
| 21 ) | 21 ) |
| 22 if "%%A"=="-C" ( | 22 if "%%A"=="-C" ( |
| 23 set found_dash_c=1 | 23 set found_dash_c=1 |
| 24 ) | 24 ) |
| 25 ) | 25 ) |
| 26 :done_dash_c | 26 :done_dash_c |
| 27 | 27 |
| 28 :: Try running the compiler. If it fails, then we assume we need to set up the | |
| 29 :: environment for the compiler. | |
| 30 :: TODO(scottmg): We should also try to detect if we have the right version | |
| 31 :: of the compiler too (i.e. If generation specified 2010, but we're running | |
| 32 :: from a 2008 command prompt). | |
| 33 cl 2>nul >nul | |
| 34 if %errorlevel% EQU 0 goto no_set_env | |
|
Marc-Antoine Ruel (Google)
2012/04/25 17:55:49
back in my days I would have written
if not errorl
| |
| 35 | |
| 28 if not exist "%cd_path%\set_environment.bat" ( | 36 if not exist "%cd_path%\set_environment.bat" ( |
| 29 echo ninja.bat: set_environment.bat not found in '%cd_path%'. Is -C arg correc t? | 37 echo ninja.bat: set_environment.bat not found in '%cd_path%'. Is -C arg correc t? |
| 30 goto :EOF | 38 goto :EOF |
| 31 ) | 39 ) |
| 32 call "%cd_path%\set_environment.bat" | 40 call "%cd_path%\set_environment.bat" |
| 33 | 41 |
| 42 :: Export only the path changes out of the script. | |
| 43 endlocal & set PATH=%PATH% & set INCLUDE=%INCLUDE% & set LIBPATH=%LIBPATH% & set LIB=%LIB% | |
|
Marc-Antoine Ruel (Google)
2012/04/25 17:55:49
nice construct, never thought about doing that. Bu
| |
| 44 | |
| 34 :: Add python to the path, many gyp rules assume it's there. | 45 :: Add python to the path, many gyp rules assume it's there. |
| 35 :: Add ninja directory to the path (to find ninja and ninja-deplist-helper). | 46 :: Add ninja directory to the path (to find ninja and ninja-deplist-helper). |
| 36 :: Then, export only the path changes out of the script so that next time we | 47 :: Put it at the front so that ninja.exe is found before this wrapper so that |
| 37 :: just run ninja directly (otherwise, this script adds about 500-800ms to | 48 :: next time we just run it directly (otherwise, this script adds 500-800ms to |
| 38 :: ninja invocations). | 49 :: ninja invocations). |
| 39 endlocal & set PATH=%~dp0python_bin;%~dp0ninja-win;%PATH% & set INCLUDE=%INCLUDE % & set LIBPATH=%LIBPATH% & set LIB=%LIB% | 50 :no_set_env |
| 51 endlocal & set PATH=%~dp0python_bin;%~dp0ninja-win;%PATH% | |
| 40 | 52 |
| 41 :: Now run the actual build. | 53 :: Now run the actual build. |
| 42 ninja.exe %* | 54 ninja.exe %* |
| OLD | NEW |