2011-04-27 10:05:43 +00:00
|
|
|
#
|
|
|
|
# This file is used as a basis for the following compilers:
|
|
|
|
#
|
|
|
|
# - The GNU C++ compiler (g++)
|
|
|
|
# - LLVM
|
|
|
|
# - Clang
|
|
|
|
#
|
|
|
|
# Platform-specific options shared by these compilers are put into:
|
|
|
|
#
|
2013-03-02 14:46:37 +00:00
|
|
|
# - gcc-base-mac.conf
|
2011-04-27 10:05:43 +00:00
|
|
|
# - gcc-base-unix.conf
|
|
|
|
#
|
|
|
|
# These base files are then combined with configurations for each compiler:
|
|
|
|
#
|
|
|
|
# - g++-base.conf
|
|
|
|
# - g++-macx.conf
|
|
|
|
# - g++-unix.conf
|
|
|
|
# - llvm.conf
|
|
|
|
# - clang.conf
|
|
|
|
#
|
|
|
|
# The combination happens in the top level mkspec, by including a platform-
|
2013-03-02 14:46:37 +00:00
|
|
|
# specific version of the base-file, for example gcc-base-mac.conf, and then
|
2011-04-27 10:05:43 +00:00
|
|
|
# a (possibly platform-specific) version of the actual compiler configuration,
|
|
|
|
# for example g++-macx.conf.
|
|
|
|
#
|
2013-03-14 23:42:15 +00:00
|
|
|
# If you are making changes to any of these files, please consider the
|
2011-04-27 10:05:43 +00:00
|
|
|
# possible effect it may have due to these include-rules, and whether it
|
|
|
|
# might make more sense to share the rule or make it more specific.
|
|
|
|
#
|
|
|
|
# To verify that your change has the desired effect on the final configuration
|
|
|
|
# you can use the manual test in tests/manual/mkspecs.
|
|
|
|
#
|
|
|
|
|
2014-02-14 12:57:35 +00:00
|
|
|
QMAKE_CFLAGS_OPTIMIZE = -O2
|
|
|
|
QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
|
2016-11-17 14:01:59 +00:00
|
|
|
QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og
|
2017-04-07 13:49:10 +00:00
|
|
|
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
|
2014-02-14 12:57:35 +00:00
|
|
|
|
2017-06-16 12:10:16 +00:00
|
|
|
!equals(QMAKE_HOST.os, Windows): QMAKE_CFLAGS += -pipe
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_DEPS += -M
|
2019-05-03 08:17:04 +00:00
|
|
|
QMAKE_CFLAGS_WARN_ON += -Wall -Wextra
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_WARN_OFF += -w
|
2014-02-14 12:57:35 +00:00
|
|
|
QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
|
2015-04-29 17:05:48 +00:00
|
|
|
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_DEBUG += -g
|
2016-11-25 14:07:48 +00:00
|
|
|
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
|
|
|
|
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
|
2012-01-23 13:46:58 +00:00
|
|
|
QMAKE_CFLAGS_APP +=
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
|
|
|
|
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
|
2012-05-09 16:52:44 +00:00
|
|
|
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
|
2018-04-10 13:03:11 +00:00
|
|
|
QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections -fdata-sections
|
2014-11-15 03:27:46 +00:00
|
|
|
QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects
|
|
|
|
QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
|
2015-02-27 11:44:47 +00:00
|
|
|
QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
|
2020-05-25 16:53:31 +00:00
|
|
|
QMAKE_CFLAGS_SHSTK = -mshstk
|
2011-04-27 10:05:43 +00:00
|
|
|
|
|
|
|
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
|
|
|
|
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
|
|
|
|
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
|
|
|
|
QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
|
|
|
|
QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
|
2015-04-29 17:05:48 +00:00
|
|
|
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
2011-04-27 10:05:43 +00:00
|
|
|
QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
|
|
|
|
QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
|
|
|
|
QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
|
2012-01-29 12:54:19 +00:00
|
|
|
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
|
2011-04-27 10:05:43 +00:00
|
|
|
QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC
|
|
|
|
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
|
2012-05-09 16:52:44 +00:00
|
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
|
2018-12-12 19:36:49 +00:00
|
|
|
QMAKE_CXXFLAGS_RTTI_ON = -frtti
|
|
|
|
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
|
2014-05-12 00:41:40 +00:00
|
|
|
QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS
|
2014-06-26 21:56:06 +00:00
|
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
2014-11-15 03:27:46 +00:00
|
|
|
QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
|
2015-02-27 11:44:47 +00:00
|
|
|
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
|
2020-05-25 16:53:31 +00:00
|
|
|
QMAKE_CXXFLAGS_SHSTK = $$QMAKE_CFLAGS_SHSTK
|
2011-04-27 10:05:43 +00:00
|
|
|
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_LFLAGS +=
|
|
|
|
QMAKE_LFLAGS_DEBUG +=
|
|
|
|
QMAKE_LFLAGS_APP +=
|
|
|
|
QMAKE_LFLAGS_RELEASE +=
|
2015-04-29 17:05:48 +00:00
|
|
|
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +=
|
2012-05-09 16:52:44 +00:00
|
|
|
QMAKE_LFLAGS_EXCEPTIONS_OFF +=
|
2014-06-26 21:56:06 +00:00
|
|
|
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin
|
2012-05-31 12:58:53 +00:00
|
|
|
|
2018-02-14 12:40:57 +00:00
|
|
|
QMAKE_CFLAGS_C99 = -std=c99
|
|
|
|
QMAKE_CFLAGS_C11 = -std=c11
|
2021-08-26 10:00:50 +00:00
|
|
|
QMAKE_CFLAGS_C17 = -std=c17
|
2018-02-14 12:40:57 +00:00
|
|
|
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_SSE2 += -msse2
|
|
|
|
QMAKE_CFLAGS_SSE3 += -msse3
|
|
|
|
QMAKE_CFLAGS_SSSE3 += -mssse3
|
|
|
|
QMAKE_CFLAGS_SSE4_1 += -msse4.1
|
|
|
|
QMAKE_CFLAGS_SSE4_2 += -msse4.2
|
2017-02-10 13:51:12 +00:00
|
|
|
QMAKE_CFLAGS_F16C += -mf16c
|
2017-04-13 22:44:45 +00:00
|
|
|
QMAKE_CFLAGS_RDRND += -mrdrnd
|
2019-08-14 04:59:26 +00:00
|
|
|
QMAKE_CFLAGS_RDSEED += -mrdseed
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_AVX += -mavx
|
|
|
|
QMAKE_CFLAGS_AVX2 += -mavx2
|
2015-07-17 21:46:05 +00:00
|
|
|
QMAKE_CFLAGS_AVX512F += -mavx512f
|
|
|
|
QMAKE_CFLAGS_AVX512ER += -mavx512er
|
|
|
|
QMAKE_CFLAGS_AVX512CD += -mavx512cd
|
|
|
|
QMAKE_CFLAGS_AVX512PF += -mavx512pf
|
|
|
|
QMAKE_CFLAGS_AVX512DQ += -mavx512dq
|
|
|
|
QMAKE_CFLAGS_AVX512BW += -mavx512bw
|
|
|
|
QMAKE_CFLAGS_AVX512VL += -mavx512vl
|
|
|
|
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
|
|
|
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
2019-10-07 04:45:13 +00:00
|
|
|
QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni
|
|
|
|
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
|
|
|
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
|
|
|
QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2
|
|
|
|
QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg
|
|
|
|
QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd
|
2017-01-27 21:09:55 +00:00
|
|
|
QMAKE_CFLAGS_AESNI += -maes
|
|
|
|
QMAKE_CFLAGS_SHANI += -msha
|
2019-10-07 04:45:13 +00:00
|
|
|
QMAKE_CFLAGS_VAES += -mvaes
|
2013-03-19 01:57:31 +00:00
|
|
|
QMAKE_CFLAGS_NEON += -mfpu=neon
|
2017-01-19 10:14:47 +00:00
|
|
|
QMAKE_CFLAGS_MIPS_DSP += -mdsp
|
|
|
|
QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2
|
2014-09-30 07:50:22 +00:00
|
|
|
|
2018-05-23 03:54:19 +00:00
|
|
|
# -march=haswell is supported as of GCC 4.9 and Clang 3.6
|
|
|
|
QMAKE_CFLAGS_ARCH_HASWELL = -march=core-avx2
|
|
|
|
|
2014-11-15 03:27:46 +00:00
|
|
|
# Wrapper tools that understand .o/.a files with GIMPLE instead of machine code
|
|
|
|
QMAKE_AR_LTCG = gcc-ar cqs
|
|
|
|
QMAKE_NM_LTCG = gcc-nm -P
|
|
|
|
QMAKE_RANLIB_LTCG = true # No need to run since gcc-ar has "s"
|
|
|
|
|
2020-06-08 11:16:55 +00:00
|
|
|
QMAKE_LINK_OBJECT_SCRIPT = object_script
|
|
|
|
|
2014-09-30 07:50:22 +00:00
|
|
|
include(sanitize.conf)
|