Files
OpenVR-AdvancedSettings-frame/build_scripts/qt/compilers/clang.pri
T
Vasily 28b09e78f5 Update Linux compiler selection with linker
Qmake attempts to invoke the linker with the default `g++` binary even
when we changed the binary. This will compile error when using LTO.

For clang:
```
/usr/bin/ld.gold: error: /usr/lib/llvm-3.8/bin/../lib/LLVMgold.so: could
not load plugin library: /usr/lib/llvm-3.8/bin/../lib/LLVMgold.so:
cannot open shared object file: No such file or directory
```

For GCC:
```
lto1: fatal error: bytecode stream generated with LTO version 6.0
instead of the expected 4.1
```
2020-04-12 00:52:31 +02:00

56 lines
1.7 KiB
Plaintext

# 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
QMAKE_LINK = clang-5
message('clang-5' found.)
}
system("clang-6 --version") {
QMAKE_CXX = clang-6
QMAKE_LINK = clang-6
message('clang-6' found.)
}
system("clang-7 --version") {
QMAKE_CXX = clang-7
QMAKE_LINK = clang-7
message('clang-7' found.)
}
system("clang-8 --version") {
QMAKE_CXX = clang-8
QMAKE_LINK = 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