# comments are the value of CLANG_VERSION CLANG_VERSION = $$system("clang --version | grep 'clang version'") # clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) CLANG_VERSION = $$split(CLANG_VERSION, ' ') # CLANG_VERSION is now a list, this is shown as spaces in QMAKE # clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) CLANG_VERSION = $$member(CLANG_VERSION, 2) # 6.0.0-1ubuntu2 CLANG_VERSION = $$split(CLANG_VERSION, '.') # 6 0 0-1ubuntu2 CLANG_VERSION = $$member(CLANG_VERSION, 0) # 6 greaterThan(CLANG_VERSION, 4) { message('clang' version is above 4. Using regular clang.) } else { message('clang' version is not above 4. Attempting to use highest specific version.) system("clang-5 --version") { QMAKE_CXX = clang-5 message('clang-5' found.) } system("clang-6 --version") { QMAKE_CXX = clang-6 message('clang-6' found.) } system("clang-7 --version") { QMAKE_CXX = clang-7 message('clang-7' found.) } system("clang-8 --version") { QMAKE_CXX = clang-8 message('clang-8' found.) } } include(clang-gcc-common-switches.pri) QMAKE_CXXFLAGS += -Wmost QMAKE_CXXFLAGS += -Wpedantic QMAKE_CXXFLAGS += -Werror #All includes from the third-party directory will not warn. QMAKE_CXXFLAGS += --system-header-prefix=third-party QMAKE_CXXFLAGS += --system-header-prefix=qt # Sign conversion warns on auto generated Qt MOC files. QMAKE_CXXFLAGS += -Weffc++ -Wconversion -Wno-sign-conversion QMAKE_CXXFLAGS += -Wextra-semi -Wzero-as-null-pointer-constant -Wmissing-variable-declarations