diff options
Diffstat (limited to 'mkspecs/features')
-rw-r--r-- | mkspecs/features/data/android/dx.bat | 108 | ||||
-rw-r--r-- | mkspecs/features/default_post.prf | 1 | ||||
-rw-r--r-- | mkspecs/features/exclusive_builds.prf | 4 | ||||
-rw-r--r-- | mkspecs/features/java.prf | 27 | ||||
-rw-r--r-- | mkspecs/features/qt_build_config.prf | 1 | ||||
-rw-r--r-- | mkspecs/features/qt_docs.prf | 6 | ||||
-rw-r--r-- | mkspecs/features/qt_plugin.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/qt_tracepoints.prf | 54 | ||||
-rw-r--r-- | mkspecs/features/simd.prf | 29 |
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) |