diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/android-base-tail.conf | 2 | ||||
-rw-r--r-- | mkspecs/common/clang.conf | 2 | ||||
-rw-r--r-- | mkspecs/common/g++-base.conf | 2 | ||||
-rw-r--r-- | mkspecs/common/gcc-base.conf | 5 | ||||
-rw-r--r-- | mkspecs/common/qcc-base-qnx.conf | 10 | ||||
-rw-r--r-- | mkspecs/features/default_post.prf | 15 | ||||
-rw-r--r-- | mkspecs/features/gc_binaries.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qml_module.prf | 14 | ||||
-rw-r--r-- | mkspecs/features/qt.prf | 11 | ||||
-rw-r--r-- | mkspecs/features/qt_app.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_common.prf | 30 | ||||
-rw-r--r-- | mkspecs/features/qt_configure.prf | 13 | ||||
-rw-r--r-- | mkspecs/features/qt_module.prf | 2 | ||||
-rw-r--r-- | mkspecs/features/resources.prf | 34 | ||||
-rw-r--r-- | mkspecs/features/testcase.prf | 12 | ||||
-rw-r--r-- | mkspecs/features/uikit/gc_binaries.prf | 2 | ||||
-rw-r--r-- | mkspecs/linux-icc/qmake.conf | 2 | ||||
-rw-r--r-- | mkspecs/macx-clang/Info.plist.disable_highdpi | 8 | ||||
-rw-r--r-- | mkspecs/macx-icc/qmake.conf | 2 |
19 files changed, 143 insertions, 29 deletions
diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf index 7c3ae9566a..e239fa01c5 100644 --- a/mkspecs/common/android-base-tail.conf +++ b/mkspecs/common/android-base-tail.conf @@ -30,6 +30,8 @@ QMAKE_CFLAGS_THREAD = -D_REENTRANT QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden QMAKE_CFLAGS_NEON = -mfpu=neon +QMAKE_CFLAGS_GNUC99 = -std=gnu99 +QMAKE_CFLAGS_GNUC11 = -std=gnu11 QMAKE_CXXFLAGS_CXX11 = -std=c++11 QMAKE_CXXFLAGS_CXX14 = -std=c++14 QMAKE_CXXFLAGS_CXX1Z = -std=c++1z diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index e003b947aa..6122a37213 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -21,6 +21,8 @@ QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_ QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT} QMAKE_CFLAGS_LTCG = -flto QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto +QMAKE_CFLAGS_GNUC99 = -std=gnu99 +QMAKE_CFLAGS_GNUC11 = -std=gnu11 QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE diff --git a/mkspecs/common/g++-base.conf b/mkspecs/common/g++-base.conf index c42c46b0ec..fa0f0c391d 100644 --- a/mkspecs/common/g++-base.conf +++ b/mkspecs/common/g++-base.conf @@ -27,6 +27,8 @@ QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE +QMAKE_CFLAGS_GNUC99 = -std=gnu99 +QMAKE_CFLAGS_GNUC11 = -std=gnu11 QMAKE_CXXFLAGS_CXX11 = -std=c++11 QMAKE_CXXFLAGS_CXX14 = -std=c++1y QMAKE_CXXFLAGS_CXX1Z = -std=c++1z diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf index 234f71d495..e51b173276 100644 --- a/mkspecs/common/gcc-base.conf +++ b/mkspecs/common/gcc-base.conf @@ -50,7 +50,7 @@ QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions -QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections +QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections -fdata-sections QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto @@ -81,6 +81,9 @@ QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += QMAKE_LFLAGS_EXCEPTIONS_OFF += QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin +QMAKE_CFLAGS_C99 = -std=c99 +QMAKE_CFLAGS_C11 = -std=c11 + QMAKE_CFLAGS_SSE2 += -msse2 QMAKE_CFLAGS_SSE3 += -msse3 QMAKE_CFLAGS_SSSE3 += -mssse3 diff --git a/mkspecs/common/qcc-base-qnx.conf b/mkspecs/common/qcc-base-qnx.conf index 148645b4e9..21ce269006 100644 --- a/mkspecs/common/qcc-base-qnx.conf +++ b/mkspecs/common/qcc-base-qnx.conf @@ -42,9 +42,13 @@ QMAKE_INCDIR_POST = $${QNX_DIR}/usr/include $${QNX_DIR}/usr/include/freety QMAKE_LIBDIR_POST = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib QMAKE_RPATHLINKDIR_POST += $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib -QMAKE_CXXFLAGS_CXX11 = -Wc,-std=gnu++11 -QMAKE_CXXFLAGS_CXX14 = -Wc,-std=gnu++1y -QMAKE_CXXFLAGS_CXX1Z = -Wc,-std=gnu++1z +QMAKE_CXXFLAGS_CXX11 = +QMAKE_CXXFLAGS_CXX14 = +QMAKE_CXXFLAGS_CXX1Z = + +QMAKE_CXXFLAGS_GNUCXX11 = -Wc,-std=gnu++11 +QMAKE_CXXFLAGS_GNUCXX14 = -Wc,-std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -Wc,-std=gnu++1z QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 9eba5bcf00..ad4a5f6365 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -134,7 +134,7 @@ c++11|c++14|c++1z { isEmpty(QMAKE_CXXFLAGS_GNU$$cxxstd) { strict_c++: QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_STRICTCXX } else { - !strict_c++: cxxstd = GNU$$cxxstd + !strict_c++|isEmpty(QMAKE_CXXFLAGS_$$cxxstd): cxxstd = GNU$$cxxstd } QMAKE_CXXFLAGS += $$eval(QMAKE_CXXFLAGS_$$cxxstd) @@ -143,6 +143,19 @@ c++11|c++14|c++1z { unset(cxxstd) } +c99|c11 { + c11: cstd = C11 + else: cstd = C99 + + !isEmpty(QMAKE_CFLAGS_GNU$$cstd) { + !strict_c|isEmpty(QMAKE_CFLAGS_$$cstd): cstd = GNU$$cstd + } + + QMAKE_CFLAGS += $$eval(QMAKE_CFLAGS_$$cstd) + + unset(cstd) +} + utf8_source { QMAKE_CFLAGS += $$QMAKE_CFLAGS_UTF8_SOURCE QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_UTF8_SOURCE diff --git a/mkspecs/features/gc_binaries.prf b/mkspecs/features/gc_binaries.prf new file mode 100644 index 0000000000..111d5d95ef --- /dev/null +++ b/mkspecs/features/gc_binaries.prf @@ -0,0 +1,3 @@ +QMAKE_CFLAGS += $$QMAKE_CFLAGS_SPLIT_SECTIONS +QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_SPLIT_SECTIONS +QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf index 4db0040dc5..65212b2abf 100644 --- a/mkspecs/features/qml_module.prf +++ b/mkspecs/features/qml_module.prf @@ -31,13 +31,17 @@ qml1_target { instbase = $$[QT_INSTALL_QML] } -!qml1_target:static: CONFIG += builtin_resources +!qml1_target:static: \ + CONFIG += builtin_resources +else: \ + CONFIG += install_qml_files builtin_resources { URITARGET = $$replace(URI, "\\.", "_") - # Ensure the QML files are included in the resources. In static builds, - # the QML engine reads also the qmldir file from the resources. - $${URITARGET}.files = $$qmldir_file $$fq_qml_files + # In static builds, the QML engine reads also the qmldir file from the resources. + static: $${URITARGET}.files = $$qmldir_file + # Ensure the QML files are included in the resources. + $${URITARGET}.files += $$fq_qml_files # qt-project.org/imports is the path used for locating imports inside the resources $${URITARGET}.prefix = /qt-project.org/imports/$$TARGETPATH RESOURCES += $${URITARGET} @@ -47,7 +51,7 @@ builtin_resources { qmldir.base = $$_PRO_FILE_PWD_ # Tools need qmldir and plugins.qmltypes always installed on the file system qmldir.files = $$qmldir_file $$fq_aux_qml_files -!builtin_resources: qmldir.files += $$fq_qml_files +install_qml_files: qmldir.files += $$fq_qml_files qmldir.path = $$instbase/$$TARGETPATH INSTALLS += qmldir diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index b57afcf72d..90e318e2a4 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -230,7 +230,16 @@ for(ever) { QMAKE_FRAMEWORKPATH *= $$MODULE_FRAMEWORKS !isEmpty(MODULE_MODULE) { contains(MODULE_CONFIG, lib_bundle) { - LIBS$$var_sfx += -framework $$MODULE_MODULE + framework = $$MODULE_MODULE + qtConfig(debug_and_release):!macx-xcode { + platform_target_suffix = $$qtPlatformTargetSuffix() + !isEmpty(platform_target_suffix): \ + # The -framework linker argument supports a name[,suffix] version, + # where if the suffix is specified the framework is first searched + # for the library with the suffix and then without. + framework = $$framework,$$platform_target_suffix + } + LIBS$$var_sfx += -framework $$framework } else { !isEmpty(MODULE_LIBS_ADD): \ LIBS$$var_sfx += -L$$MODULE_LIBS_ADD diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index 883f8ca215..8354f30eea 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -20,9 +20,6 @@ isEmpty(QMAKE_TARGET_DESCRIPTION): \ isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle -# This decreases the binary size for tools if statically linked -QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS - host_build: QT -= gui # no host tool will ever use gui host_build:force_bootstrap { !build_pass:qtConfig(release_tools): CONFIG += release diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index f4ae5bde80..638fbf38be 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -17,6 +17,8 @@ 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(c99): CONFIG += c99 +qtConfig(c11): CONFIG += c11 qtConfig(stack-protector-strong): CONFIG += stack_protector_strong contains(TEMPLATE, .*lib) { # module and plugins @@ -56,17 +58,27 @@ host_build:cross_compile: return() # -Wvla: use of variable-length arrays (an extension to C++) clang { clang_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION} + apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION} versionAtLeast(clang_ver, 3.5): \ QMAKE_CXXFLAGS_WARN_ON += -Wdate-time - # Clang/LLVM 5.0 and Xcode 9.0 introduced unguarded availability warnings. - # The same construct has been a hard error in Swift from the very beginning. - apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION} - darwin:if(versionAtLeast(clang_ver, 5.0)|versionAtLeast(apple_ver, 9.0)): \ + versionAtLeast(clang_ver, 3.6)|versionAtLeast(apple_ver, 6.3): \ + QMAKE_CXXFLAGS_WARN_ON += -Winconsistent-missing-override + + darwin { QMAKE_CXXFLAGS_WARN_ON += \ - -Werror=unguarded-availability \ - -Werror=unguarded-availability-new \ - -Werror=unsupported-availability-guard + -Wobjc-interface-ivars \ + -Wobjc-method-access \ + -Wobjc-multiple-method-names + + # Clang/LLVM 5.0 and Xcode 9.0 introduced unguarded availability warnings. + # The same construct has been a hard error in Swift from the very beginning. + versionAtLeast(clang_ver, 5.0)|versionAtLeast(apple_ver, 9.0): \ + QMAKE_CXXFLAGS_WARN_ON += \ + -Werror=unguarded-availability \ + -Werror=unguarded-availability-new \ + -Werror=unsupported-availability-guard + } } else: gcc:!intel_icc { QMAKE_CXXFLAGS_WARN_ON += -Wvla # GCC 5 introduced -Wdate-time @@ -82,11 +94,11 @@ warnings_are_errors:warning_clean { # This setting is compiler-dependent anyway because it depends on the version of the # compiler. clang { - # Apple clang 4.0-4.2,5.0-5.1,6.0-6.4,7.0-7.3 + # Apple clang 4.0-4.2,5.0-5.1,6.0-6.4,7.0-7.3,8.0-8.3,9.0-9.2 # Regular clang 3.x-5.0 apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION} reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION} - contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]|7\\.[0123]")|contains(reg_ver, "[34]\\.|5\\.0") { + contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]|7\\.[0123]|8\\.[0123]|9\\.[012]")|contains(reg_ver, "[34]\\.|5\\.0") { QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR } } else:intel_icc:linux { diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 6e29eaa2b7..70c763a2c3 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -870,6 +870,15 @@ defineTest(qtConfTestPrepare_compile) { defineTest(qtConfPrepareCompileTestSource) { test_dir = $$2 + test_lang = $$eval($${1}.lang) + isEmpty(test_lang): test_lang = "c++" + + equals(test_lang, "c++"): suffix = "cpp" + else: equals(test_lang, "c"): suffix = "c" + else: equals(test_lang, "objc"): suffix = "m" + else: equals(test_lang, "objc++"): suffix = "mm" + else: error("Unknown language '$$test_lang' in compile test $$1") + # Create source code contents = "/* Generated by configure */" # Custom code before includes @@ -893,10 +902,10 @@ defineTest(qtConfPrepareCompileTestSource) { " /* END TEST */" \ " return 0;" \ "}" - write_file($$test_dir/main.cpp, contents)|error() + write_file($$test_dir/main.$$suffix, contents)|error() # Create stub .pro file - contents = "SOURCES = main.cpp" + contents = "SOURCES = main.$$suffix" # Custom project code for (ent, $$qtConfScalarOrList($${1}.qmake)): \ contents += $$ent diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index f8729de947..cd8b41d36d 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -28,8 +28,6 @@ host_build|staticlib: CONFIG += static host_build { QT -= gui # no host module will ever use gui - QMAKE_CFLAGS += $$QMAKE_CFLAGS_SPLIT_SECTIONS - QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_SPLIT_SECTIONS force_bootstrap { !build_pass:qtConfig(release_tools): CONFIG += release contains(QT, core(-private)?|xml) { diff --git a/mkspecs/features/resources.prf b/mkspecs/features/resources.prf index ff45446219..9fed6387c8 100644 --- a/mkspecs/features/resources.prf +++ b/mkspecs/features/resources.prf @@ -72,6 +72,40 @@ for(resource, RESOURCES) { RESOURCES += $$resource_file } +!isEmpty(RESOURCES):contains(TEMPLATE, .*lib):plugin:static { + pluginName = $$lower($$replace(_PRO_FILE_, .*/([^/.]+)\\.[^/.]+, \\1)) + + resource_init_function = $${pluginName}_plugin_resource_init + DEFINES += "QT_PLUGIN_RESOURCE_INIT_FUNCTION=$$resource_init_function" + + RESOURCE_INIT_CPP = $$OUT_PWD/$${pluginName}_plugin_resources.cpp + + GENERATED_SOURCES += $$RESOURCE_INIT_CPP + QMAKE_DISTCLEAN += $$RESOURCE_INIT_CPP + + !build_pass { + RESOURCE_INIT_CONT = \ + "// This file is autogenerated by qmake. It contains a function that" \ + "// references all resources the plugin includes and the function is" \ + "// referenced by Qt_(MOC_)EXPORT_PLUGIN to ensure the inclusion in" \ + "// the statically linked plugin." \ + "$${LITERAL_HASH}include <QtCore/qglobal.h>" \ + "void $${resource_init_function}() " \ + "{" \ + + for (resource, RESOURCES) { + resource_name = $$section($$list($$basename(resource)), ., 0, 0) + resource_name = $$replace(resource_name, [^a-zA-Z0-9_], _) + RESOURCE_INIT_CONT += " Q_INIT_RESOURCE($$resource_name);" + } + + RESOURCE_INIT_CONT += \ + "}" + + write_file($$RESOURCE_INIT_CPP, RESOURCE_INIT_CONT)|error() + } +} + rcc.input = RESOURCES rcc.name = RCC ${QMAKE_FILE_IN} rcc.depend_command = $$QMAKE_RCC_DEP -list $$QMAKE_RESOURCE_FLAGS ${QMAKE_FILE_IN} diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index 8d51c9d028..3bbaf4575a 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -9,6 +9,18 @@ testcase_exceptions: CONFIG += exceptions # Set in qt_build_config.prf testcase_no_bundle: CONFIG -= app_bundle +# Allow testcases to mark themselves as not supporting high-DPI +testcase_lowdpi { + macos { + !isEmpty(QMAKE_INFO_PLIST): \ + error("QMAKE_INFO_PLIST already set, can't apply testcase_lowdpi") + + QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.disable_highdpi + } else { + # TODO: Add support for other platforms if possible + } +} + benchmark: type = benchmark else: type = check diff --git a/mkspecs/features/uikit/gc_binaries.prf b/mkspecs/features/uikit/gc_binaries.prf new file mode 100644 index 0000000000..c4f7445951 --- /dev/null +++ b/mkspecs/features/uikit/gc_binaries.prf @@ -0,0 +1,2 @@ +# bitcode (release mode) is incompatible with splitting sections. +!bitcode|!release: load(gc_binaries) diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index ec09afe381..57638326a0 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -26,7 +26,7 @@ QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections +QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -fdata-sections QMAKE_CFLAGS_LTCG = -ipo -fno-fat-lto-objects QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo diff --git a/mkspecs/macx-clang/Info.plist.disable_highdpi b/mkspecs/macx-clang/Info.plist.disable_highdpi new file mode 100644 index 0000000000..a9b89888ad --- /dev/null +++ b/mkspecs/macx-clang/Info.plist.disable_highdpi @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>NSHighResolutionCapable</key> + <string>NO</string> +</dict> +</plist> diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index fa3944f843..e11782e885 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -25,7 +25,7 @@ QMAKE_CFLAGS_SHLIB = -fPIC QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CFLAGS_THREAD = -QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections +QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -fdata-sections QMAKE_CFLAGS_LTCG = -ipo QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo |