summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2023-05-11 23:11:13 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2023-05-15 10:45:32 +0000
commit36887c42052e92eb8d0576e6d25699e0a49bc1f9 (patch)
tree8c5db6b24cf8d3d557c52719eda3dd953ddd9f76
parentc07a7d1dc57d63810ad47d0d654626dc140b49ff (diff)
downloadqbs-36887c42052e92eb8d0576e6d25699e0a49bc1f9.tar.gz
msvc: check for clang-cl first
Current LLVM version is 16, so relatively soon the checks if (msvc) compiler version >= 18 will start to pass with clang-cl toolchain. Change-Id: Id0e2e458195371fab1c1d358f35f2cae94fbc74b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/modules/cpp/msvc.js23
1 files changed, 11 insertions, 12 deletions
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js
index 96e9839a2..6127279fb 100644
--- a/share/qbs/modules/cpp/msvc.js
+++ b/share/qbs/modules/cpp/msvc.js
@@ -79,8 +79,8 @@ function hasCxx17Option(input)
{
// Probably this is not the earliest version to support the flag, but we have tested this one
// and it's a pain to find out the exact minimum.
- return Utilities.versionCompare(input.cpp.compilerVersion, "19.12.25831") >= 0
- || (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 7);
+ return (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 7)
+ || Utilities.versionCompare(input.cpp.compilerVersion, "19.12.25831") >= 0;
}
function hasZCplusPlusOption(input)
@@ -92,20 +92,20 @@ function hasZCplusPlusOption(input)
// clang-cl supports this option starting around-ish versions 8/9, but it
// ignores this option, so this doesn't really matter
// https://reviews.llvm.org/D45877
- return Utilities.versionCompare(input.cpp.compilerVersion, "19.14.26433") >= 0
- || (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 9);
+ return (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 9)
+ || Utilities.versionCompare(input.cpp.compilerVersion, "19.14.26433") >= 0;
}
function hasCxx20Option(input)
{
- return Utilities.versionCompare(input.cpp.compilerVersion, "19.29.30133.0") >= 0
- || (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 13);
+ return (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 13)
+ || Utilities.versionCompare(input.cpp.compilerVersion, "19.29.30133.0") >= 0;
}
function hasCVerOption(input)
{
- return Utilities.versionCompare(input.cpp.compilerVersion, "19.29.30138.0") >= 0
- || (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 13);
+ return (input.qbs.toolchain.includes("clang-cl") && input.cpp.compilerVersionMajor >= 13)
+ || Utilities.versionCompare(input.cpp.compilerVersion, "19.29.30138.0") >= 0;
}
function supportsExternalIncludesOption(input) {
@@ -124,10 +124,9 @@ function addCxxLanguageVersionFlag(input, args) {
if (!cxxVersion)
return;
- // Visual C++ 2013, Update 3
- var hasStdOption = Utilities.versionCompare(input.cpp.compilerVersion, "18.00.30723") >= 0
- // or clang-cl
- || input.qbs.toolchain.includes("clang-cl");
+ // Visual C++ 2013, Update 3 or clang-cl
+ var hasStdOption = input.qbs.toolchain.includes("clang-cl")
+ || Utilities.versionCompare(input.cpp.compilerVersion, "18.00.30723") >= 0;
if (!hasStdOption)
return;