diff options
-rw-r--r-- | doc/reference/modules/protobufcpp-module.qdoc | 7 | ||||
-rw-r--r-- | share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs | 6 | ||||
-rw-r--r-- | share/qbs/module-providers/qbspkgconfig.qbs | 3 | ||||
-rw-r--r-- | share/qbs/modules/protobuf/cpp/protobufcpp.qbs | 9 | ||||
-rw-r--r-- | tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs | 1 | ||||
-rw-r--r-- | tests/auto/blackbox/tst_blackbox.cpp | 16 |
6 files changed, 25 insertions, 17 deletions
diff --git a/doc/reference/modules/protobufcpp-module.qdoc b/doc/reference/modules/protobufcpp-module.qdoc index eef189d0b..2c96eaeef 100644 --- a/doc/reference/modules/protobufcpp-module.qdoc +++ b/doc/reference/modules/protobufcpp-module.qdoc @@ -82,10 +82,9 @@ \section2 Dependencies The \l protobuf.cpp module requires runtime libraries to be operational. It depends on the - \c "protobuflib" module which can be created by the \l qbspkgconfig module provider (the - corresponding packages are \c protobuf or \c protobuf-lite). If \l useGrpc is set to true, - the \l protobuf.cpp module also depends on the \c "grpcpp" module (corresponding package is - \c gprc++). + \c "protobuflib" module which can be created by the \l qbspkgconfig or fallback module + providers (the corresponding packages are \c protobuf or \c protobuf-lite). If \l useGrpc is + set to true, the \l protobuf.cpp module also depends on the \c "grpc++" module. */ /*! diff --git a/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs b/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs index 61a9c0b74..0fe81c3cc 100644 --- a/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs +++ b/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs @@ -85,6 +85,12 @@ Probe { && p.exec(executable, versionArgs.concat(packageNames)) !== 0) { return; } + + // protobuf is reserved as qbs module name, which depends on the protobuflib module + packageNames = packageNames.map(function(name) { + return name === "protobuflib" ? "protobuf" : name; + }); + var args = packageNames; if (p.exec(executable, args.concat([ '--cflags' ])) === 0) { stdout = p.readStdOut().trim(); diff --git a/share/qbs/module-providers/qbspkgconfig.qbs b/share/qbs/module-providers/qbspkgconfig.qbs index aebed0ab3..0c6c99293 100644 --- a/share/qbs/module-providers/qbspkgconfig.qbs +++ b/share/qbs/module-providers/qbspkgconfig.qbs @@ -144,8 +144,7 @@ ModuleProvider { // TODO: ponder how we can solve forward mapping with Packages so we can fill deps var moduleMapping = { - "protobuf": "protobuflib", - "grpc++": "grpcpp" + "protobuf": "protobuflib" } var reverseMapping = {} for (var key in moduleMapping) diff --git a/share/qbs/modules/protobuf/cpp/protobufcpp.qbs b/share/qbs/modules/protobuf/cpp/protobufcpp.qbs index 9a8c55524..b5dab2372 100644 --- a/share/qbs/modules/protobuf/cpp/protobufcpp.qbs +++ b/share/qbs/modules/protobuf/cpp/protobufcpp.qbs @@ -19,14 +19,13 @@ ProtobufBase { Depends { name: "protobuflib"; condition: _linkLibraries; - required: false; - enableFallback: false + required: false } Depends { - name: "grpcpp"; + name: "grpc++"; + id: grpcpp condition: _linkLibraries && useGrpc; - required: false; - enableFallback: false + required: false } property path grpcPluginPath: grpcPluginProbe.filePath diff --git a/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs b/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs index dd2184c7e..4b004a884 100644 --- a/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs +++ b/tests/auto/blackbox/testdata/grpc/grpc_cpp.qbs @@ -16,6 +16,7 @@ CppApplication { cpp.warningLevel: "none" Depends { name: "protobuf.cpp"; required: false } + Depends { name: "grpc++"; id: grpcpp; required: false } protobuf.cpp.useGrpc: true property bool hasDependencies: { diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index e6a72cd77..4e97ba92c 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -5957,21 +5957,22 @@ void TestBlackbox::protobuf_data() QTest::addColumn<QStringList>("properties"); QTest::addColumn<bool>("hasModules"); QTest::addColumn<bool>("successExpected"); + QTest::newRow("cpp-fallback") << QString("addressbook_cpp.qbs") << QStringList() << true << true; QTest::newRow("cpp-pkgconfig") << QString("addressbook_cpp.qbs") - << QStringList("project.qbsModuleProviders:qbspkgconfig") + << QStringList({"project.qbsModuleProviders:qbspkgconfig", "--no-fallback-module-provider"}) << true << true; QTest::newRow("objc") << QString("addressbook_objc.qbs") << QStringList() << false << true; QTest::newRow("nanopb") << QString("addressbook_nanopb.qbs") << QStringList() << false << true; - QTest::newRow("import") << QString("import.qbs") << QStringList() << false << true; + QTest::newRow("import") << QString("import.qbs") << QStringList() << true << true; QTest::newRow("missing import dir") << QString("needs-import-dir.qbs") - << QStringList() << false << false; + << QStringList() << true << false; QTest::newRow("provided import dir") << QString("needs-import-dir.qbs") - << QStringList("products.app.theImportDir:subdir") << false << true; + << QStringList("products.app.theImportDir:subdir") << true << true; QTest::newRow("create proto library") - << QString("create-proto-library.qbs") << QStringList() << false << true; + << QString("create-proto-library.qbs") << QStringList() << true << true; } void TestBlackbox::protobuf() @@ -8373,7 +8374,10 @@ void TestBlackbox::grpc_data() QTest::addColumn<QStringList>("arguments"); QTest::addColumn<bool>("hasModules"); - QStringList pkgConfigArgs("project.qbsModuleProviders:qbspkgconfig"); + QTest::newRow("cpp-fallback") << QString("grpc_cpp.qbs") << QStringList() << true; + + QStringList pkgConfigArgs({ + "project.qbsModuleProviders:qbspkgconfig", "--no-fallback-module-provider"}); // on macOS, openSSL is hidden from pkg-config by default if (qbs::Internal::HostOsInfo::isMacosHost()) { pkgConfigArgs |