summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-06-19 13:25:11 +0200
committerLiang Qi <liang.qi@qt.io>2017-06-19 16:12:34 +0200
commitce09ef431373f45d14ce0a6e7de24aee3666093d (patch)
tree7c998b21f02db55e233e7eeb1599663f1c6b51ca /mkspecs
parent7ad55ca65f42351e231f31f7a9253ae6eaf1ebb3 (diff)
parent97eec16e4ff6367c233f8ea6c4a343c286c3a514 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/plugins/platforms/android/qandroidplatformintegration.h src/plugins/platforms/windows/qwindowscontext.cpp src/plugins/platforms/windows/windows.pri src/tools/uic/cpp/cppwriteinitialization.cpp src/widgets/doc/src/widgets-and-layouts/gallery.qdoc Change-Id: I8d0834c77f350ea7540140c2c7f372814afc2d0f
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/msvc-desktop.conf4
-rw-r--r--mkspecs/common/qcc-base.conf2
-rw-r--r--mkspecs/features/android/android.prf5
-rw-r--r--mkspecs/features/android/resolve_target.prf1
-rw-r--r--mkspecs/features/data/macros.cpp18
-rw-r--r--mkspecs/features/default_post.prf5
-rw-r--r--mkspecs/features/mac/default_post.prf6
-rw-r--r--mkspecs/features/moc.prf4
-rw-r--r--mkspecs/features/qt_common.prf1
-rw-r--r--mkspecs/features/qt_configure.prf4
-rw-r--r--mkspecs/features/toolchain.prf63
-rw-r--r--mkspecs/qnx-aarch64le-qcc/qmake.conf8
-rw-r--r--mkspecs/qnx-x86-64-qcc/qmake.conf8
13 files changed, 73 insertions, 56 deletions
diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf
index 50745c3621..95db8b93f9 100644
--- a/mkspecs/common/msvc-desktop.conf
+++ b/mkspecs/common/msvc-desktop.conf
@@ -100,9 +100,9 @@ QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32
QMAKE_LIBS_QT_ENTRY = -lqtmain
-QMAKE_IDL = midl
+QMAKE_IDL = midl /NOLOGO
QMAKE_LIB = lib /NOLOGO
-QMAKE_RC = rc
+QMAKE_RC = rc /NOLOGO
VCPROJ_EXTENSION = .vcproj
VCSOLUTION_EXTENSION = .sln
diff --git a/mkspecs/common/qcc-base.conf b/mkspecs/common/qcc-base.conf
index 77e0476777..24ee29b6b8 100644
--- a/mkspecs/common/qcc-base.conf
+++ b/mkspecs/common/qcc-base.conf
@@ -36,6 +36,8 @@ QMAKE_CFLAGS_AVX2 += -mavx2
QMAKE_CFLAGS_AESNI += -maes
QMAKE_CFLAGS_SHANI += -msha
+QMAKE_CFLAGS_STACK_PROTECTOR_STRONG = -fstack-protector-strong
+
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS -lang-c++
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf
index 7d77598e76..45eadc9fdb 100644
--- a/mkspecs/features/android/android.prf
+++ b/mkspecs/features/android/android.prf
@@ -1,3 +1,6 @@
+android_install:contains(INSTALLS, target):!isEmpty(target.path): \
+ CONFIG -= android_install
+
contains(TEMPLATE, ".*app") {
!android_app {
!contains(TARGET, ".so"): TARGET = lib$${TARGET}.so
@@ -8,7 +11,7 @@ contains(TEMPLATE, ".*app") {
INSTALLS *= target
}
}
-} else: contains(TEMPLATE, "lib"):!QTDIR_build:android_install {
+} else: contains(TEMPLATE, "lib"):!static:android_install {
target.path = /libs/$$ANDROID_TARGET_ARCH/
INSTALLS *= target
}
diff --git a/mkspecs/features/android/resolve_target.prf b/mkspecs/features/android/resolve_target.prf
index 2bbeffcfd0..25682cd894 100644
--- a/mkspecs/features/android/resolve_target.prf
+++ b/mkspecs/features/android/resolve_target.prf
@@ -1,2 +1,3 @@
+load(resolve_config)
load(android)
load(resolve_target)
diff --git a/mkspecs/features/data/macros.cpp b/mkspecs/features/data/macros.cpp
index e677dace12..9dcb8f0914 100644
--- a/mkspecs/features/data/macros.cpp
+++ b/mkspecs/features/data/macros.cpp
@@ -13,17 +13,17 @@ QMAKE_APPLE_CC = __APPLE_CC__
#endif
#ifdef __clang__
#ifdef __APPLE_CC__
-QT_APPLE_CLANG_MAJOR_VERSION = __clang_major__
-QT_APPLE_CLANG_MINOR_VERSION = __clang_minor__
-QT_APPLE_CLANG_PATCH_VERSION = __clang_patchlevel__
+QMAKE_APPLE_CLANG_MAJOR_VERSION = __clang_major__
+QMAKE_APPLE_CLANG_MINOR_VERSION = __clang_minor__
+QMAKE_APPLE_CLANG_PATCH_VERSION = __clang_patchlevel__
#else
-QT_CLANG_MAJOR_VERSION = __clang_major__
-QT_CLANG_MINOR_VERSION = __clang_minor__
-QT_CLANG_PATCH_VERSION = __clang_patchlevel__
+QMAKE_CLANG_MAJOR_VERSION = __clang_major__
+QMAKE_CLANG_MINOR_VERSION = __clang_minor__
+QMAKE_CLANG_PATCH_VERSION = __clang_patchlevel__
#endif
#endif
#ifdef __GNUC__
-QT_GCC_MAJOR_VERSION = __GNUC__
-QT_GCC_MINOR_VERSION = __GNUC_MINOR__
-QT_GCC_PATCH_VERSION = __GNUC_PATCHLEVEL__
+QMAKE_GCC_MAJOR_VERSION = __GNUC__
+QMAKE_GCC_MINOR_VERSION = __GNUC_MINOR__
+QMAKE_GCC_PATCH_VERSION = __GNUC_PATCHLEVEL__
#endif
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf
index d18604e0b8..7e027325bd 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -71,6 +71,11 @@ debug {
QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE
}
+stack_protector_strong {
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_STACK_PROTECTOR_STRONG
+ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_STACK_PROTECTOR_STRONG
+}
+
# disable special linker flags for host builds (no proper test for host support yet)
!host_build|!cross_compile {
use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index 2bba73d795..395ac34001 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -162,8 +162,12 @@ macx-xcode {
else: \
use_flag = -include
+ # Only use Xarch with multi-arch, as the option confuses ccache
+ count(VALID_ARCHS, 1, greaterThan): \
+ QMAKE_CFLAGS_USE_PRECOMPILE += \
+ -Xarch_$${arch}
+
QMAKE_CFLAGS_USE_PRECOMPILE += \
- -Xarch_$${arch} \
$${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
}
icc_pch_style {
diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf
index 15eb38af31..955933d874 100644
--- a/mkspecs/features/moc.prf
+++ b/mkspecs/features/moc.prf
@@ -31,10 +31,10 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit:!no_moc_predefs:if(!macos|count(QMAKE_APP
moc_predefs.name = "Generate moc_predefs.h"
moc_predefs.CONFIG = no_link
gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
- else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Za -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
+ else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
else:msvc {
moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$QMAKE_QMAKE)) $$QMAKE_CXXFLAGS \
- -E -Za ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT}
+ -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT}
} else: error("Oops, I messed up")
moc_predefs.output = $$MOC_DIR/moc_predefs.h
moc_predefs.input = MOC_PREDEF_FILE
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
index ea235514b7..1e138730b3 100644
--- a/mkspecs/features/qt_common.prf
+++ b/mkspecs/features/qt_common.prf
@@ -17,6 +17,7 @@ DEFINES *= QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
qtConfig(c++11): CONFIG += c++11 strict_c++
qtConfig(c++14): CONFIG += c++14
qtConfig(c++1z): CONFIG += c++1z
+qtConfig(stack-protector-strong): CONFIG += stack_protector_strong
contains(TEMPLATE, .*lib) {
# module and plugins
if(!host_build|!cross_compile):qtConfig(reduce_exports): CONFIG += hide_symbols
diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf
index 964c2393c2..f3db6b467d 100644
--- a/mkspecs/features/qt_configure.prf
+++ b/mkspecs/features/qt_configure.prf
@@ -326,7 +326,7 @@ defineTest(qtConfParseCommandLine) {
}
defineReplace(qtConfToolchainSupportsFlag) {
- test_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR)
+ test_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR)
test_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$test_out_dir)) &&"
conftest = "int main() { return 0; }"
@@ -849,7 +849,7 @@ defineTest(qtConfTest_compile) {
isEmpty(host): host = false
test_dir = $$QMAKE_CONFIG_TESTS_DIR/$$test
- test_base_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR)
+ test_base_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR)
test_out_dir = $$test_base_out_dir/$$test
!isEmpty($${1}.pro): \
test_dir = $$test_dir/$$eval($${1}.pro)
diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf
index 46a9c5707a..34bd8f1d78 100644
--- a/mkspecs/features/toolchain.prf
+++ b/mkspecs/features/toolchain.prf
@@ -40,19 +40,38 @@ isEmpty($${target_prefix}.INCDIRS) {
# QMAKE_DEFAULT_*DIRS, because they're handled in a single build pass.
darwin: cxx_flags += -isysroot $$QMAKE_MAC_SDK_PATH
- output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ -E -v - 2>&1 $$cmd_suffix", lines)
+ clang: \
+ # Need to link to pick up library paths
+ cxx_flags += $$QMAKE_LFLAGS_SHLIB -o /dev/null -v -Wl,-v
+ else: \
+ # gcc is fine with just preprocessing
+ cxx_flags += -E -v
+
+ output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec)
+ !equals(ec, 0): \
+ error("Cannot run compiler '$$QMAKE_CXX'. Maybe you forgot to setup the environment?")
add_includes = false
+ add_libraries = false
for (line, output) {
- line ~= s/^ *// # remove leading spaces
+ line ~= s/^[ \\t]*// # remove leading spaces
contains(line, "LIBRARY_PATH=.*") {
line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH=
paths = $$split(line, $$QMAKE_DIRLIST_SEP)
for (path, paths): \
QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path)
+ } else: contains(line, "Library search paths:") {
+ add_libraries = true
} else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here:
add_includes = true
} else: contains(line, "End of search.*") {
add_includes = false
+ } else: $$add_libraries {
+ # We assume all library search paths are absolute
+ !contains(line, "^/.*") {
+ add_libraries = false
+ next()
+ }
+ QMAKE_DEFAULT_LIBDIRS += $$clean_path($$line)
} else: $$add_includes {
!contains(line, ".* \\(framework directory\\)"): \
QMAKE_DEFAULT_INCDIRS += $$clean_path($$line)
@@ -85,13 +104,19 @@ isEmpty($${target_prefix}.INCDIRS) {
#
defineReplace(qtVariablesFromMSVC) {
- return($$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) <NUL 2>NUL", lines))
+ ret = $$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) <NUL 2>NUL", lines, ec)
+ !equals(ec, 0): \
+ error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?")
+ return($$ret)
}
defineReplace(qtVariablesFromGCC) {
null_device = /dev/null
equals(QMAKE_HOST.os, Windows): null_device = NUL
- return($$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) <$$null_device 2>$$null_device", lines))
+ ret = $$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) <$$null_device 2>$$null_device", lines, ec)
+ !equals(ec, 0): \
+ error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?")
+ return($$ret)
}
isEmpty($${target_prefix}.COMPILER_MACROS) {
@@ -138,35 +163,27 @@ unset(target_prefix)
# Populate QMAKE_COMPILER_DEFINES and some compatibility variables.
# The $$format_number() calls strip leading zeros to avoid misinterpretation as octal.
QMAKE_COMPILER_DEFINES += __cplusplus=$$QT_COMPILER_STDCXX
-!isEmpty(QMAKE_MSC_VER) {
+!isEmpty(QMAKE_MSC_VER): \
QMAKE_COMPILER_DEFINES += _MSC_VER=$$QMAKE_MSC_VER _MSC_FULL_VER=$$QMAKE_MSC_FULL_VER
- QT_MSVC_MAJOR_VERSION = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\1")
- QT_MSVC_MINOR_VERSION = $$format_number($$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\2"))
- QT_MSVC_PATCH_VERSION = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\3"))
-}
-!isEmpty(QMAKE_ICC_VER) {
+!isEmpty(QMAKE_ICC_VER): \
QMAKE_COMPILER_DEFINES += __INTEL_COMPILER=$$QMAKE_ICC_VER __INTEL_COMPILER_UPDATE=$$QMAKE_ICC_UPDATE_VER
- QT_ICC_MAJOR_VERSION = $$replace(QMAKE_ICC_VER, "(..)(..)", "\\1")
- QT_ICC_MINOR_VERSION = $$format_number($$replace(QMAKE_ICC_VER, "(..)(..)", "\\2"))
- QT_ICC_PATCH_VERSION = $$QMAKE_ICC_UPDATE_VER
-}
!isEmpty(QMAKE_APPLE_CC): \
QMAKE_COMPILER_DEFINES += __APPLE_CC__=$$QMAKE_APPLE_CC
!isEmpty(QT_APPLE_CLANG_MAJOR_VERSION): \
QMAKE_COMPILER_DEFINES += __clang__ \
- __clang_major__=$$QT_APPLE_CLANG_MAJOR_VERSION \
- __clang_minor__=$$QT_APPLE_CLANG_MINOR_VERSION \
- __clang_patchlevel__=$$QT_APPLE_CLANG_PATCH_VERSION
+ __clang_major__=$$QMAKE_APPLE_CLANG_MAJOR_VERSION \
+ __clang_minor__=$$QMAKE_APPLE_CLANG_MINOR_VERSION \
+ __clang_patchlevel__=$$QMAKE_APPLE_CLANG_PATCH_VERSION
!isEmpty(QT_CLANG_MAJOR_VERSION): \
QMAKE_COMPILER_DEFINES += __clang__ \
- __clang_major__=$$QT_CLANG_MAJOR_VERSION \
- __clang_minor__=$$QT_CLANG_MINOR_VERSION \
- __clang_patchlevel__=$$QT_CLANG_PATCH_VERSION
+ __clang_major__=$$QMAKE_CLANG_MAJOR_VERSION \
+ __clang_minor__=$$QMAKE_CLANG_MINOR_VERSION \
+ __clang_patchlevel__=$$QMAKE_CLANG_PATCH_VERSION
!isEmpty(QT_GCC_MAJOR_VERSION): \
QMAKE_COMPILER_DEFINES += \
- __GNUC__=$$QT_GCC_MAJOR_VERSION \
- __GNUC_MINOR__=$$QT_GCC_MINOR_VERSION \
- __GNUC_PATCHLEVEL__=$$QT_GCC_PATCH_VERSION
+ __GNUC__=$$QMAKE_GCC_MAJOR_VERSION \
+ __GNUC_MINOR__=$$QMAKE_GCC_MINOR_VERSION \
+ __GNUC_PATCHLEVEL__=$$QMAKE_GCC_PATCH_VERSION
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT
diff --git a/mkspecs/qnx-aarch64le-qcc/qmake.conf b/mkspecs/qnx-aarch64le-qcc/qmake.conf
index 5e3123bece..754bc27358 100644
--- a/mkspecs/qnx-aarch64le-qcc/qmake.conf
+++ b/mkspecs/qnx-aarch64le-qcc/qmake.conf
@@ -7,11 +7,3 @@ DEFINES += _FORTIFY_SOURCE=2
QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now
include(../common/qcc-base-qnx-aarch64le.conf)
-
-qtConfig(stack-protector-strong) {
- QMAKE_CFLAGS += -fstack-protector-strong
- QMAKE_CXXFLAGS += -fstack-protector-strong
-} else {
- QMAKE_CFLAGS += -fstack-protector -fstack-protector-all
- QMAKE_CXXFLAGS += -fstack-protector -fstack-protector-all
-}
diff --git a/mkspecs/qnx-x86-64-qcc/qmake.conf b/mkspecs/qnx-x86-64-qcc/qmake.conf
index 2a01ed1405..c479181342 100644
--- a/mkspecs/qnx-x86-64-qcc/qmake.conf
+++ b/mkspecs/qnx-x86-64-qcc/qmake.conf
@@ -5,11 +5,3 @@
QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now
include(../common/qcc-base-qnx-x86-64.conf)
-
-qtConfig(stack-protector-strong) {
- QMAKE_CFLAGS += -fstack-protector-strong
- QMAKE_CXXFLAGS += -fstack-protector-strong
-} else {
- QMAKE_CFLAGS += -fstack-protector -fstack-protector-all
- QMAKE_CXXFLAGS += -fstack-protector -fstack-protector-all
-}