diff options
author | Ray Donnelly <mingw.android@gmail.com> | 2013-06-10 00:19:12 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-04 21:39:24 +0200 |
commit | 1bd8db01c4d3bfe19b0452a7ecf90cec9360c58b (patch) | |
tree | 06ebac9261ab1d8cd8bf6c5362a58b752b14dadd /mkspecs/features | |
parent | 7971cf83528a9958bf3e6950894a06ea8706f2be (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/features')
-rw-r--r-- | mkspecs/features/data/android/dx.bat | 30 | ||||
-rw-r--r-- | mkspecs/features/java.prf | 8 |
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 |