94bc57213f
This adds instrumentation to the binaries. At the end of their execution, these will then write a file containing information which code was executed. This can be used for code coverage analysis. [ChangeLog][QtCore][configure] Add switch "-coverage source-based" to enable clang's "source-based" code coverage feature. This can be used for code coverage analysis. Change-Id: If31c6849aa797ff8820e041e85a492a14e2f1a6b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
61 lines
2.4 KiB
Plaintext
61 lines
2.4 KiB
Plaintext
#
|
|
# 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_ISYSTEM = -isystem
|
|
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
|