| # |
| # Qmake configuration for Clang on Linux, OS X and iOS |
| # |
| |
| QMAKE_COMPILER = gcc clang llvm # clang pretends to be gcc |
| |
| QMAKE_CC = $${CROSS_COMPILE}clang |
| QMAKE_CXX = $${CROSS_COMPILE}clang++ |
| |
| QMAKE_LINK_C = $$QMAKE_CC |
| QMAKE_LINK_C_SHLIB = $$QMAKE_CC |
| |
| QMAKE_LINK = $$QMAKE_CXX |
| QMAKE_LINK_SHLIB = $$QMAKE_CXX |
| |
| CONFIG += clang_pch_style |
| QMAKE_PCH_OUTPUT_EXT = .pch |
| |
| QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz |
| |
| QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} |
| QMAKE_CFLAGS_USE_PRECOMPILE = -Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT} |
| QMAKE_CFLAGS_LTCG = -flto=thin |
| QMAKE_CFLAGS_LTCG_FATOBJECTS = -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 |
| QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG |
| QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS |
| QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG |
| QMAKE_CXXFLAGS_CXX11 = -std=c++11 |
| QMAKE_CXXFLAGS_CXX14 = -std=c++1y |
| QMAKE_CXXFLAGS_CXX1Z = -std=c++1z |
| QMAKE_CXXFLAGS_CXX2A = -std=c++2a |
| QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 |
| QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y |
| QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z |
| QMAKE_CXXFLAGS_GNUCXX2A = -std=gnu++2a |
| |
| QMAKE_LFLAGS_CXX11 = |
| QMAKE_LFLAGS_CXX14 = |
| QMAKE_LFLAGS_CXX1Z = |
| QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG |
| |
| # Wrapper tools that understand .o/.a files with LLVM bytecode instead of machine code |
| QMAKE_AR_LTCG = llvm-ar cqs |
| QMAKE_NM_LTCG = llvm-nm -P |
| QMAKE_RANLIB_LTCG = true # No need to run, since llvm-ar has "s" |
| |
| QMAKE_CFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard |
| QMAKE_CXXFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard |
| QMAKE_LFLAGS_COVERAGE_TRACE_PC_GUARD = -fsanitize-coverage=trace-pc-guard |
| |
| QMAKE_CFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping |
| QMAKE_CXXFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping |
| QMAKE_LFLAGS_COVERAGE_SOURCE_BASED = -fprofile-instr-generate -fcoverage-mapping |