| @echo off |
| REM Copyright (C) 2007 The Android Open Source Project |
| REM |
| REM Licensed under the Apache License, Version 2.0 (the "License"); |
| REM you may not use this file except in compliance with the License. |
| REM You may obtain a copy of the License at |
| REM |
| REM http://www.apache.org/licenses/LICENSE-2.0 |
| REM |
| REM Unless required by applicable law or agreed to in writing, software |
| REM distributed under the License is distributed on an "AS IS" BASIS, |
| REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| REM See the License for the specific language governing permissions and |
| REM limitations under the License. |
| |
| REM don't modify the caller's environment |
| setlocal |
| |
| REM Locate dx.jar in the directory where dx.bat was found and start it. |
| |
| REM Set up prog to be the path of this script, including following symlinks, |
| REM and set up progdir to be the fully-qualified pathname of its directory. |
| set prog=%~f0 |
| |
| REM Change current directory to where dx is, to avoid issues with directories |
| REM containing whitespaces. |
| cd /d %~dp0 |
| |
| set jarfile=dx.jar |
| set frameworkdir= |
| |
| if exist %frameworkdir%%jarfile% goto JarFileOk |
| set frameworkdir=lib\ |
| |
| if exist %frameworkdir%%jarfile% goto JarFileOk |
| set frameworkdir=..\framework\ |
| |
| :JarFileOk |
| |
| set jarpath=%frameworkdir%%jarfile% |
| |
| set javaOpts= |
| set args= |
| |
| REM By default, give dx a max heap size of 1 gig. This can be overridden |
| REM by using a "-JXmx..." option (see below). |
| set defaultMx=-Xmx1024M |
| |
| REM capture all arguments to process them below |
| set params=%* |
| |
| :nextArg |
| if "%params%"=="" goto endArgs |
| REM Note: advanced substitions don't work on %1..%N. We need to assign to |
| REM a variable first. |
| REM We also can't use %1..%N directly because an option such as --output=name |
| REM gets automagically converted into %1=--output and %2=name (yes, really!) |
| REM Instead we manually extract the first token from the params variable. |
| for /F "tokens=1*" %%a in ("%params%") do call :getArg "%%a" "%%b" |
| |
| if "%defaultMx%"=="" goto notXmx |
| if "%A:~0,5%" NEQ "-JXmx" goto notXmx |
| set defaultMx= |
| :notXmx |
| |
| if "%A:~0,2%" NEQ "-J" goto notJ |
| set javaOpts=%javaOpts% -%A:~2% |
| goto nextArg |
| |
| :notJ |
| set args=%args% %A% |
| goto nextArg |
| |
| :getArg |
| REM this subroutine is called by the for /F with the first argument of params |
| REM and the rest of the line. The "goto :eof" actually exits the subroutine. |
| set A=%~1 |
| set params=%~2 |
| goto :eof |
| |
| :endArgs |
| |
| set javaOpts=%javaOpts% %defaultMx% |
| |
| call java %javaOpts% -Djava.ext.dirs=%frameworkdir% -jar %jarpath% %args% |