diff options
author | Ray Donnelly <mingw.android@gmail.com> | 2013-05-03 01:41:36 +0100 |
---|---|---|
committer | Ray Donnelly <mingw.android@gmail.com> | 2013-07-28 22:20:49 +0000 |
commit | c8a65232aab315fc83c970b0e5bd3e48ddc2d192 (patch) | |
tree | 245a5bd2da2b66b83f64b1e12b2a980563545386 | |
parent | beeeb78893dded91597a82b6dd9a7e4960f7549b (diff) | |
download | android_dalvik-c8a65232aab315fc83c970b0e5bd3e48ddc2d192.tar.gz android_dalvik-c8a65232aab315fc83c970b0e5bd3e48ddc2d192.tar.bz2 android_dalvik-c8a65232aab315fc83c970b0e5bd3e48ddc2d192.zip |
dx.bat: Don't change directory.
Changing directory to that of dx.bat prevents dx.bat from being
used with relative directories. This leads to all sorts of
issues integrating it with build systems that expect this to
work.
I've tested that this change works under the following conditions:
1. Android SDK in a path containing spaces.
2. java.exe in a path containing spaces.
3. Java object files in a path containing spaces.
4. Output jar file in a path containing spaces.
5. Java object files specified with relative paths.
6. Java object files specified with absolute paths.
7. Output jar file specified with relative paths.
8. Output jar file specified with absolute paths.
Change-Id: I1b47a6cc73169607cc6238acf197e3b467c9bcbc
-rwxr-xr-x | dx/etc/dx.bat | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/dx/etc/dx.bat b/dx/etc/dx.bat index 6f588c44c..654588617 100755 --- a/dx/etc/dx.bat +++ b/dx/etc/dx.bat @@ -22,28 +22,26 @@ 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
-
rem Check we have a valid Java.exe in the path.
set java_exe=
-if exist ..\tools\lib\find_java.bat call ..\tools\lib\find_java.bat
-if exist ..\..\tools\lib\find_java.bat call ..\..\tools\lib\find_java.bat
+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=dx.jar
-set frameworkdir=
+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=lib\
+if exist "%frameworkdir%\%jarfile%" goto JarFileOk
+ set "frameworkdir=%~dp0lib"
-if exist %frameworkdir%%jarfile% goto JarFileOk
- set frameworkdir=..\framework\
+if exist "%frameworkdir%\%jarfile%" goto JarFileOk
+ set "frameworkdir=%~dp0..\framework"
:JarFileOk
-set jarpath=%frameworkdir%%jarfile%
+set "jarpath=%frameworkdir%\%jarfile%"
set javaOpts=
set args=
@@ -86,5 +84,5 @@ set a=%~1 :endArgs
set javaOpts=%javaOpts% %defaultXmx% %defaultXss%
+call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%
-call %java_exe% %javaOpts% -Djava.ext.dirs=%frameworkdir% -jar %jarpath% %params%
|