Fixed dx.bat used to build Qtbase/Android on Windows

(Save to $QTBASE_ROOT/mkspecs/features/data/android/dx.bat)

  1. @echo off
  2. REM Copyright (C) 2007 The Android Open Source Project
  3. REM
  4. REM Licensed under the Apache License, Version 2.0 (the "License");
  5. REM you may not use this file except in compliance with the License.
  6. REM You may obtain a copy of the License at
  7. REM
  8. REM     http://www.apache.org/licenses/LICENSE-2.0
  9. REM
  10. REM Unless required by applicable law or agreed to in writing, software
  11. REM distributed under the License is distributed on an "AS IS" BASIS,
  12. REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. REM See the License for the specific language governing permissions and
  14. REM limitations under the License.
  15.  
  16. REM don't modify the caller's environment
  17. setlocal
  18.  
  19. REM Locate dx.jar in the directory where dx.bat was found and start it.
  20.  
  21. REM Set up prog to be the path of this script, including following symlinks,
  22. REM and set up progdir to be the fully-qualified pathname of its directory.
  23. set prog=%~f0
  24.  
  25. if [%1]==[] goto badArgs
  26. set androidsdk=%1
  27. shift /1
  28.  
  29. rem Check we have a valid Java.exe in the path.
  30. set java_exe=
  31. call %androidsdk%\tools\lib\find_java.bat
  32. if not defined java_exe goto :EOF
  33.  
  34. set jarfile=dx.jar
  35.  
  36. set frameworkdir=%androidsdk%\platform-tools\
  37. if exist %frameworkdir%%jarfile% goto JarFileOk
  38.  
  39. set frameworkdir=%androidsdk%\platform-tools\lib\
  40. if exist %frameworkdir%%jarfile% goto JarFileOk
  41.  
  42. set frameworkdir=%androidsdk%\framework\
  43.  
  44. :JarFileOk
  45.  
  46. set jarpath=%frameworkdir%%jarfile%
  47.  
  48. set javaOpts=
  49. set args=
  50.  
  51. REM By default, give dx a max heap size of 1 gig and a stack size of 1meg.
  52. rem This can be overridden by using "-JXmx..." and "-JXss..." options below.
  53. set defaultXmx=-Xmx1024M
  54. set defaultXss=-Xss1m
  55.  
  56. REM Capture all arguments that are not -J options.
  57. REM Note that when reading the input arguments with %1, the cmd.exe
  58. REM automagically converts --name=value arguments into 2 arguments "--name"
  59. REM followed by "value". Dx has been changed to know how to deal with that.
  60. set params=
  61.  
  62. :firstArg
  63. if [%1]==[] goto endArgs
  64. set a=%~1
  65.  
  66.     if [%defaultXmx%]==[] goto notXmx
  67.     if %a:~0,5% NEQ -JXmx goto notXmx
  68.         set defaultXmx=
  69.     :notXmx
  70.  
  71.     if [%defaultXss%]==[] goto notXss
  72.     if %a:~0,5% NEQ -JXss goto notXss
  73.         set defaultXss=
  74.     :notXss
  75.  
  76.     if %a:~0,2% NEQ -J goto notJ
  77.         set javaOpts=%javaOpts% -%a:~2%
  78.         shift /1
  79.         goto firstArg
  80.  
  81.     :notJ
  82.     set params=%params% %1
  83.     shift /1
  84.     goto firstArg
  85.  
  86. :endArgs
  87.  
  88. set javaOpts=%javaOpts% %defaultXmx% %defaultXss%
  89.  
  90. call %java_exe% %javaOpts% -Djava.ext.dirs=%frameworkdir% -jar %jarpath% %params%
  91.  
  92. goto :EOF
  93.  
  94. :badArgs
  95. echo Usage:   dx <android_sdk_path> <dx_arguments>
  96. echo Example: dx d:\android-sdk --dex --output=d:\target.jar d:\classes