From 3d7c4e064f0a41dc15899a584c1ec0f9ba345c84 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 2 Apr 2017 22:59:23 -0700 Subject: Support different job counts also for ICC LTO Change-Id: I27b55fdf514247549455fffd14b1cdbd2980d5d6 Reviewed-by: Oswald Buddenhagen Reviewed-by: Thiago Macieira --- mkspecs/features/link_ltcg.prf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/link_ltcg.prf b/mkspecs/features/link_ltcg.prf index 03d0e813b6..4da061e1fe 100644 --- a/mkspecs/features/link_ltcg.prf +++ b/mkspecs/features/link_ltcg.prf @@ -1,6 +1,8 @@ gcc { # on Windows, MinGW's support for -flto=N is broken - !clang:!intel_icc:!equals(QMAKE_HOST.os, Windows):greaterThan(QMAKE_HOST.cpu_count, 1) { + intel_icc { + QMAKE_LFLAGS_LTCG ~= s/-ipo/-ipo=$$QMAKE_HOST.cpu_count/ + } else: !clang:!equals(QMAKE_HOST.os, Windows):greaterThan(QMAKE_HOST.cpu_count, 1) { # Override LTO number of jobs QMAKE_LFLAGS_LTCG ~= s/^-flto$/-flto=$$QMAKE_HOST.cpu_count/ } -- cgit v1.2.3 From 49fea13e6dd14c64d6e83ac69d4cfa891861c3e6 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 31 Mar 2017 16:35:56 +0200 Subject: Load android-specific target override in resolve_target Otherwise, in separate_debug_info.prf, we try to process the original target, which is not what we actually build. Task-number: QTBUG-59779 Change-Id: I2b2d2e7b5f87041cc51075da7c3a5b690f94f1f3 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/android/resolve_target.prf | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 mkspecs/features/android/resolve_target.prf (limited to 'mkspecs') diff --git a/mkspecs/features/android/resolve_target.prf b/mkspecs/features/android/resolve_target.prf new file mode 100644 index 0000000000..2bbeffcfd0 --- /dev/null +++ b/mkspecs/features/android/resolve_target.prf @@ -0,0 +1,2 @@ +load(android) +load(resolve_target) -- cgit v1.2.3 From 8ccd38d20dfe4d9b359d54d3b308fc3234b9c815 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 11 Apr 2017 14:18:42 -0700 Subject: Move Apple-specific -fapplication-extensions option to the mkspec The Intel compiler does not know about it. Change-Id: I523b0abacd5148b2bf08fffd14b4748c3b33c8fb Reviewed-by: Jake Petroules --- mkspecs/common/clang-mac.conf | 2 ++ mkspecs/features/mac/default_post.prf | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/clang-mac.conf b/mkspecs/common/clang-mac.conf index 274fd73d00..cbae2e6262 100644 --- a/mkspecs/common/clang-mac.conf +++ b/mkspecs/common/clang-mac.conf @@ -9,3 +9,5 @@ QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0 QMAKE_CXXFLAGS += -stdlib=libc++ QMAKE_LFLAGS += -stdlib=libc++ QMAKE_AR_LTCG = libtool -static -o + +QMAKE_CFLAGS_APPLICATION_EXTENSION = -fapplication-extension diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index cb8543254a..2a164501bc 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -40,10 +40,10 @@ qt { !bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD app_extension_api_only { - QMAKE_CFLAGS += -fapplication-extension - QMAKE_CXXFLAGS += -fapplication-extension - QMAKE_CXXFLAGS_PRECOMPILE += -fapplication-extension - QMAKE_LFLAGS += -fapplication-extension + QMAKE_CFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION + QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION + QMAKE_LFLAGS += $$QMAKE_CFLAGS_APPLICATION_EXTENSION } macx-xcode { -- cgit v1.2.3 From 097073fa678c6526620f786fbdd6e913a77d54d5 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Tue, 11 Apr 2017 14:54:53 -0700 Subject: Fix precompiled headers on Apple platforms, with multiple architectures The original commit only added support for GCC and Clang, but not ICC. Amends 73331eeb Change-Id: Id7638cf1b538edb1008fb3aa10754c1f517a994f Reviewed-by: Thiago Macieira Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/default_post.prf | 18 ++++++++++++++---- mkspecs/macx-icc/qmake.conf | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index 2a164501bc..2bba73d795 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -157,13 +157,23 @@ macx-xcode { # Enable precompiled headers for multiple architectures QMAKE_CFLAGS_USE_PRECOMPILE = for (arch, VALID_ARCHS) { + icc_pch_style: \ + use_flag = "-pch-use " + else: \ + use_flag = -include + QMAKE_CFLAGS_USE_PRECOMPILE += \ -Xarch_$${arch} \ - -include${QMAKE_PCH_OUTPUT_$${arch}} + $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}} + } + icc_pch_style { + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT} + QMAKE_CFLAGS_USE_PRECOMPILE = + } else { + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE } - QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE - QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT} } diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index 6e43430342..7e10d1f413 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -94,6 +94,8 @@ QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 +QMAKE_APPLE_DEVICE_ARCHS = x86_64 + include(../common/macx.conf) load(qt_config) -- cgit v1.2.3 From 255d291efd5ed3e193a6340055c35887f687f0ca Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Mar 2017 22:56:27 -0700 Subject: MSVC: Enable standards-conforming mode Let's not allow any new code that uses non-conforming syntaxes. With GCC and like, we already use -std=c++11 instead of -std=gnu++11 for that very reason. Change-Id: I4a7dc1fe14154695b968fffd14aba9f8cea69c47 Reviewed-by: Friedemann Kleint Reviewed-by: Oswald Buddenhagen Reviewed-by: Oliver Wolff --- mkspecs/common/msvc-version.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index 945767ce8c..29f96b7abf 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -47,7 +47,7 @@ greaterThan(QMAKE_MSC_VER, 1799) { MSVC_VER = 12.0 COMPAT_MKSPEC = win32-msvc2013 QMAKE_CFLAGS += -FS - QMAKE_CXXFLAGS += -FS + QMAKE_CXXFLAGS += -FS -Zc:rvalueCast -Zc:inline QMAKE_CFLAGS_F16C = -arch:AVX @@ -80,6 +80,7 @@ greaterThan(QMAKE_MSC_VER, 1909) { # Visual Studio 2017 (15.0) / Visual C++ 19.10 and up MSVC_VER = 15.0 COMPAT_MKSPEC = win32-msvc2017 + QMAKE_CXXFLAGS += -Zc:referenceBinding } greaterThan(QMAKE_MSC_VER, 1910) { -- cgit v1.2.3 From 47c9b66a8b4cf95983e7bca772a40983d52fc6d6 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 16 Apr 2017 10:51:15 -0700 Subject: Disable precompiled headers for small modules Creating a precompiled header exclusively for a one- or two-file module is wasteful. The time that it takes to build the precompiled source is on the same order as a regular compilation, so enabling precompiled headers for those modules just makes the build slower. Also make it possible to override the precompiled header by just setting PRECOMPILED_HEADER to empty. Change-Id: I0e1a09998253489388abfffd14b5f221288c4826 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qt_module_headers.prf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 648723d6ff..c77db2193b 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -157,12 +157,18 @@ MODULE_MASTER_DEPS_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$${MOD } SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER -# Automatically enable precompiled headers for Qt modules, -# except for Gcc/Windows: Larger precompiled headers crash cc1plus.exe -# (e.g. with i686-4.8.2-release-posix-dwarf-rt_v3-rev3) -!if(gcc:equals(QMAKE_HOST.os, Windows)):!equals(TEMPLATE, aux) { - isEmpty(PRECOMPILED_HEADER): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER +# Automatically enable precompiled headers for Qt modules with more than 2 sources +combined_SOURCES = $$SOURCES $$OBJECTIVE_SOURCES +count(combined_SOURCES, 2, >) { + # except for Gcc/Windows: Larger precompiled headers crash cc1plus.exe + # (e.g. with i686-4.8.2-release-posix-dwarf-rt_v3-rev3) + !if(gcc:equals(QMAKE_HOST.os, Windows)):!equals(TEMPLATE, aux) { + !defined(PRECOMPILED_HEADER, "var"): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER + } +} else { + CONFIG -= precompile_header } +unset(combined_SOURCES) headersclean:!internal_module { # Make sure that the header compiles with our strict options -- cgit v1.2.3