aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/capnproto/capnprotobase.qbs
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2020-06-29 19:18:10 +0200
committerIvan Komissarov <ABBAPOH@gmail.com>2020-07-21 12:18:40 +0000
commitf00c3b009f9dc6a50006f4e4811683f19e764763 (patch)
treec72ddadcb51699bd9a64056fc8732daf2c8e12f1 /share/qbs/modules/capnproto/capnprotobase.qbs
parentc693cd509e31a946ac5b16662d3d466a20732f3d (diff)
Add support for Cap'n Proto for the c++ language
Cap'n Proto is a 'cerialization protocol' similar to protobuf: https://capnproto.org/index.html This patch mainly focuses on the c++ support for the capnp protocol keeping in mind the possibility to add other languages later. Change-Id: Ib19a9df1f45f2787503197791ac597d06cc45e9d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share/qbs/modules/capnproto/capnprotobase.qbs')
-rw-r--r--share/qbs/modules/capnproto/capnprotobase.qbs65
1 files changed, 65 insertions, 0 deletions
diff --git a/share/qbs/modules/capnproto/capnprotobase.qbs b/share/qbs/modules/capnproto/capnprotobase.qbs
new file mode 100644
index 000000000..e557f7b77
--- /dev/null
+++ b/share/qbs/modules/capnproto/capnprotobase.qbs
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms and
+** conditions see http://www.qt.io/terms-conditions. For further information
+** use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+import qbs
+import qbs.Probes
+import "capnproto.js" as HelperFunctions
+
+Module {
+ property string compilerName: "capnpc"
+ property string compilerPath: compilerProbe.filePath
+
+ property string pluginName
+ property string pluginPath: pluginProbe.filePath
+
+ property pathList importPaths: []
+
+ property string _outputDir: product.buildDirectory + "/capnp"
+
+ Probes.BinaryProbe {
+ id: compilerProbe
+ names: compilerName ? [compilerName] : []
+ }
+
+ Probes.BinaryProbe {
+ id: pluginProbe
+ names: pluginName ? [pluginName] : []
+ }
+
+ FileTagger {
+ patterns: ["*.capnp"]
+ fileTags: ["capnproto.input"];
+ }
+
+ validate: {
+ HelperFunctions.validateCompiler(compilerName, compilerPath);
+ HelperFunctions.validatePlugin(pluginName, pluginPath);
+ }
+}