OLD | NEW |
1 @echo off | 1 @echo off |
2 REM Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 2 REM Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
3 REM for details. All rights reserved. Use of this source code is governed by a | 3 REM for details. All rights reserved. Use of this source code is governed by a |
4 REM BSD-style license that can be found in the LICENSE file. | 4 REM BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 setlocal | 6 setlocal |
7 rem Handle the case where dart-sdk/bin has been symlinked to. | 7 rem Handle the case where dart-sdk/bin has been symlinked to. |
8 set DIR_NAME_WITH_SLASH=%~dp0 | 8 set DIR_NAME_WITH_SLASH=%~dp0 |
9 set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% | 9 set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%% |
10 call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR | 10 call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR |
(...skipping 18 matching lines...) Expand all Loading... |
29 ) | 29 ) |
30 | 30 |
31 rem Get absolute full name for DART_ROOT. | 31 rem Get absolute full name for DART_ROOT. |
32 for %%i in ("%SDK_DIR%\..\") do set DART_ROOT=%%~fi | 32 for %%i in ("%SDK_DIR%\..\") do set DART_ROOT=%%~fi |
33 | 33 |
34 rem Remove trailing backslash if there is one | 34 rem Remove trailing backslash if there is one |
35 if %DART_ROOT:~-1%==\ set DART_ROOT=%DART_ROOT:~0,-1% | 35 if %DART_ROOT:~-1%==\ set DART_ROOT=%DART_ROOT:~0,-1% |
36 | 36 |
37 set DEV_COMPILER=%DART_ROOT%\third_party\pkg\dev_compiler\bin\dartdevc.dart | 37 set DEV_COMPILER=%DART_ROOT%\third_party\pkg\dev_compiler\bin\dartdevc.dart |
38 | 38 |
39 rem DART_CONFIGURATION defaults to ReleaseX64 | 39 "%DART%" %EXTRA_VM_OPTIONS% "DEV_COMPILER%" "%SDK_ARG%" %* |
40 if "%DART_CONFIGURATION%"=="" set DART_CONFIGURATION=ReleaseX64 | |
41 | |
42 set BUILD_DIR=%DART_ROOT%\out\%DART_CONFIGURATION% | |
43 | |
44 set PACKAGE_ROOT=%BUILD_DIR%\packages | |
45 | |
46 "%DART%" %EXTRA_VM_OPTIONS% "--package-root=%PACKAGE_ROOT%" "DEV_COMPILER%" "%SD
K_ARG%" %* | |
47 | 40 |
48 endlocal | 41 endlocal |
49 | 42 |
50 exit /b %errorlevel% | 43 exit /b %errorlevel% |
51 | 44 |
52 rem Follow the symbolic links (junctions points) using `dir to determine the | 45 rem Follow the symbolic links (junctions points) using `dir to determine the |
53 rem canonical path. Output with a link looks something like this | 46 rem canonical path. Output with a link looks something like this |
54 rem | 47 rem |
55 rem 01/03/2013 10:11 PM <JUNCTION> abc def | 48 rem 01/03/2013 10:11 PM <JUNCTION> abc def |
56 rem [c:\dart_bleeding\dart-repo.9\dart\out\ReleaseIA32\dart-sdk] | 49 rem [c:\dart_bleeding\dart-repo.9\dart\out\ReleaseIA32\dart-sdk] |
57 rem | 50 rem |
58 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename | 51 rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename |
59 rem surrounded by right angle bracket and left square bracket. Once we get | 52 rem surrounded by right angle bracket and left square bracket. Once we get |
60 rem the filename, which is name of the link, we recursively follow that. | 53 rem the filename, which is name of the link, we recursively follow that. |
61 :follow_links | 54 :follow_links |
62 setlocal | 55 setlocal |
63 for %%i in (%1) do set result=%%~fi | 56 for %%i in (%1) do set result=%%~fi |
64 set current= | 57 set current= |
65 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ | 58 for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^ |
66 ^| find "> %~n1 ["`) do ( | 59 ^| find "> %~n1 ["`) do ( |
67 set current=%%i | 60 set current=%%i |
68 ) | 61 ) |
69 if not "%current%"=="" call :follow_links "%current%", result | 62 if not "%current%"=="" call :follow_links "%current%", result |
70 endlocal & set %~2=%result% | 63 endlocal & set %~2=%result% |
71 goto :eof | 64 goto :eof |
72 | 65 |
73 :end | 66 :end |
OLD | NEW |