diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2022-07-31 22:59:57 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2022-08-01 15:45:32 +0000 |
commit | 825d344f0676fbc3ffe17f30b30768f303ee62e2 (patch) | |
tree | ca648057b106b17f120f299670dd03baa60d6ef7 /tests | |
parent | 123256af285883c2c2b21bae5575e18fb8f71beb (diff) | |
download | qbs-825d344f0676fbc3ffe17f30b30768f303ee62e2.tar.gz |
MSVC: Support cLanguageVersion
It is supported since MSVC 16.8[1] and clang-cl 13[2].
[1] https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/
[2] https://github.com/llvm/llvm-project/commit/d087d805acb664e885e9c31a916f6cfa5dbc2186
Change-Id: I858beadf20c357d8a4c369ab7bc32f69ef956ebb
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs | 9 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 10 |
2 files changed, 13 insertions, 6 deletions
diff --git a/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs b/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs index 320494d00..9f41570f8 100644 --- a/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs +++ b/tests/auto/blackbox/testdata/maximum-c-language-version/maximum-c-language-version.qbs @@ -4,10 +4,13 @@ CppApplication { Probe { id: osProbe - property stringList toolchain: qbs.toolchain + property string toolchainType: qbs.toolchainType + property string compilerVersion: cpp.compilerVersion configure: { - if (toolchain.contains("msvc")) - console.info("is msvc"); + console.info("is msvc: " + (toolchainType === "msvc" || toolchainType === "clang-cl")); + var isOld = (toolchainType === "msvc" && compilerVersion < "19.29.30138") + || (toolchainType === "clang-cl" && compilerVersion < "13"); + console.info("is old msvc: " + isOld); found = true; } } diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index bfec09344..20d85d543 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -7916,14 +7916,18 @@ void TestBlackbox::maximumCLanguageVersion() QDir::setCurrent(testDataDir + "/maximum-c-language-version"); QCOMPARE(runQbs(QbsRunParameters("resolve", QStringList("products.app.enableNewestModule:true"))), 0); - if (m_qbsStdout.contains("is msvc")) - QSKIP("MSVC has no support for setting the C language version."); + const bool isMsvc = m_qbsStdout.contains("is msvc: true"); + if (isMsvc && m_qbsStdout.contains("is old msvc: true")) + QSKIP("MSVC supports setting the C language version only from version 16.8, and Clang from version 13."); QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line", "-n"})), 0); QVERIFY2(m_qbsStdout.contains("c11") || m_qbsStdout.contains("c1x"), m_qbsStdout.constData()); QCOMPARE(runQbs(QbsRunParameters("resolve", QStringList("products.app.enableNewestModule:false"))), 0); QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line", "-n"})), 0); - QVERIFY2(m_qbsStdout.contains("c99"), m_qbsStdout.constData()); + if (isMsvc) + QVERIFY2(!m_qbsStdout.contains("c11"), m_qbsStdout.constData()); + else + QVERIFY2(m_qbsStdout.contains("c99"), m_qbsStdout.constData()); } void TestBlackbox::maximumCxxLanguageVersion() |