From 92ed11c8236ef16d95df32197b5fec78db4464e0 Mon Sep 17 00:00:00 2001 From: Kai Dohmen Date: Thu, 17 Dec 2020 13:03:33 +0100 Subject: Add protobuf.nanopb documentation Change-Id: Id0e2744fc9dcf8b30bf15eb543036947399664e3 Reviewed-by: Ivan Komissarov Reviewed-by: Christian Kandeler --- doc/external-resources.qdoc | 5 + doc/reference/modules/protobufnanopb-module.qdoc | 155 +++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 doc/reference/modules/protobufnanopb-module.qdoc 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 @@ -120,6 +120,11 @@ \title protoc */ +/*! + \externalpage https://github.com/nanopb/nanopb + \title nanopb +*/ + /*! \externalpage nolink \title macOS 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 + + 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 +*/ -- cgit v1.2.3