@echo off | |
rem #!/bin/bash --posix | |
rem Copyright (c) 2012, 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. | |
rem | |
rem stop if any of the steps fails | |
rem set -e | |
rem | |
rem SCRIPT_DIR=$(dirname $0) | |
set SCRIPT_DIR=%~dp0 | |
if %SCRIPT_DIR:~-1%==\ set SCRIPT_DIR=%SCRIPT_DIR:~0,-1% | |
rem DART_ANALYZER_HOME=$(dirname $SCRIPT_DIR) | |
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 | |
) | |
rem FOUND_BATCH=0 | |
rem FOUND_SDK=0 | |
rem for ARG in "$@" | |
rem do | |
rem case $ARG in | |
rem -batch|--batch) | |
rem FOUND_BATCH=1 | |
rem ;; | |
rem --dart-sdk) | |
rem FOUND_SDK=1 | |
rem ;; | |
rem *) | |
rem ;; | |
rem esac | |
rem done | |
rem | |
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%" | |
rem DART_SDK="" | |
rem if [ $FOUND_SDK = 0 ] ; then | |
rem if [ -f $DART_ANALYZER_HOME/lib/core/core.dart ] ; then | |
rem DART_SDK="--dart-sdk $DART_ANALYZER_HOME" | |
rem else | |
rem DART_SDK_HOME=$(dirname $DART_ANALYZER_HOME)/dart-sdk | |
rem if [ -d $DART_SDK_HOME ] ; then | |
rem DART_SDK="--dart-sdk $DART_SDK_HOME" | |
rem else | |
rem DART_SDK_HOME=$(dirname $DART_SDK_HOME)/dart-sdk | |
rem if [ -d $DART_SDK_HOME ] ; then | |
rem DART_SDK="--dart-sdk $DART_SDK_HOME" | |
rem else | |
rem echo "Couldn't find Dart SDK. Specify with --dart-sdk cmdline argument" | |
rem fi | |
rem fi | |
rem fi | |
rem fi | |
rem | |
if exist "%DART_SDK_HOME%\util\analyzer\dart_analyzer.jar" ( | |
set DART_ANALYZER_LIBS=%DART_SDK_HOME%\util\analyzer | |
) else if exist "%DART_ANALYZER_HOME%\util\analyzer\dart_analyzer.jar" ( | |
set DART_ANALYZER_LIBS=%DART_ANALYZER_HOME%\util\analyzer | |
) else ( | |
echo Configuration problem. Couldn't find dart_analyzer.jar. | |
exit /b 1 | |
) | |
rem if [ -f $DART_SDK_HOME/util/analyzer/dart_analyzer.jar ] ; then | |
rem DART_ANALYZER_LIBS=$DART_SDK_HOME/util/analyzer | |
rem elif [ -f $DART_ANALYZER_HOME/util/analyzer/dart_analyzer.jar ] ; then | |
rem DART_ANALYZER_LIBS=$DART_ANALYZER_HOME/util/analyzer | |
rem else | |
rem echo "Configuration problem. Couldn't find dart_analyzer.jar." | |
rem exit 1 | |
rem fi | |
rem | |
rem if [ -x /usr/libexec/java_home ]; then | |
rem export JAVA_HOME=$(/usr/libexec/java_home -v '1.6+') | |
rem fi | |
rem | |
setlocal EnableDelayedExpansion | |
set EXTRA_JVMARGS=-Xss2M | |
if [%FOUND_BATCH%] == [1] ( | |
set EXTRA_JVMARGS=!EXTRA_JVMARGS! -client | |
) | |
endlocal & set "EXTRA_JVMARGS=%EXTRA_JVMARGS%" | |
rem EXTRA_JVMARGS="-Xss2M " | |
rem OS=`uname | tr [A-Z] [a-z]` | |
rem if [ "$OS" == "darwin" ] ; then | |
rem # Bump up the heap on Mac VMs, some of which default to 128M or less. | |
rem # Users can specify DART_JVMARGS in the environment to override | |
rem # this setting. Force to 32 bit client vm. 64 bit and server VM make for | |
rem # poor performance. | |
rem EXTRA_JVMARGS+=" -Xmx256M -client -d32 " | |
rem else | |
rem # On other architectures | |
rem # -batch invocations will do better with a server vm | |
rem # invocations for analyzing a single file do better with a client vm | |
rem if [ $FOUND_BATCH = 0 ] ; then | |
rem EXTRA_JVMARGS+=" -client " | |
rem fi | |
rem fi | |
rem | |
java %EXTRA_JVMARGS% %DART_JVMARGS% -ea -classpath "@CLASSPATH@" ^ | |
com.google.dart.compiler.DartCompiler %DART_SDK% %* | |
rem exec java $EXTRA_JVMARGS $DART_JVMARGS -ea -classpath "@CLASSPATH@" \ | |
rem com.google.dart.compiler.DartCompiler ${DART_SDK} $@ | |
rem |