From 40d919eed8897f0806879274ee298eaed65514b6 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 5 Sep 2012 11:01:43 +0200 Subject: [PATCH] Support built-in testing infrastructure with qbs build. I.e. define WITH_TESTS for debug builds or if the respective environment variable is set. Change-Id: I2764ece50d0783e8cb030b1695e6f59cf6063248 Reviewed-by: Joerg Bornemann --- qbs/defaults.js | 12 ++++++++++++ qtcreator.qbp | 4 ++-- src/libs/QtcLibrary.qbs | 7 +++++++ src/libs/extensionsystem/extensionsystem.qbs | 4 ++-- src/plugins/QtcPlugin.qbs | 9 +++++++-- src/plugins/analyzerbase/analyzerbase.qbs | 4 ++-- src/plugins/cpptools/cpptools.qbs | 6 ++++++ src/plugins/debugger/debugger.qbs | 5 ++--- src/plugins/fakevim/fakevim.qbs | 7 ++++++- src/plugins/help/help.qbs | 5 +---- src/plugins/projectexplorer/projectexplorer.qbs | 8 +++++++- src/plugins/qmldesigner/qmldesigner.qbs | 2 +- src/plugins/qmljstools/qmljstools.qbs | 6 ++++++ src/plugins/welcome/welcome.qbs | 1 - src/tools/QtcTool.qbs | 2 ++ 15 files changed, 63 insertions(+), 19 deletions(-) create mode 100644 qbs/defaults.js diff --git a/qbs/defaults.js b/qbs/defaults.js new file mode 100644 index 0000000000..1b835f6928 --- /dev/null +++ b/qbs/defaults.js @@ -0,0 +1,12 @@ +function testsEnabled(qbs) +{ + return qbs.getenv("TEST") || qbs.buildVariant === "debug"; +} + +function defines(qbs) +{ + var list = [ 'IDE_LIBRARY_BASENAME="lib"' ] + if (testsEnabled(qbs)) + list.push("WITH_TESTS") + return list +} diff --git a/qtcreator.qbp b/qtcreator.qbp index 4098134617..fdb73058e7 100644 --- a/qtcreator.qbp +++ b/qtcreator.qbp @@ -1,12 +1,12 @@ import qbs.base 1.0 import qbs.fileinfo 1.0 as FileInfo +import "qbs/defaults.js" as Defaults Project { property string ide_version_major: '2' property string ide_version_minor: '6' property string ide_version_release: '81' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release - property var additionalCppDefines: [ 'IDE_LIBRARY_BASENAME="lib"' ] moduleSearchPaths: "qbs" references: [ @@ -135,7 +135,7 @@ Project { consoleApplication: qbs.debugInformation cpp.rpaths: ["$ORIGIN/../lib/qtcreator"] - cpp.defines: project.additionalCppDefines + cpp.defines: Defaults.defines(qbs) cpp.linkerFlags: { if (qbs.buildVariant == "release" && (qbs.toolchain == "gcc" || qbs.toolchain == "mingw")) return ["-Wl,-s"] diff --git a/src/libs/QtcLibrary.qbs b/src/libs/QtcLibrary.qbs index efacb4adf1..85ba60ab89 100644 --- a/src/libs/QtcLibrary.qbs +++ b/src/libs/QtcLibrary.qbs @@ -1,7 +1,14 @@ import qbs.base 1.0 +import "../../qbs/defaults.js" as Defaults DynamicLibrary { Depends { name: "cpp" } + Depends { + condition: Defaults.testsEnabled(qbs) + name: "Qt.test" + } + + cpp.defines: Defaults.defines(qbs) cpp.linkerFlags: { if (qbs.buildVariant == "release" && (qbs.toolchain == "gcc" || qbs.toolchain == "mingw")) return ["-Wl,-s"] diff --git a/src/libs/extensionsystem/extensionsystem.qbs b/src/libs/extensionsystem/extensionsystem.qbs index 3c36c327bb..bbdd8b74b3 100644 --- a/src/libs/extensionsystem/extensionsystem.qbs +++ b/src/libs/extensionsystem/extensionsystem.qbs @@ -8,10 +8,10 @@ QtcLibrary { ".", ".." ] - cpp.defines: [ + cpp.defines: base.concat([ "EXTENSIONSYSTEM_LIBRARY", "IDE_TEST_DIR=\".\"" - ] + ]) Depends { name: "cpp" } Depends { name: "Qt"; submodules: ["core", "widgets"] } diff --git a/src/plugins/QtcPlugin.qbs b/src/plugins/QtcPlugin.qbs index 83b33f78d1..5220320023 100644 --- a/src/plugins/QtcPlugin.qbs +++ b/src/plugins/QtcPlugin.qbs @@ -1,5 +1,6 @@ import qbs.base 1.0 import qbs.fileinfo 1.0 as FileInfo +import "../../qbs/defaults.js" as Defaults Product { type: ["dynamiclibrary", "pluginSpec"] @@ -21,7 +22,12 @@ Product { Depends { name: "pluginspec" } Depends { name: "cpp" } - cpp.defines: [name.toUpperCase() + "_LIBRARY"] + Depends { + condition: Defaults.testsEnabled(qbs) + name: "Qt.test" + } + + cpp.defines: Defaults.defines(qbs).concat([name.toUpperCase() + "_LIBRARY"]) cpp.rpaths: ["$ORIGIN/../../.."] cpp.linkerFlags: { if (qbs.buildVariant == "release" && (qbs.toolchain == "gcc" || qbs.toolchain == "mingw")) @@ -33,4 +39,3 @@ Product { fileTags: ["pluginSpecIn"] } } - diff --git a/src/plugins/analyzerbase/analyzerbase.qbs b/src/plugins/analyzerbase/analyzerbase.qbs index 548fad250f..7fada29a11 100644 --- a/src/plugins/analyzerbase/analyzerbase.qbs +++ b/src/plugins/analyzerbase/analyzerbase.qbs @@ -13,10 +13,10 @@ QtcPlugin { Depends { name: "TextEditor" } Depends { name: "cpp" } - cpp.defines: [ + cpp.defines: base.concat([ "ANALYZER_LIBRARY", "QT_NO_CAST_FROM_ASCII" - ] + ]) cpp.includePaths: [ "..", "../../libs", diff --git a/src/plugins/cpptools/cpptools.qbs b/src/plugins/cpptools/cpptools.qbs index 709f1edecb..66cbccf0ae 100644 --- a/src/plugins/cpptools/cpptools.qbs +++ b/src/plugins/cpptools/cpptools.qbs @@ -1,6 +1,7 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "CppTools" @@ -107,6 +108,11 @@ QtcPlugin { "TypeHierarchyBuilder.h" ] + Group { + condition: Defaults.testsEnabled(qbs) + files: ["cppcodegen_test.cpp", "cppcompletion_test.cpp"] + } + ProductModule { Depends { name: "CPlusPlus" } } diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs index 7bb7c6648c..0b227b2cb2 100644 --- a/src/plugins/debugger/debugger.qbs +++ b/src/plugins/debugger/debugger.qbs @@ -1,6 +1,7 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "Debugger" @@ -19,7 +20,6 @@ QtcPlugin { Depends { name: "QtcSsh" } Depends { name: "cpp" } - cpp.defines: ["DEBUGGER_LIBRARY"] cpp.includePaths: [ ".", "shared", @@ -33,7 +33,7 @@ QtcPlugin { ] Group { - condition: qbs.buildVariant === "debug" + condition: Defaults.testsEnabled(qbs) qbs.installDir: "tests/manual/debugger/simple/" fileTags: ["install"] files: ["../../../tests/manual/debugger/simple/simple.pro"] @@ -314,4 +314,3 @@ QtcPlugin { cpp.includePaths: ["."] } } - diff --git a/src/plugins/fakevim/fakevim.qbs b/src/plugins/fakevim/fakevim.qbs index 600bd96ff0..788e53b005 100644 --- a/src/plugins/fakevim/fakevim.qbs +++ b/src/plugins/fakevim/fakevim.qbs @@ -1,6 +1,7 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "FakeVim" @@ -26,5 +27,9 @@ QtcPlugin { "fakevimplugin.h", "fakevimoptions.ui" ] -} + Group { + condition: Defaults.testsEnabled(qbs) + files: ["fakevim_test.cpp"] + } +} diff --git a/src/plugins/help/help.qbs b/src/plugins/help/help.qbs index 97eaefe9ec..15e8acd4e5 100644 --- a/src/plugins/help/help.qbs +++ b/src/plugins/help/help.qbs @@ -24,10 +24,7 @@ QtcPlugin { condition: qtcore.versionMajor >= 5 cpp.defines: base.concat(["QT_NO_WEBKIT"]) } - cpp.defines: base.concat([ - "QT_CLUCENE_SUPPORT", - "HELP_LIBRARY" - ]) + cpp.defines: base.concat(["QT_CLUCENE_SUPPORT"]) cpp.includePaths: [ "../../shared/help", ".", diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 9e368cbc93..36aa0fcbdb 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -1,5 +1,6 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "ProjectExplorer" @@ -320,7 +321,7 @@ QtcPlugin { ] Group { - condition: qbs.targetOS == "windows" + condition: qbs.targetOS == "windows" || Defaults.testsEnabled(qbs) files: [ "wincetoolchain.cpp", "wincetoolchain.h", @@ -335,6 +336,11 @@ QtcPlugin { ] } + Group { + condition: Defaults.testsEnabled(qbs) + files: ["outputparser_test.h", "outputparser_test.cpp"] + } + ProductModule { Depends { name: "cpp" } Depends { name: "Qt"; submodules: ["network"] } diff --git a/src/plugins/qmldesigner/qmldesigner.qbs b/src/plugins/qmldesigner/qmldesigner.qbs index fa4ddcbf74..7fac4be12c 100644 --- a/src/plugins/qmldesigner/qmldesigner.qbs +++ b/src/plugins/qmldesigner/qmldesigner.qbs @@ -20,7 +20,7 @@ QtcPlugin { Depends { name: "QtSupport" } Depends { name: "cpp" } - cpp.defines: base.concat(project.additionalCppDefines.concat(["QWEAKPOINTER_ENABLE_ARROW"])) + cpp.defines: base.concat(["QWEAKPOINTER_ENABLE_ARROW"]) cpp.includePaths: [ ".", "designercore", diff --git a/src/plugins/qmljstools/qmljstools.qbs b/src/plugins/qmljstools/qmljstools.qbs index 2d5d58c64f..85042a7675 100644 --- a/src/plugins/qmljstools/qmljstools.qbs +++ b/src/plugins/qmljstools/qmljstools.qbs @@ -1,6 +1,7 @@ import qbs.base 1.0 import "../QtcPlugin.qbs" as QtcPlugin +import "../../../qbs/defaults.js" as Defaults QtcPlugin { name: "QmlJSTools" @@ -59,6 +60,11 @@ QtcPlugin { "qmljssemanticinfo.h" ] + Group { + condition: Defaults.testsEnabled(qbs) + files: ["qmljstools_test.cpp"] + } + ProductModule { Depends { name: "CppTools" } Depends { name: "QmlDebug" } diff --git a/src/plugins/welcome/welcome.qbs b/src/plugins/welcome/welcome.qbs index bb975867df..e3f6670e76 100644 --- a/src/plugins/welcome/welcome.qbs +++ b/src/plugins/welcome/welcome.qbs @@ -10,7 +10,6 @@ QtcPlugin { Depends { name: "ProjectExplorer" } Depends { name: "cpp" } - cpp.defines: project.additionalCppDefines cpp.includePaths: [ "..", "../../libs", diff --git a/src/tools/QtcTool.qbs b/src/tools/QtcTool.qbs index 9632ecc098..a8b4f4d522 100644 --- a/src/tools/QtcTool.qbs +++ b/src/tools/QtcTool.qbs @@ -1,7 +1,9 @@ import qbs.base 1.0 +import "../../qbs/defaults.js" as Defaults Application { Depends { name: "cpp" } + cpp.defines: Defaults.defines(qbs) cpp.linkerFlags: { if (qbs.buildVariant == "release" && (qbs.toolchain == "gcc" || qbs.toolchain == "mingw")) return ["-Wl,-s"] -- GitLab