summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorRay Donnelly <mingw.android@gmail.com>2013-06-10 00:19:12 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-04 21:39:24 +0200
commit1bd8db01c4d3bfe19b0452a7ecf90cec9360c58b (patch)
tree06ebac9261ab1d8cd8bf6c5362a58b752b14dadd /mkspecs
parent7971cf83528a9958bf3e6950894a06ea8706f2be (diff)
Android Windows: Adjust to new SDK layout
Google moved dx.bat into a new build-tools/VERSION folder meaning our dx.bat no longer found dx.jar. Fix this by passing into our dx.bat, the location of the real dx.bat Removed hardcoded 17.0.0 and %ANDROID_BUILD_TOOLS_REVISION% path searches. Change-Id: I91c12c01745d6f12edbd126102b8f06eba291402 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/data/android/dx.bat30
-rw-r--r--mkspecs/features/java.prf8
2 files changed, 22 insertions, 16 deletions
diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat
index c4ad0e3ebc..9816f9607d 100644
--- a/mkspecs/features/data/android/dx.bat
+++ b/mkspecs/features/data/android/dx.bat
@@ -27,34 +27,35 @@ REM and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0
if [%1]==[] goto badArgs
-set "androidsdk=%1"
+set "dx_jar_path=%1"
shift /1
if [%1]==[] goto badArgs
+REM Use dpZ here to make it more like the Google version.
+for %%F in ("%dx_jar_path%") do set dpZ=%%~dpF
+
rem Check we have a valid Java.exe in the path.
set java_exe=
-call "%androidsdk%\tools\lib\find_java.bat"
+if exist "%dpZ%..\tools\lib\find_java.bat" call "%dpZ%..\tools\lib\find_java.bat"
+if exist "%dpZ%..\..\tools\lib\find_java.bat" call "%dpZ%..\..\tools\lib\find_java.bat"
+
if not defined java_exe goto :EOF
set jarfile=dx.jar
-set "frameworkdir=%androidsdk%\platform-tools"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%frameworkdir%\lib"
+set "frameworkdir=%dpZ%"
+rem frameworkdir must not end with a dir sep.
+set "frameworkdir=%frameworkdir:~0,-1%"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\framework"
+ set "frameworkdir=%dpZ%lib"
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\build-tools\%ANDROID_BUILD_TOOLS_REVISION%\lib"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%androidsdk%\build-tools\17.0.0\lib"
+ set "frameworkdir=%dpZ%..\framework"
:JarFileOk
-set jarpath=%frameworkdir%\%jarfile%
+set "jarpath=%frameworkdir%\%jarfile%"
set javaOpts=
set args=
@@ -97,12 +98,11 @@ set a=%~1
:endArgs
set javaOpts=%javaOpts% %defaultXmx% %defaultXss%
-
call "%java_exe%" %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%
goto :EOF
:badArgs
-echo Usage: dx (for Qt) <android_sdk_path> <dx_arguments>
-echo Example: dx (for Qt) C:\android-sdk --dex --output=target.jar .classes
+echo Usage: dx (for Qt) ^<android_sdk_dx_jar_path^> ^<dx_arguments^>
+echo Example: dx (for Qt) C:\android-sdk\build-tools\17.0.0\dx.jar --dex --output=target.jar .classes
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf
index 411a839ad8..d8ceb536a7 100644
--- a/mkspecs/features/java.prf
+++ b/mkspecs/features/java.prf
@@ -58,7 +58,13 @@ QMAKE_EXTENSION_SHLIB = jar
# Override linker with dex (for distributable Android archives) or jar (for other java builds)
android:!bundled_jar_file {
contains(QMAKE_HOST.os, Windows) {
- DEX_CMD = $$PWD/data/android/dx $$SDK_ROOT
+ # The location where dx.bat expects itself to be found is used as the landmark instead
+ # of the base sdk folder.
+ # Doing it this way makes this logic more similar to the other platforms and
+ # also means that our dx.bat is more like Google's dx.bat
+ DEX_BAT = $$SDK_ROOT/platform-tools/dx.bat
+ !exists($$DEX_BAT): DEX_BAT = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx.bat
+ DEX_CMD = $$PWD/data/android/dx $$DEX_BAT
} else {
DEX_CMD = $$SDK_ROOT/platform-tools/dx
!exists($$DEX_CMD): DEX_CMD = $$SDK_ROOT/build-tools/$$BUILD_TOOLS_REVISION/dx