aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference/modules
diff options
context:
space:
mode:
Diffstat (limited to 'doc/reference/modules')
-rw-r--r--doc/reference/modules/android-ndk-module.qdoc24
-rw-r--r--doc/reference/modules/android-sdk-module.qdoc94
-rw-r--r--doc/reference/modules/autotest-module.qdoc69
-rw-r--r--doc/reference/modules/cpp-module.qdoc33
-rw-r--r--doc/reference/modules/protobufcpp-module.qdoc91
-rw-r--r--doc/reference/modules/protobufobjc-module.qdoc101
-rw-r--r--doc/reference/modules/qt-android_support-module.qdoc86
-rw-r--r--doc/reference/modules/qt-core-module.qdoc9
-rw-r--r--doc/reference/modules/qt-modules.qdoc6
-rw-r--r--doc/reference/modules/qt-plugin_support-module.qdoc77
-rw-r--r--doc/reference/modules/texttemplate-module.qdoc118
11 files changed, 678 insertions, 30 deletions
diff --git a/doc/reference/modules/android-ndk-module.qdoc b/doc/reference/modules/android-ndk-module.qdoc
index 529f2fb4d..8113a7c68 100644
--- a/doc/reference/modules/android-ndk-module.qdoc
+++ b/doc/reference/modules/android-ndk-module.qdoc
@@ -34,29 +34,21 @@
\brief Provides support for building native Android libraries.
The \c Android.ndk module contains the properties and rules to create native libraries
- for use in \l{AndroidApk}{Android application packages}.
+ for use in Android applications.
Normally, you will not use this module directly, but instead work
- with the \l{DynamicLibrary} and \l{StaticLibrary} items that \QBS provides.
+ with the \l{DynamicLibrary}, \l{StaticLibrary} and \l Application items
+ that \QBS provides.
Here is what the project file for the \c hello-jni example that comes with
the NDK could look like:
\code
- import qbs
-
- Project {
- DynamicLibrary {
- name: "hello-jni"
- qbs.architectures: ["mips", "x86"]
- files: ["jni/hello-jni.c"]
- }
-
- AndroidApk {
- name: "HelloJni"
- packageName: "com.example.hellojni"
- Depends { productTypes: ["android.nativelibrary"] }
- }
+ CppApplication {
+ name: "HelloJni"
+ Android.sdk.packageName: "com.example.hellojni"
+ qbs.architectures: ["mips", "x86"]
+ files: "app/src/main/jni/hello-jni.c"
}
\endcode
diff --git a/doc/reference/modules/android-sdk-module.qdoc b/doc/reference/modules/android-sdk-module.qdoc
index bad547311..a9e06ae17 100644
--- a/doc/reference/modules/android-sdk-module.qdoc
+++ b/doc/reference/modules/android-sdk-module.qdoc
@@ -35,9 +35,7 @@
The Android.sdk module contains the properties and rules to create Android
application packages from Java sources, resources, and so on.
-
- Normally, you will not use this module directly, but instead work
- with the \l{AndroidApk} item that \QBS provides.
+ It is usually pulled in indirectly by declaring an \l Application product.
\section2 Relevant File Tags
\target filetags-android-sdk
@@ -59,14 +57,8 @@
\li -
\li 1.4.0
\li Attached to Android assets, which are typically located in an
- \c{assets/} subdirectory. Using the \l{AndroidApk} item takes care
- of tagging these files for you.
- \row
- \li \c{"android.apk"}
- \li n/a
- \li 1.4.0
- \li Attached to the output artifact of the rule that creates an APK
- package. It is the default type of the \l{AndroidApk} item.
+ \c{assets/} subdirectory. These files are tagged automatically
+ if the \l automaticSources property is enabled.
\row
\li \c{"android.manifest"}
\li \c{AndroidManifest.xml}
@@ -78,8 +70,8 @@
\li -
\li 1.4.0
\li Attached to Android resources, which are typically located in a
- \c{res/} subdirectory. Using the \l{AndroidApk} item takes care of
- tagging these files for you.
+ \c{res/} subdirectory. These files are tagged automatically
+ if the \l automaticSources property is enabled.
\endtable
*/
@@ -125,3 +117,79 @@
\defaultvalue \c{true}
*/
+
+/*!
+ \qmlproperty string Android.sdk::assetsDir
+
+ The base directory for Android assets in the respective product.
+
+ \note Android requires that the file name of this directory is always
+ \c "assets".
+
+ \defaultvalue \c "src/main/assets" in the product source directory
+*/
+
+/*!
+ \qmlproperty bool Android.sdk::automaticSources
+
+ If \c true, Java sources as well as Android resources, assets, and the
+ manifest file will be automatically included in the respective product
+ via wildcards. Set this property to \c false if you want to specify
+ these files manually.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string Android.sdk::manifestFile
+
+ The file path to the Android manifest file.
+ This property is only relevant if \l automaticSources is enabled.
+
+ \note Android requires that the file name is always "AndroidManifest.xml".
+
+ \defaultvalue \c "src/main/AndroidManifest.xml" in the product source directory
+*/
+
+/*!
+ \qmlproperty string Android.sdk::packageName
+
+ The package name of the respective product. The \c package attribute in the manifest file
+ will be set to this value automatically.
+
+ \defaultvalue \c name
+*/
+
+/*!
+ \qmlproperty string Android.sdk::resourcesDir
+
+ The base directory for Android resources in the respective product.
+
+ \note Android requires that the file name of this directory is always
+ \c "res".
+
+ \defaultvalue \c "src/main/res" in the product source directory
+*/
+
+/*!
+ \qmlproperty path Android.sdk::sourcesDir
+
+ The base directory for Java sources. This property is only relevant if
+ \l automaticSources is enabled.
+
+ \defaultvalue \c "src/main/java" in the product source directory
+*/
+
+/*!
+ \qmlproperty string Android.sdk::apkBaseName
+
+ The base name of the APK file to to be built, that is, the file name
+ without the ".apk" extension.
+
+ \defaultvalue \l packageName
+*/
+
+/*!
+ \qmlproperty stringList Android.sdk::aidlSearchPaths
+ Search paths for import statements to pass to the \c aidl tool via the \c{-I} option.
+*/
diff --git a/doc/reference/modules/autotest-module.qdoc b/doc/reference/modules/autotest-module.qdoc
new file mode 100644
index 000000000..ddd9e0078
--- /dev/null
+++ b/doc/reference/modules/autotest-module.qdoc
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype autotest
+ \inqmlmodule QbsModules
+ \since Qbs 1.13
+
+ \brief Allows to fine-tune autotest execution.
+
+ The \c autotest module provides properties that allow autotest applications to specify
+ how exactly they should be run.
+*/
+
+/*!
+ \qmlproperty bool autotest::allowFailure
+
+ Autotests for which this property is \c true can return a non-zero exit code without
+ causing the entire \l AutotestRunner to fail. Use this for tests that are known
+ to be unreliable.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty stringList autotest::arguments
+
+ The list of arguments to invoke the autotest with. If not specified, then
+ the \l{AutotestRunner::arguments}{arguments} property of the
+ \l AutotestRunner that invokes the autotest is used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string autotest::workingDir
+
+ The working directory for running the autotest. If not specified, then
+ the \l{AutotestRunner::workingDir}{workingDir} property of the
+ \l AutotestRunner that invokes the autotest is used.
+
+ \nodefaultvalue
+*/
+
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index 0818af28d..bf1080dd7 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -150,6 +150,14 @@
\li The rule that creates dynamic libraries (typically via a linker) attaches this tag
to its output artifact.
\row
+ \li \c{"dynamiclibrary_import"}
+ \li n/a
+ \li 1.0.0
+ \li This tag is used for import libraries of dynamic libraries. For
+ example, the MSVC linker rule creates a \c{dynamiclibrary_import}
+ artifact \c{foo.lib} in addition to a \c{dynamiclibrary} artifact
+ \c{foo.dll}.
+ \row
\li \c{"hpp"}
\li \c{*.h}, \c{*.H}, \c{*.hpp}, \c{*.hxx}, \c{*.h++}
\li 1.0.1
@@ -217,6 +225,31 @@
This file tag only has an effect with GCC-like toolchains. The linker needs to be
\c{ld}-compatible.
\endtable
+
+ \section2 Relevant Job Pools
+ \target cpp-job-pools
+
+ \table
+ \header
+ \li Pool
+ \li Since
+ \li Description
+ \row
+ \li \c{"assembler"}
+ \li 1.13
+ \li The job pool used by rules that run the toolchain's assembler. This is only
+ relevant for direct invocations of the assembler binary, not for running it
+ indirectly via the compiler.
+ \row
+ \li \c{"compiler"}
+ \li 1.13
+ \li The job pool used by rules that run a compiler. All language variants use
+ the same pool.
+ \row
+ \li \c{"linker"}
+ \li 1.13
+ \li The job pool used by rules that run a linker.
+ \endtable
*/
/*!
diff --git a/doc/reference/modules/protobufcpp-module.qdoc b/doc/reference/modules/protobufcpp-module.qdoc
new file mode 100644
index 000000000..688f1d9e2
--- /dev/null
+++ b/doc/reference/modules/protobufcpp-module.qdoc
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype protobuf.cpp
+ \inqmlmodule QbsModules
+ \since Qbs 1.13
+
+ \brief Provides support for protocol buffers for the C++ language.
+
+ The \c protobuf.cpp module provides support for generating C++ headers
+ and sources from proto definition files using the \l protoc tool.
+
+ \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.
+ \endtable
+*/
+
+/*!
+ \qmlproperty string protobuf.cpp::protocBinary
+
+ The command to invoke when compiling proto definition files.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList protobuf.cpp::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.cpp::includePath
+
+ The path where protobuf C++ headers are located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.cpp::libraryPath
+
+ The path where the protobuf C++ library is located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
diff --git a/doc/reference/modules/protobufobjc-module.qdoc b/doc/reference/modules/protobufobjc-module.qdoc
new file mode 100644
index 000000000..07e6db759
--- /dev/null
+++ b/doc/reference/modules/protobufobjc-module.qdoc
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype protobuf.objc
+ \inqmlmodule QbsModules
+ \since Qbs 1.13
+
+ \brief Provides support for protocol buffers for the Objective-C language.
+
+ The \c protobuf.objc module provides support for generating Objective-C
+ headers and sources from proto definition files using the \l protoc tool.
+
+ \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.
+ \endtable
+*/
+
+/*!
+ \qmlproperty string protobuf.objc::protocBinary
+
+ The command to invoke when compiling proto definition files.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList protobuf.objc::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.objc::includePath
+
+ The path where protobuf Objective-C headers are located. Set this property
+ to override the default location.
+
+ \note If frameworkPath is specified, this property has no effect.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.objc::libraryPath
+
+ \note If frameworkPath is specified, this property has no effect.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.objc::frameworkPath
+
+ The path where \c Protobuf.framework is located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
diff --git a/doc/reference/modules/qt-android_support-module.qdoc b/doc/reference/modules/qt-android_support-module.qdoc
new file mode 100644
index 000000000..f7ec595e3
--- /dev/null
+++ b/doc/reference/modules/qt-android_support-module.qdoc
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype Qt.android_support
+ \inqmlmodule QbsModules
+ \brief Provides Qt support for the Android platform.
+
+ The \c Qt.android_support module provides the glue for \QBS'
+ Qt and Android support.
+ It is automatically pulled in by \c Qt.core, so you do not need to
+ add an explicit dependency to it in your product, unless you want
+ to set one of its properties.
+*/
+
+/*!
+ \qmlproperty bool Qt.android_support::useMinistro
+
+ Whether or not to use the Ministro service. If this property is enabled, then
+ the Qt libraries required by your application as well as some other resources
+ will not be packaged into the APK file, but are expected to be present on the
+ device at run time.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty string Qt.android_support::qmlRootDir
+
+ The root directory of the product's QML files. This information is passed to
+ the \c androiddeployqt tool, which will use it to decide which resources to
+ include in the APK file.
+
+ \defaultvalue \c product.sourceDirectory
+*/
+
+/*!
+ \qmlproperty stringList Qt.android_support::deploymentDependencies
+
+ Use this property to completely override the Qt deployment dependencies
+ of your app. Corresponds to qmake's ANDROID_DEPLOYMENT_DEPENDENCIES.
+
+ \defaultvalue \c undefined
+*/
+
+/*!
+ \qmlproperty stringList Qt.android_support::extraPlugins
+
+ Additional non-asset files to be packaged. Corresponds to qmake's ANDROID_EXTRA_PLUGINS.
+
+ \defaultvalue \c undefined
+*/
+
+/*!
+ \qmlproperty bool Qt.android_support::verboseAndroidDeployQt
+
+ Enable this property if you want verbose output from the
+ \c androiddeployqt tool.
+
+ \defaultvalue \c false
+*/
diff --git a/doc/reference/modules/qt-core-module.qdoc b/doc/reference/modules/qt-core-module.qdoc
index 6bfa67f19..922b1889b 100644
--- a/doc/reference/modules/qt-core-module.qdoc
+++ b/doc/reference/modules/qt-core-module.qdoc
@@ -140,6 +140,15 @@
*/
/*!
+ \qmlproperty bool Qt.core::enableBigResources
+
+ Whether the Qt resource compiler is run in a two-pass fashion that supports
+ the creation of big resources.
+
+ \defaultvalue \c{false}
+*/
+
+/*!
\qmlproperty stringList Qt.core::config
Corresponds to the default value of qmake's \c CONFIG variable.
diff --git a/doc/reference/modules/qt-modules.qdoc b/doc/reference/modules/qt-modules.qdoc
index c86c9cca6..638160104 100644
--- a/doc/reference/modules/qt-modules.qdoc
+++ b/doc/reference/modules/qt-modules.qdoc
@@ -98,7 +98,7 @@
\row
\li \l{Qt.gui}{gui}
\li Qt GUI
- \li For more information , see \l {Qt.gui}.
+ \li For more information, see \l {Qt.gui}.
\row
\li help
\li Qt Help
@@ -139,6 +139,10 @@
\li Qt QML
\li For more information, see \l{Qt.qml}.
\row
+ \li qmltest
+ \li Qt Quick Test
+ \li
+ \row
\li script
\li Qt Script
\li
diff --git a/doc/reference/modules/qt-plugin_support-module.qdoc b/doc/reference/modules/qt-plugin_support-module.qdoc
new file mode 100644
index 000000000..fe28ee907
--- /dev/null
+++ b/doc/reference/modules/qt-plugin_support-module.qdoc
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype Qt.plugin_support
+ \inqmlmodule QbsModules
+ \since Qbs 1.13.0
+ \brief Allows to fine-tune which Qt plugins get pulled in.
+
+ The \c Qt.plugin_support module provides properties that allow users to control
+ which Qt plugins to pull into a product.
+ This is mostly relevant if Qt was built statically, in which case the respective
+ plugins are static libraries that get linked into your application or library.
+*/
+
+/*!
+ \qmlproperty varList Qt.plugin_support::pluginsByType
+
+ Set this property if you want to override the set of plugins for a certain
+ plugin type. For instance, to disable all image plugins except the JPEG
+ one:
+ \code
+ Qt.plugin_support.pluginsByType: ({imageformats: "qjpeg"})
+ \endcode
+ For plugin types that are not specifically overridden like this, the value in
+ defaultPluginsByType is used.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var Qt.plugin_support::allPluginsByType
+
+ Provides the complete set of plugins in a statically built Qt.
+ The value is a map. The keys are the plugin types, and the values
+ are lists of plugin names.
+
+ \readonly
+*/
+
+/*!
+ \qmlproperty var Qt.plugin_support::defaultPluginsByType
+
+ Provides the set of plugins that your application or library will
+ link to if you do not set pluginsByType.
+ The value is a map. The keys are the plugin types, and the values
+ are lists of plugin names.
+ The value depends on the Qt modules your product pulls in.
+
+ \readonly
+*/
+
diff --git a/doc/reference/modules/texttemplate-module.qdoc b/doc/reference/modules/texttemplate-module.qdoc
new file mode 100644
index 000000000..7d0c47a6d
--- /dev/null
+++ b/doc/reference/modules/texttemplate-module.qdoc
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 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$
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \qmltype texttemplate
+ \inqmlmodule QbsModules
+ \since Qbs 1.13
+
+ \brief Provides support for text template files
+
+ The \c texttemplate module provides support for text template files.
+
+ \section2 Example
+
+ Consider the following text file \e{greeting.txt.in}.
+
+ \code
+ ${greeting} ${name}!
+ \endcode
+
+ This can be used in a project like this:
+
+ \code
+ Product {
+ type: ["text"]
+ files: ["greeting.txt.in"]
+ Depends { name: "texttemplate" }
+ texttemplate.dict: ({
+ greeting: "Hello",
+ name: "World"
+ })
+ }
+ \endcode
+
+ Which will create the file \e{greeting.txt}.
+
+ \code
+ Hello World!
+ \endcode
+
+
+ \section2 Placeholder Syntax
+
+ A placeholder \c{${foo}} is replaced by its corresponding value in
+ \e{texttemplate.dict}.
+ Placeholder names consist of alphanumeric characters only.
+
+ The placeholder \c{${$}} is always replaced with \c{$}.
+ If you need a literal \c{${foo}} in your template, use \c{${$}{foo}}.
+
+ Placeholders that are not defined in the dictionary will produce an error.
+
+
+ \section2 Relevant File Tags
+ \target filetags-texttemplate
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"texttemplate.input"}
+ \li \c{*.in}
+ \li 1.13.0
+ \li Source files with this tag serve as inputs for the text template rule.
+ \endtable
+*/
+
+/*!
+ \qmlproperty var texttemplate::dict
+
+ The dictionary containing values for all keys used in the template file.
+
+ \defaultvalue \c{{}}
+*/
+
+/*!
+ \qmlproperty string texttemplate::outputFileName
+
+ The output file name that is assigned to produced artifacts.
+
+ \defaultvalue Complete base name of the input file
+*/
+
+/*!
+ \qmlproperty string texttemplate::outputTag
+
+ The output tag that is assigned to produced artifacts.
+
+ \defaultvalue \c{"text"}
+*/