diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-05-03 11:24:26 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-05-14 08:35:08 +0000 |
commit | 2bda52aa3d50deb56128f42395ae9f2686af2a99 (patch) | |
tree | ec88cd206f39606aa97df9a72c05cfea5fc2f203 /tests | |
parent | b9a1173d3b3677416295c4739aa53d35365fa0e1 (diff) |
Make cpp.cxxLanguageVersion a list
... and choose the highest entry. This enables different modules to
specify their requirements without introducing conflicts.
Same for cpp.cLanguageVersion.
Task-number: QBS-1225
Change-Id: I96ed6c370eb190023fdb69274dcb080d967f512d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests')
7 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp b/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp new file mode 100644 index 000000000..237c8ce18 --- /dev/null +++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp @@ -0,0 +1 @@ +int main() {} diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs new file mode 100644 index 000000000..5dd298aa8 --- /dev/null +++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs @@ -0,0 +1,12 @@ +import qbs + +CppApplication { + name: "app" + property bool enableNewestModule: true + + Depends { name: "oldmodule" } + Depends { name: "newermodule" } + Depends { name: "newestmodule"; condition: enableNewestModule } + + files: "main.cpp" +} diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs new file mode 100644 index 000000000..dfc28b946 --- /dev/null +++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs @@ -0,0 +1,6 @@ +import qbs + +Module { + Depends { name: "cpp" } + cpp.cxxLanguageVersion: "c++14" +} diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs new file mode 100644 index 000000000..f306a5389 --- /dev/null +++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs @@ -0,0 +1,6 @@ +import qbs + +Module { + Depends { name: "cpp" } + cpp.cxxLanguageVersion: "c++17" +} diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs new file mode 100644 index 000000000..b05c855a3 --- /dev/null +++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs @@ -0,0 +1,6 @@ +import qbs + +Module { + Depends { name: "cpp" } + cpp.cxxLanguageVersion: "c++11" +} diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index a18a735ab..6ef0acaba 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -5552,6 +5552,18 @@ void TestBlackbox::makefileGenerator() QVERIFY(!QFile::exists(relativeExecutableFilePath("the app"))); } +void TestBlackbox::maximumCxxLanguageVersion() +{ + QDir::setCurrent(testDataDir + "/maximum-cxx-language-version"); + QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line"})), 0); + QVERIFY2(m_qbsStdout.contains("c++17") || m_qbsStdout.contains("c++latest"), + m_qbsStdout.constData()); + QCOMPARE(runQbs(QbsRunParameters("resolve", + QStringList("products.app.enableNewestModule:false"))), 0); + QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line"})), 0); + QVERIFY2(m_qbsStdout.contains("c++14"), m_qbsStdout.constData()); +} + void TestBlackbox::minimumSystemVersion() { rmDirR(relativeBuildDir()); diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 5a4544bbe..91a177063 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -157,6 +157,7 @@ private slots: void loadableModule(); void localDeployment(); void makefileGenerator(); + void maximumCxxLanguageVersion(); void minimumSystemVersion(); void minimumSystemVersion_data(); void missingBuildGraph(); |