blob: 0aa7f3e879f136380e3b7cfbec9d8820dd05c25d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
CppApplication {
property string sanitizer
property bool supportsSanitizer: {
if (qbs.toolchain.contains("clang-cl")) {
if (cpp.toolchainInstallPath.contains("Microsoft Visual Studio")
&& qbs.architecture === "x86_64") {
// 32 bit sanitizer shipped with VS misses the x86_64 libraries
return false;
}
// only these are supported
return sanitizer === "address" || sanitizer === "undefined";
}
if (!qbs.toolchain.contains("gcc"))
return false;
if (qbs.toolchain.contains("mingw"))
return false;
if (qbs.targetOS.contains("ios")) {
// thread sanitizer is not supported
return sanitizer !== "thread";
}
return true;
}
condition: {
if (!sanitizer)
return true;
if (!supportsSanitizer)
console.info("Compiler does not support sanitizer");
return supportsSanitizer;
}
qbs.buildVariant: "release"
cpp.cxxLanguageVersion: "c++11"
cpp.minimumMacosVersion: "10.8"
consoleApplication: true
cpp.runtimeLibrary: "static"
cpp.driverFlags: sanitizer ? ["-fsanitize=" + sanitizer] : []
cpp.debugInformation: true
files: "sanitizer.cpp"
}
|