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>bb10
parent
7971cf8352
commit
1bd8db01c4
|
|
@ -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"
|
||||
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=%frameworkdir%\lib"
|
||||
set "frameworkdir=%dpZ%lib"
|
||||
|
||||
if exist "%frameworkdir%\%jarfile%" goto JarFileOk
|
||||
set "frameworkdir=%androidsdk%\framework"
|
||||
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue