aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Dohmen <psykai1993@googlemail.com>2020-12-17 13:03:33 +0100
committerKai Dohmen <psykai1993@googlemail.com>2020-12-18 15:20:42 +0000
commit92ed11c8236ef16d95df32197b5fec78db4464e0 (patch)
treef53308b6990fbfa08bb9a28405ad9b6ed51b6552
parent1bb4c3c95e548bd57f733f2936e370cd40e81765 (diff)
Add protobuf.nanopb documentation
Change-Id: Id0e2744fc9dcf8b30bf15eb543036947399664e3 Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--doc/external-resources.qdoc5
-rw-r--r--doc/reference/modules/protobufnanopb-module.qdoc155
2 files changed, 160 insertions, 0 deletions
diff --git a/doc/external-resources.qdoc b/doc/external-resources.qdoc
index 00b7bf975..b3e0f1c2b 100644
--- a/doc/external-resources.qdoc
+++ b/doc/external-resources.qdoc
@@ -121,6 +121,11 @@
*/
/*!
+ \externalpage https://github.com/nanopb/nanopb
+ \title nanopb
+*/
+
+/*!
\externalpage nolink
\title macOS
\internal
diff --git a/doc/reference/modules/protobufnanopb-module.qdoc b/doc/reference/modules/protobufnanopb-module.qdoc
new file mode 100644
index 000000000..75c87ba57
--- /dev/null
+++ b/doc/reference/modules/protobufnanopb-module.qdoc
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype protobuf.nanopb
+ \inqmlmodule QbsModules
+ \since Qbs 1.18
+
+ \brief Provides support for protocol buffers for embedded systems.
+
+ The \c protobuf.nanopb module provides support for generating nanopb C headers
+ and sources from proto definition files using the \l nanopb plugin for the
+ \l protoc tool suitable for embedded systems.
+
+ A simple qbs file that uses protobuf can be written as follows:
+ \code
+ CppApplication {
+ Depends { name: "protobuf.nanopb" }
+ files: ["foo.proto", "main.cpp"]
+ }
+ \endcode
+ A generated header now can be included in the C++ sources:
+ \code
+ #include <foo.pb.h>
+
+ int main(int argc, char* argv[]) {
+ Foo bar;
+ bar.has_answer = true;
+ bar.answer = 42;
+ return 0;
+ }
+ \endcode
+
+ Nanopb .options files to define nanopb specific proto options are supported.
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"protobuf.input"}
+ \li \c{*.proto}
+ \li 1.13.0
+ \li Source files with this tag are considered inputs to the \c protoc compiler.
+ \row
+ \li \c{"protobuf.hpp"}
+ \li
+ \li 1.18.0
+ \li This tag is attached to the header files generated by \c protoc compiler.
+ \endtable
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::compilerName
+
+ The name of the protoc binary.
+
+ \defaultvalue \c "protoc"
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::compilerPath
+
+ The path to the protoc binary.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList protobuf.nanopb::importPaths
+
+ The list of imports that are passed to the \c protoc tool via the \c --proto_path option.
+ These imports should contain the proto files. They are used to determine
+ the relative structure of the generated files.
+ \note The paths are passed to \c protoc in the same order as specified in this property and
+ \c protoc output may differ depending on that order.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::includePath
+
+ The path where protobuf nanopb C headers are located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::libraryPath
+
+ The path where the protobuf nanopb runtime library is located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::outputDir
+ \readonly
+
+ The directory where the \c protoc compiler generated files are placed.
+
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::pluginName
+
+ The name of the nanopb protoc plugin.
+
+ \defaultvalue \c "protoc-gen-nanopb"
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::pluginPath
+
+ The path to the nanopb protoc plugin.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/