summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-04-03 14:40:25 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-04-03 14:40:26 +0200
commit814f713f01a459b48b12a3695fb1242b7d687662 (patch)
tree571598012909d82d15aca670cd9be22823596ad6 /mkspecs
parent52ebf1f1914cea563b52baffc607407dbc6a7313 (diff)
parent448c3e85dddbfc5c101aceeeceb8584a3d41c913 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/shell-win32.conf4
-rw-r--r--mkspecs/features/data/android/dx.bat102
-rw-r--r--mkspecs/features/java.prf8
-rw-r--r--mkspecs/features/qt_docs.prf4
-rw-r--r--mkspecs/features/qt_module.prf2
5 files changed, 116 insertions, 4 deletions
diff --git a/mkspecs/common/shell-win32.conf b/mkspecs/common/shell-win32.conf
index a4b813cf7d..131aa746c4 100644
--- a/mkspecs/common/shell-win32.conf
+++ b/mkspecs/common/shell-win32.conf
@@ -9,6 +9,8 @@ QMAKE_CHK_EXISTS = if not exist %1
QMAKE_CHK_DIR_EXISTS = if not exist # legacy
QMAKE_MKDIR = mkdir # legacy
QMAKE_MKDIR_CMD = if not exist %1 mkdir %1 & if not exist %1 exit 1
-
+# Ugly hack to support cross-building for unix (android).
+QMAKE_SYMBOLIC_LINK = $$QMAKE_COPY
+QMAKE_LN_SHLIB = $$QMAKE_SYMBOLIC_LINK
# xcopy copies the contained files if source is a directory. Deal with it.
CONFIG += copy_dir_files
diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat
new file mode 100644
index 0000000000..a60a1b4cbe
--- /dev/null
+++ b/mkspecs/features/data/android/dx.bat
@@ -0,0 +1,102 @@
+@echo off
+REM Copyright (C) 2007 The Android Open Source Project
+REM
+REM Licensed under the Apache License, Version 2.0 (the "License");
+REM you may not use this file except in compliance with the License.
+REM You may obtain a copy of the License at
+REM
+REM http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM Unless required by applicable law or agreed to in writing, software
+REM distributed under the License is distributed on an "AS IS" BASIS,
+REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM See the License for the specific language governing permissions and
+REM limitations under the License.
+
+REM If/when Google merge:
+REM https://android-review.googlesource.com/#/c/52680/
+REM this file will become redundant.
+
+REM don't modify the caller's environment
+setlocal
+
+REM Locate dx.jar in the directory where dx.bat was found and start it.
+
+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
+
+if [%1]==[] goto badArgs
+set "androidsdk=%1"
+shift /1
+
+if [%1]==[] goto badArgs
+
+rem Check we have a valid Java.exe in the path.
+set java_exe=
+call "%androidsdk%\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=%androidsdk%\lib"
+
+if exist "%frameworkdir%\%jarfile%" goto JarFileOk
+ set "frameworkdir=%androidsdk%\framework"
+
+:JarFileOk
+
+set jarpath=%frameworkdir%\%jarfile%
+
+set javaOpts=
+set args=
+
+REM By default, give dx a max heap size of 1 gig and a stack size of 1meg.
+rem This can be overridden by using "-JXmx..." and "-JXss..." options below.
+set defaultXmx=-Xmx1024M
+set defaultXss=-Xss1m
+
+REM Capture all arguments that are not -J options.
+REM Note that when reading the input arguments with %1, the cmd.exe
+REM automagically converts --name=value arguments into 2 arguments "--name"
+REM followed by "value". Dx has been changed to know how to deal with that.
+set params=
+
+:firstArg
+if [%1]==[] goto endArgs
+set a=%~1
+
+ if [%defaultXmx%]==[] goto notXmx
+ if %a:~0,5% NEQ -JXmx goto notXmx
+ set defaultXmx=
+ :notXmx
+
+ if [%defaultXss%]==[] goto notXss
+ if %a:~0,5% NEQ -JXss goto notXss
+ set defaultXss=
+ :notXss
+
+ if %a:~0,2% NEQ -J goto notJ
+ set javaOpts=%javaOpts% -%a:~2%
+ shift /1
+ goto firstArg
+
+ :notJ
+ set params=%params% %1
+ shift /1
+ goto firstArg
+
+: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
+
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf
index 05350db48d..6cbd690c37 100644
--- a/mkspecs/features/java.prf
+++ b/mkspecs/features/java.prf
@@ -29,7 +29,7 @@ CONFIG += plugin no_plugin_name_prefix
javac.input = JAVASOURCES
javac.output = $$CLASS_DIR
javac.CONFIG += combine
-javac.commands = javac -source 6 -target 6 -cp $$shell_quote($$join(JAVACLASSPATH, ":")) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN}
+javac.commands = javac -source 6 -target 6 -cp $$shell_quote($$shell_path($$join(JAVACLASSPATH, $$QMAKE_DIRLIST_SEP))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN}
# Force rebuild every time, because we don't know the paths of the destination files
# as they depend on the code.
javac.depends = FORCE
@@ -50,7 +50,11 @@ QMAKE_EXTENSION_SHLIB = jar
# Override linker with dex (for Android) or jar (for other java builds)
android {
QMAKE_LINK_O_FLAG = --output=
- QMAKE_LINK = $$SDK_ROOT/platform-tools/dx --dex
+ contains(QMAKE_HOST.os, Windows) {
+ QMAKE_LINK = $$PWD/data/android/dx $$SDK_ROOT --dex
+ } else {
+ QMAKE_LINK = $$SDK_ROOT/platform-tools/dx --dex
+ }
} else {
QMAKE_LINK_O_FLAG = "cf "
QMAKE_LINK = jar
diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
index c80efb03e0..5b42cfcac8 100644
--- a/mkspecs/features/qt_docs.prf
+++ b/mkspecs/features/qt_docs.prf
@@ -32,7 +32,9 @@ qtmver.name = QT_VER
qtmver.value = $$replace(qtver.value, ^(\\d+\\.\\d+).*$, \\1)
qtvertag.name = QT_VERSION_TAG
qtvertag.value = $$replace(qtver.value, \.,)
-qtAddToolEnv(QDOC, qtver qtmver qtvertag)
+qtdocs.name = QT_INSTALL_DOCS
+qtdocs.value = $$[QT_INSTALL_DOCS/get]
+qtAddToolEnv(QDOC, qtver qtmver qtvertag qtdocs)
doc_command = $$QDOC $$QMAKE_DOCS
prepare_docs {
prepare_docs.commands += $$doc_command -prepare -no-link-errors
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index cfafa15629..3531d28b42 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -35,6 +35,8 @@ host_build {
QT -= core core-private xml
QT += bootstrap-private
}
+ } else {
+ !build_pass:contains(QT_CONFIG, build_all): CONFIG += release
}
}