Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(636)

Unified Diff: sdk/bin/dartanalyzer.bat

Issue 240723006: Replace Java based analyzer with Dart based analyzer when building SDK (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/bin/dartanalyzer ('k') | sdk/bin/dartanalyzer_java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/bin/dartanalyzer.bat
diff --git a/sdk/bin/dartanalyzer.bat b/sdk/bin/dartanalyzer.bat
index 490512446376baf4782c3a1b40c4cbb8fee2095b..ba7989fdb5f3642600edca2f9991ad81231c9629 100644
--- a/sdk/bin/dartanalyzer.bat
+++ b/sdk/bin/dartanalyzer.bat
@@ -1,57 +1,44 @@
-@echo off
-rem Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-rem for details. All rights reserved. Use of this source code is governed by a
-rem BSD-style license that can be found in the LICENSE file.
-
-set SCRIPT_DIR=%~dp0
-if %SCRIPT_DIR:~-1%==\ set SCRIPT_DIR=%SCRIPT_DIR:~0,-1%
-
-for %%I in ("%SCRIPT_DIR%\..") do set "DART_ANALYZER_HOME=%%~fI"
-if %DART_ANALYZER_HOME:~-1%==\ set DART_ANALYZER_HOME=%DART_ANALYZER_HOME:~0,-1%
-
-set FOUND_BATCH=0
-set FOUND_SDK=0
-for %%a in (%*) do (
- if [%%a] == [--batch] set FOUND_BATCH=1
- if [%%a] == [-b] set FOUND_BATCH=1
- if [%%a] == [--dart-sdk] set FOUND_SDK=1
-)
-
-setlocal EnableDelayedExpansion
-set DART_SDK=""
-if [%FOUND_SDK%] == [0] (
- if exist "%DART_ANALYZER_HOME%\lib\core\core.dart" (
- set DART_SDK=--dart-sdk "%DART_ANALYZER_HOME%"
- ) else (
- for /f %%i in ('echo %DART_ANALYZER_HOME%') do set DART_SDK_HOME=%%~dpi\dart-sdk
- if exist "!DART_SDK_HOME!" (
- set DART_SDK=--dart-sdk !DART_SDK_HOME!
- ) else (
- for /f %%j in ('call echo !DART_SDK_HOME!') do set DART_SDK_HOME=%%~dpj\dart-sdk
- if exist "!DART_SDK_HOME!" (
- set DART_SDK=--dart-sdk !DART_SDK_HOME!
- ) else (
- echo Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument
- )
- )
- )
-)
-endlocal & set DART_SDK=%DART_SDK% & set DART_SDK_HOME=%DART_SDK_HOME%
-
-if exist "%DART_SDK_HOME%\util\dartanalyzer\dartanalyzer.jar" (
- set DART_ANALYZER_LIBS=%DART_SDK_HOME%\util\dartanalyzer
-) else if exist "%DART_ANALYZER_HOME%\util\dartanalyzer\dartanalyzer.jar" (
- set DART_ANALYZER_LIBS=%DART_ANALYZER_HOME%\util\dartanalyzer
-) else (
- echo Configuration problem. Couldn't find dartanalyzer.jar.
- exit /b 1
-)
-
-setlocal EnableDelayedExpansion
-set EXTRA_JVMARGS=-Xss2M
-if [%FOUND_BATCH%] == [1] (
- set EXTRA_JVMARGS=!EXTRA_JVMARGS! -client
-)
-endlocal & set "EXTRA_JVMARGS=%EXTRA_JVMARGS%"
-
-java %EXTRA_JVMARGS% %DART_JVMARGS% -ea -jar "%DART_ANALYZER_LIBS%\dartanalyzer.jar" %DART_SDK% %*
+@echo off
+REM Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+REM for details. All rights reserved. Use of this source code is governed by a
+REM BSD-style license that can be found in the LICENSE file.
+
+setlocal
+rem Handle the case where dart-sdk/bin has been symlinked to.
+set DIR_NAME_WITH_SLASH=%~dp0
+set DIR_NAME=%DIR_NAME_WITH_SLASH:~0,-1%%
+call :follow_links "%DIR_NAME%", RETURNED_BIN_DIR
+rem Get rid of surrounding quotes.
+for %%i in ("%RETURNED_BIN_DIR%") do set BIN_DIR=%%~fi
+
+set DART=%BIN_DIR%\dart
+set SNAPSHOT=%BIN_DIR%\snapshots\dartanalyzer.dart.snapshot
+
+"%DART%" "%SNAPSHOT%" %*
+
+endlocal
+
+exit /b %errorlevel%
+
+rem Follow the symbolic links (junctions points) using `dir to determine the
+rem canonical path. Output with a link looks something like this
+rem
+rem 01/03/2013 10:11 PM <JUNCTION> abc def
+rem [c:\dart_bleeding\dart-repo.9\dart\build\ReleaseIA32\dart-sdk]
+rem
+rem So in the output of 'dir /a:l "targetdir"' we are looking for a filename
+rem surrounded by right angle bracket and left square bracket. Once we get
+rem the filename, which is name of the link, we recursively follow that.
+:follow_links
+setlocal
+for %%i in (%1) do set result=%%~fi
+set current=
+for /f "usebackq tokens=2 delims=[]" %%i in (`dir /a:l "%~dp1" 2^>nul ^
+ ^| find "> %~n1 ["`) do (
+ set current=%%i
+)
+if not "%current%"=="" call :follow_links "%current%", result
+endlocal & set %~2=%result%
+goto :eof
+
+:end
« no previous file with comments | « sdk/bin/dartanalyzer ('k') | sdk/bin/dartanalyzer_java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698