| # |
| # 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: |
| # |
| # - gcc-base-mac.conf |
| # - 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- |
| # specific version of the base-file, for example gcc-base-mac.conf, and then |
| # a (possibly platform-specific) version of the actual compiler configuration, |
| # for example g++-macx.conf. |
| # |
| # If you are making changes to any of these files, please consider the |
| # 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. |
| # |
| |
| QMAKE_CFLAGS_OPTIMIZE = -O2 |
| QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 |
| QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og |
| QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os |
| |
| !equals(QMAKE_HOST.os, Windows): QMAKE_CFLAGS += -pipe |
| QMAKE_CFLAGS_DEPS += -M |
| QMAKE_CFLAGS_WARN_ON += -Wall -Wextra |
| QMAKE_CFLAGS_WARN_OFF += -w |
| QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE |
| QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g |
| QMAKE_CFLAGS_DEBUG += -g |
| QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC |
| QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC |
| QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC |
| QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses |
| QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden |
| QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions |
| 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 |
| QMAKE_CFLAGS_SHSTK = -mshstk |
| |
| 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 |
| QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO |
| QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG |
| QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB |
| QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB |
| QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP |
| QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC |
| QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden |
| QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF |
| QMAKE_CXXFLAGS_RTTI_ON = -frtti |
| QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti |
| QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS |
| QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG |
| QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS |
| QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG |
| QMAKE_CXXFLAGS_SHSTK = $$QMAKE_CFLAGS_SHSTK |
| |
| QMAKE_LFLAGS += |
| QMAKE_LFLAGS_DEBUG += |
| QMAKE_LFLAGS_APP += |
| QMAKE_LFLAGS_RELEASE += |
| 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 |
| QMAKE_CFLAGS_SSE4_1 += -msse4.1 |
| QMAKE_CFLAGS_SSE4_2 += -msse4.2 |
| QMAKE_CFLAGS_F16C += -mf16c |
| QMAKE_CFLAGS_RDRND += -mrdrnd |
| QMAKE_CFLAGS_RDSEED += -mrdseed |
| QMAKE_CFLAGS_AVX += -mavx |
| QMAKE_CFLAGS_AVX2 += -mavx2 |
| 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 |
| QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni |
| QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma |
| QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi |
| QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2 |
| QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg |
| QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd |
| QMAKE_CFLAGS_AESNI += -maes |
| QMAKE_CFLAGS_SHANI += -msha |
| QMAKE_CFLAGS_VAES += -mvaes |
| QMAKE_CFLAGS_NEON += -mfpu=neon |
| QMAKE_CFLAGS_MIPS_DSP += -mdsp |
| QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2 |
| |
| # -march=haswell is supported as of GCC 4.9 and Clang 3.6 |
| QMAKE_CFLAGS_ARCH_HASWELL = -march=core-avx2 |
| |
| # 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" |
| |
| include(sanitize.conf) |