xref: /aosp_15_r20/prebuilts/devtools/tools/android.bat (revision 4bfccde5c7e9ea06f821db40ef0af54f6695c320)
1*4bfccde5SXin Li@echo off
2*4bfccde5SXin Lirem Copyright (C) 2007 The Android Open Source Project
3*4bfccde5SXin Lirem
4*4bfccde5SXin Lirem Licensed under the Apache License, Version 2.0 (the "License");
5*4bfccde5SXin Lirem you may not use this file except in compliance with the License.
6*4bfccde5SXin Lirem You may obtain a copy of the License at
7*4bfccde5SXin Lirem
8*4bfccde5SXin Lirem      http://www.apache.org/licenses/LICENSE-2.0
9*4bfccde5SXin Lirem
10*4bfccde5SXin Lirem Unless required by applicable law or agreed to in writing, software
11*4bfccde5SXin Lirem distributed under the License is distributed on an "AS IS" BASIS,
12*4bfccde5SXin Lirem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4bfccde5SXin Lirem See the License for the specific language governing permissions and
14*4bfccde5SXin Lirem limitations under the License.
15*4bfccde5SXin Li
16*4bfccde5SXin Lirem Useful links:
17*4bfccde5SXin Lirem Command-line reference:
18*4bfccde5SXin Lirem   http://technet.microsoft.com/en-us/library/bb490890.aspx
19*4bfccde5SXin Li
20*4bfccde5SXin Lirem don't modify the caller's environment
21*4bfccde5SXin Lisetlocal
22*4bfccde5SXin Li
23*4bfccde5SXin Lirem Set up prog to be the path of this script, including following symlinks,
24*4bfccde5SXin Lirem and set up progdir to be the fully-qualified pathname of its directory.
25*4bfccde5SXin Liset prog=%~f0
26*4bfccde5SXin Li
27*4bfccde5SXin Lirem Grab current directory before we change it
28*4bfccde5SXin Liset work_dir=%cd%
29*4bfccde5SXin Li
30*4bfccde5SXin Lirem Change current directory and drive to where the script is, to avoid
31*4bfccde5SXin Lirem issues with directories containing whitespaces.
32*4bfccde5SXin Licd /d %~dp0
33*4bfccde5SXin Li
34*4bfccde5SXin Li
35*4bfccde5SXin Lirem Check we have a valid Java.exe in the path.
36*4bfccde5SXin Liset java_exe=
37*4bfccde5SXin Licall lib\find_java.bat
38*4bfccde5SXin Liif not defined java_exe goto :EOF
39*4bfccde5SXin Li
40*4bfccde5SXin Liset jar_path=lib\sdkmanager.jar;lib\swtmenubar.jar
41*4bfccde5SXin Li
42*4bfccde5SXin Lirem Set SWT.Jar path based on current architecture (x86 or x86_64)
43*4bfccde5SXin Lifor /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a
44*4bfccde5SXin Li
45*4bfccde5SXin Li:MkTempCopy
46*4bfccde5SXin Li    rem Copy android.bat and its required libs to a temp dir.
47*4bfccde5SXin Li    rem This avoids locking the tool dir in case the user is trying to update it.
48*4bfccde5SXin Li
49*4bfccde5SXin Li    set tmp_dir=%TEMP%\temp-android-tool
50*4bfccde5SXin Li    xcopy %swt_path% %tmp_dir%\%swt_path% /I /E /C /G /R /Y /Q > nul
51*4bfccde5SXin Li    copy /B /D /Y lib\common.jar         %tmp_dir%\lib\        > nul
52*4bfccde5SXin Li    copy /B /D /Y lib\commons-codec*     %tmp_dir%\lib\        > nul
53*4bfccde5SXin Li    copy /B /D /Y lib\commons-compress*  %tmp_dir%\lib\        > nul
54*4bfccde5SXin Li    copy /B /D /Y lib\commons-logging*   %tmp_dir%\lib\        > nul
55*4bfccde5SXin Li    copy /B /D /Y lib\dvlib.jar          %tmp_dir%\lib\        > nul
56*4bfccde5SXin Li    copy /B /D /Y lib\guava*             %tmp_dir%\lib\        > nul
57*4bfccde5SXin Li    copy /B /D /Y lib\httpclient*        %tmp_dir%\lib\        > nul
58*4bfccde5SXin Li    copy /B /D /Y lib\httpcore*          %tmp_dir%\lib\        > nul
59*4bfccde5SXin Li    copy /B /D /Y lib\httpmime*          %tmp_dir%\lib\        > nul
60*4bfccde5SXin Li    copy /B /D /Y lib\layoutlib-api.jar  %tmp_dir%\lib\        > nul
61*4bfccde5SXin Li    copy /B /D /Y lib\org-eclipse-*      %tmp_dir%\lib\        > nul
62*4bfccde5SXin Li    copy /B /D /Y lib\sdk*               %tmp_dir%\lib\        > nul
63*4bfccde5SXin Li    copy /B /D /Y lib\swtmenubar.jar     %tmp_dir%\lib\        > nul
64*4bfccde5SXin Li
65*4bfccde5SXin Li    rem jar_path and swt_path are relative to PWD so we don't need to adjust them, just change dirs.
66*4bfccde5SXin Li    set tools_dir=%cd%
67*4bfccde5SXin Li    cd /d %tmp_dir%
68*4bfccde5SXin Li
69*4bfccde5SXin Li:EndTempCopy
70*4bfccde5SXin Li
71*4bfccde5SXin Lirem The global ANDROID_SWT always override the SWT.Jar path
72*4bfccde5SXin Liif defined ANDROID_SWT set swt_path=%ANDROID_SWT%
73*4bfccde5SXin Li
74*4bfccde5SXin Liif exist "%swt_path%" goto SetPath
75*4bfccde5SXin Li    echo ERROR: SWT folder '%swt_path%' does not exist.
76*4bfccde5SXin Li    echo Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
77*4bfccde5SXin Li    goto :EOF
78*4bfccde5SXin Li
79*4bfccde5SXin Li:SetPath
80*4bfccde5SXin Lirem Finally exec the java program and end here.
81*4bfccde5SXin LiREM set REMOTE_DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
82*4bfccde5SXin Licall "%java_exe% %REMOTE_DEBUG%" "-Dcom.android.sdkmanager.toolsdir=%tools_dir%" "-Dcom.android.sdkmanager.workdir=%work_dir%" -classpath "%jar_path%;%swt_path%\swt.jar" com.android.sdkmanager.Main %*
83*4bfccde5SXin Li
84*4bfccde5SXin Lirem EOF
85