@echo off↵
REM Copyright (C) 2017 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 bundletool.jar in the directory where bundletool.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 Check we have a valid Java.exe in the path.↵
set java_exe=↵
if exist    "%~dp0..\tools\lib\find_java.bat" call    "%~dp0..\tools\lib\find_java.bat"↵
if exist "%~dp0..\..\tools\lib\find_java.bat" call "%~dp0..\..\tools\lib\find_java.bat"↵
if not defined java_exe goto :EOF↵
↵
set jarfile=bundletool.jar↵
set "frameworkdir=%~dp0"↵
rem frameworkdir must not end with a dir sep.↵
set "frameworkdir=%frameworkdir:~0,-1%"↵
↵
if exist "%frameworkdir%\%jarfile%" goto JarFileOk↵
    set "frameworkdir=%~dp0lib"↵
↵
if exist "%frameworkdir%\%jarfile%" goto JarFileOk↵
    set "frameworkdir=%~dp0..\framework"↵
↵
:JarFileOk↵
↵
set "jarpath=%frameworkdir%\%jarfile%"↵
↵
set javaOpts=↵
set args=↵
↵
REM By default, give bundletool a max heap size of 1 gig and a stack size of 1meg.↵
rem This can be overridden by using "-JXmx..." and "-JXss..." options below.↵
set defaultXmx=-Xmx1024M↵
set defaultXss=-Xss1m↵
↵
REM Capture all arguments that are not -J options.↵
REM Note that when reading the input arguments with %1, the cmd.exe↵
REM automagically converts --name=value arguments into 2 arguments "--name"↵
REM followed by "value". Dx has been changed to know how to deal with that.↵
set params=↵
↵
:firstArg↵
if [%1]==[] goto endArgs↵
set a=%~1↵
↵
    if [%defaultXmx%]==[] goto notXmx↵
    if %a:~0,5% NEQ -JXmx goto notXmx↵
        set defaultXmx=↵
    :notXmx↵
↵
    if [%defaultXss%]==[] goto notXss↵
    if %a:~0,5% NEQ -JXss goto notXss↵
        set defaultXss=↵
    :notXss↵
↵
    if %a:~0,2% NEQ -J goto notJ↵
        set javaOpts=%javaOpts% -%a:~2%↵
        shift /1↵
        goto firstArg↵
↵
    :notJ↵
    set params=%params% %1↵
    shift /1↵
    goto firstArg↵
↵
:endArgs↵
↵
set javaOpts=%javaOpts% %defaultXmx% %defaultXss%↵
call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%↵
↵
