summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features')
-rw-r--r--mkspecs/features/data/android/dx.bat108
-rw-r--r--mkspecs/features/default_post.prf1
-rw-r--r--mkspecs/features/exclusive_builds.prf4
-rw-r--r--mkspecs/features/java.prf27
-rw-r--r--mkspecs/features/qt_build_config.prf1
-rw-r--r--mkspecs/features/qt_docs.prf6
-rw-r--r--mkspecs/features/qt_plugin.prf2
-rw-r--r--mkspecs/features/qt_tracepoints.prf54
-rw-r--r--mkspecs/features/simd.prf29
9 files changed, 95 insertions, 137 deletions
diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat
deleted file mode 100644
index 9816f9607d..0000000000
--- a/mkspecs/features/data/android/dx.bat
+++ /dev/null
@@ -1,108 +0,0 @@
-@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 "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=
-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=%dpZ%"
-rem frameworkdir must not end with a dir sep.
-set "frameworkdir=%frameworkdir:~0,-1%"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%dpZ%lib"
-
-if exist "%frameworkdir%\%jarfile%" goto JarFileOk
- set "frameworkdir=%dpZ%..\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_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/default_post.prf b/mkspecs/features/default_post.prf
index 7e027325bd..9eba5bcf00 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -80,6 +80,7 @@ stack_protector_strong {
!host_build|!cross_compile {
use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD
enable_new_dtags: QMAKE_LFLAGS += $$QMAKE_LFLAGS_NEW_DTAGS
+ enable_gdb_index: QMAKE_LFLAGS += $$QMAKE_LFLAGS_GDB_INDEX
}
dll:win32: QMAKE_LFLAGS += $$QMAKE_LFLAGS_DLL
diff --git a/mkspecs/features/exclusive_builds.prf b/mkspecs/features/exclusive_builds.prf
index f40cc99172..b477cff162 100644
--- a/mkspecs/features/exclusive_builds.prf
+++ b/mkspecs/features/exclusive_builds.prf
@@ -38,5 +38,5 @@ defineTest(addExclusiveBuilds) {
}
# Default directories to process
-QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR QGLTF_DIR DESTDIR
-QMAKE_DIR_REPLACE_SANE += QGLTF_DIR
+QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR QGLTF_DIR DESTDIR TRACEGEN_DIR
+QMAKE_DIR_REPLACE_SANE += QGLTF_DIR TRACEGEN_DIR
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf
index 852954e5ca..f1f5e4c10c 100644
--- a/mkspecs/features/java.prf
+++ b/mkspecs/features/java.prf
@@ -7,10 +7,8 @@ android {
CONFIG += android_app
}
-isEmpty(CLASS_DIR) {
- bundled_jar_file: CLASS_DIR = .classes.bundled
- else: CLASS_DIR = .classes
-}
+isEmpty(CLASS_DIR): \
+ CLASS_DIR = .classes
CONFIG -= qt
@@ -39,26 +37,7 @@ QMAKE_LIBS =
QMAKE_LIBS_OPENGL_ES2 =
QMAKE_LIBDIR =
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) {
- # 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 = $$ANDROID_SDK_ROOT/platform-tools/dx.bat
- !exists($$DEX_BAT): DEX_BAT = $$ANDROID_SDK_ROOT/build-tools/$$ANDROID_SDK_BUILD_TOOLS_REVISION/dx.bat
- DEX_CMD = $$PWD/data/android/dx $$DEX_BAT
- } else {
- DEX_CMD = $$ANDROID_SDK_ROOT/platform-tools/dx
- !exists($$DEX_CMD): DEX_CMD = $$ANDROID_SDK_ROOT/build-tools/$$ANDROID_SDK_BUILD_TOOLS_REVISION/dx
- !exists($$DEX_CMD): error("The path $$DEX_CMD does not exist. Please set the environment variable ANDROID_BUILD_TOOLS_REVISION to the revision of the build tools installed in your Android SDK.")
- }
- QMAKE_LINK_SHLIB_CMD = $$DEX_CMD --dex --output $(TARGET) $$CLASS_DIR
-} else {
- QMAKE_LINK_SHLIB_CMD = jar cf $(TARGET) -C $$CLASS_DIR .
-}
+QMAKE_LINK_SHLIB_CMD = jar cf $(TARGET) -C $$CLASS_DIR .
# Force link step to always happen, since we are always updating the
# .class files
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 76e1d15319..a2fa1be481 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -25,6 +25,7 @@ OBJECTS_DIR = .obj
MOC_DIR = .moc
RCC_DIR = .rcc
UI_DIR = .uic
+TRACEGEN_DIR = .tracegen
intel_icl {
# ICL 14.0 has a bug that makes it not find #includes in dirs starting with .
MOC_DIR = tmp/moc
diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
index 72dde61a40..3139c443c6 100644
--- a/mkspecs/features/qt_docs.prf
+++ b/mkspecs/features/qt_docs.prf
@@ -76,11 +76,11 @@ QMAKE_EXTRA_TARGETS += qtattributionsscanner
doc_command = $$QDOC $$QMAKE_DOCS
prepare_docs {
- prepare_docs.commands += $$doc_command -prepare $$PREP_DOC_INDEXES -no-link-errors
- generate_docs.commands += $$doc_command -generate $$DOC_INDEXES
+ prepare_docs.commands += $$doc_command -prepare $$PREP_DOC_INDEXES -no-link-errors $(INCPATH)
+ generate_docs.commands += $$doc_command -generate $$DOC_INDEXES $(INCPATH)
prepare_docs.depends += qtattributionsscanner
} else {
- html_docs.commands += $$doc_command $$DOC_INDEXES
+ html_docs.commands += $$doc_command $$DOC_INDEXES $(INCPATH)
html_docs.depends += qtattributionsscanner
}
diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
index 14fc5f9a94..bf90adcf1e 100644
--- a/mkspecs/features/qt_plugin.prf
+++ b/mkspecs/features/qt_plugin.prf
@@ -95,6 +95,8 @@ TARGET = $$qt5LibraryTarget($$TARGET)
CONFIG += create_cmake
+DEFINES *= QT_DEPRECATED_WARNINGS
+
load(qt_targets)
load(qt_common)
diff --git a/mkspecs/features/qt_tracepoints.prf b/mkspecs/features/qt_tracepoints.prf
new file mode 100644
index 0000000000..d1b45a47cb
--- /dev/null
+++ b/mkspecs/features/qt_tracepoints.prf
@@ -0,0 +1,54 @@
+# W A R N I N G
+# -------------
+#
+# This file is not part of the Qt API. It exists purely as an
+# implementation detail. It may change from version to version
+# without notice, or even be removed.
+#
+# We mean it.
+#
+
+qtPrepareTool(QMAKE_TRACEGEN, tracegen)
+
+isEmpty(TRACEGEN_DIR): TRACEGEN_DIR = .
+
+PROVIDER_NAME = qt$$lower($$MODULE)
+INCLUDEPATH += $$absolute_path($$TRACEGEN_DIR, $$OUT_PWD)
+HEADER_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints_p$${first(QMAKE_EXT_H)}
+
+!force_bootstrap:if(qtConfig(lttng)|qtConfig(etw)) {
+ SOURCE_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints$${first(QMAKE_EXT_CPP)}
+
+ isEmpty(BUILDS)|build_pass {
+ impl_file_contents = \
+ "$${LITERAL_HASH}define TRACEPOINT_CREATE_PROBES" \
+ "$${LITERAL_HASH}define TRACEPOINT_DEFINE" \
+ "$${LITERAL_HASH}include \"$${HEADER_PATH}\""
+
+ write_file($$SOURCE_PATH, impl_file_contents)|error()
+ }
+
+ GENERATED_SOURCES += $$SOURCE_PATH
+
+ tracegen.input = TRACEPOINT_PROVIDER
+ tracegen.output = $$HEADER_PATH
+ tracegen.variable_out = HEADERS
+ tracegen.depends += $$QMAKE_TRACEGEN_EXE
+ tracegen.CONFIG = target_predeps
+
+ qtConfig(lttng) {
+ tracegen.commands = $$QMAKE_TRACEGEN lttng ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+ QMAKE_USE_PRIVATE += lttng-ust
+ } else {
+ tracegen.commands = $$QMAKE_TRACEGEN etw ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+ }
+
+ QMAKE_EXTRA_COMPILERS += tracegen
+
+ DEFINES += Q_TRACEPOINT
+} else {
+ isEmpty(BUILDS)|build_pass {
+ header_file_contents = "$${LITERAL_HASH}include <private/qtrace_p.h>"
+ write_file($$HEADER_PATH, header_file_contents)|error()
+ }
+}
diff --git a/mkspecs/features/simd.prf b/mkspecs/features/simd.prf
index 8471ce7e7c..e4bee7107c 100644
--- a/mkspecs/features/simd.prf
+++ b/mkspecs/features/simd.prf
@@ -23,6 +23,7 @@ defineTest(addSimdCompiler) {
upname = $$upper($$name)
headers_var = $${upname}_HEADERS
sources_var = $${upname}_SOURCES
+ csources_var = $${upname}_C_SOURCES
asm_var = $${upname}_ASM
CONFIG($$1) {
@@ -34,6 +35,14 @@ defineTest(addSimdCompiler) {
export(SOURCES)
} else {
# We need special compiler flags
+
+ # Split C and C++ sources
+ $$csources_var = $$find($$sources_var, ".*\\.c$")
+ $$sources_var -= $$eval($$csources_var)
+ export($$csources_var)
+ export($$sources_var)
+
+ # Add C++ compiler
$${name}_compiler.commands = $$QMAKE_CXX -c $(CXXFLAGS) $$cflags $(INCPATH) ${QMAKE_FILE_IN}
msvc: $${name}_compiler.commands += -Fo${QMAKE_FILE_OUT}
else: $${name}_compiler.commands += -o ${QMAKE_FILE_OUT}
@@ -52,6 +61,26 @@ defineTest(addSimdCompiler) {
export($${name}_compiler.input)
export($${name}_compiler.variable_out)
export($${name}_compiler.name)
+
+ # Add a C compiler
+ $${name}_c_compiler.commands = $$QMAKE_CC -c $(CFLAGS) $$cflags $(INCPATH) ${QMAKE_FILE_IN}
+ msvc: $${name}_c_compiler.commands += -Fo${QMAKE_FILE_OUT}
+ else: $${name}_c_compiler.commands += -o ${QMAKE_FILE_OUT}
+
+ $${name}_c_compiler.dependency_type = TYPE_C
+ $${name}_c_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ $${name}_c_compiler.input = $$csources_var
+ $${name}_c_compiler.variable_out = OBJECTS
+ $${name}_c_compiler.name = compiling[$${name}] ${QMAKE_FILE_IN}
+ silent: $${name}_c_compiler.commands = @echo compiling[$${name}] ${QMAKE_FILE_IN} && $$eval($${name}_c_compiler.commands)
+ QMAKE_EXTRA_COMPILERS += $${name}_c_compiler
+
+ export($${name}_c_compiler.commands)
+ export($${name}_c_compiler.dependency_type)
+ export($${name}_c_compiler.output)
+ export($${name}_c_compiler.input)
+ export($${name}_c_compiler.variable_out)
+ export($${name}_c_compiler.name)
}
# We always need an assembler (need to run the C compiler and without precompiled headers)