summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRay Donnelly <mingw.android@gmail.com>2013-05-03 01:41:36 +0100
committerRay Donnelly <mingw.android@gmail.com>2013-07-28 22:20:49 +0000
commitc8a65232aab315fc83c970b0e5bd3e48ddc2d192 (patch)
tree245a5bd2da2b66b83f64b1e12b2a980563545386
parentbeeeb78893dded91597a82b6dd9a7e4960f7549b (diff)
downloadandroid_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-xdx/etc/dx.bat24
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%