aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeena Miettinen <riitta-leena.miettinen@qt.io>2017-11-29 17:49:36 +0100
committerLeena Miettinen <riitta-leena.miettinen@qt.io>2017-11-30 10:41:29 +0000
commit423c8c4986c2aa62a8b49ba9289ea75be4b1bc27 (patch)
treeefafbde44ad9561aa766b95d3cb9be40c67efa79
parent8022fd9a5c43daf16f5409a9a6b14f4ac762763b (diff)
Doc: Use QDoc QML commands to document Qbs language items
Task-number: QBS-1245 Change-Id: I470a629312b1c65ea9e51c603607c486115a304c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--doc/appendix/qbs-porting.qdoc61
-rw-r--r--doc/config/macros.qdocconf2
-rw-r--r--doc/howtos.qdoc14
-rw-r--r--doc/qbs.qdoc36
-rw-r--r--doc/reference/cli/builtin/cli-build.qdoc4
-rw-r--r--doc/reference/cli/builtin/cli-clean.qdoc2
-rw-r--r--doc/reference/cli/builtin/cli-resolve.qdoc2
-rw-r--r--doc/reference/cli/builtin/cli-update-timestamps.qdoc4
-rw-r--r--doc/reference/cli/cli-options.qdocinc20
-rw-r--r--doc/reference/commands.qdoc6
-rw-r--r--doc/reference/items/language/artifact.qdoc78
-rw-r--r--doc/reference/items/language/depends.qdoc180
-rw-r--r--doc/reference/items/language/export.qdoc19
-rw-r--r--doc/reference/items/language/filetagger.qdoc93
-rw-r--r--doc/reference/items/language/group.qdoc200
-rw-r--r--doc/reference/items/language/module.qdoc198
-rw-r--r--doc/reference/items/language/parameter.qdoc22
-rw-r--r--doc/reference/items/language/parameters.qdoc25
-rw-r--r--doc/reference/items/language/probe.qdoc58
-rw-r--r--doc/reference/items/language/product.qdoc362
-rw-r--r--doc/reference/items/language/profile.qdoc65
-rw-r--r--doc/reference/items/language/project.qdoc150
-rw-r--r--doc/reference/items/language/properties.qdoc63
-rw-r--r--doc/reference/items/language/propertyoptions.qdoc60
-rw-r--r--doc/reference/items/language/rule.qdoc297
-rw-r--r--doc/reference/items/language/scanner.qdoc98
-rw-r--r--doc/reference/items/language/subproject.qdoc50
-rw-r--r--doc/reference/modules/cpp-module.qdoc6
-rw-r--r--doc/reference/modules/qt-modules.qdoc8
-rw-r--r--doc/reference/reference.qdoc4
30 files changed, 1189 insertions, 998 deletions
diff --git a/doc/appendix/qbs-porting.qdoc b/doc/appendix/qbs-porting.qdoc
index 9b0b316a9..91596c89c 100644
--- a/doc/appendix/qbs-porting.qdoc
+++ b/doc/appendix/qbs-porting.qdoc
@@ -56,7 +56,8 @@
\section3 console
- Set the \l{Product Item}{consoleApplication} property to \c true for the
+ Set the \l{Product::consoleApplication}{product.consoleApplication} property
+ to \c true for the
\l{Application Item}{Application}, \l{CppApplication Item}{CppApplication},
or \l{QtApplication Item}{QtApplication} item. For example:
@@ -73,8 +74,8 @@
This qmake variable has no direct equivalent in \QBS. Instead, the build
order is determined by implicit and explicit dependencies between products.
- To add an explicit dependency, add a \l{Depends Item}{Depends item} to a
- \l{Product Item}{product}:
+ To add an explicit dependency, add a \l{Depends} item to a
+ \l{Product}{product}:
\code
CppApplication {
@@ -89,8 +90,8 @@
\section3 qt
In qmake, the Qt dependency is implicit, whereas in \QBS it is not.
- If \c {CONFIG -= qt}, add a \l{Depends Item}{Depends item} to specify that
- the \l{Product Item}{product} depends on the \l{Module cpp}{cpp module}:
+ If \c {CONFIG -= qt}, add a \l{Depends} item to specify that
+ the \l{Product}{product} depends on the \l{Module cpp}{cpp module}:
\code
Product {
@@ -100,7 +101,7 @@
\section2 DEFINES
- Set the \l{Module cpp}{cpp.defines} property for the \l{Product Item}{product}.
+ Set the \l{Module cpp}{cpp.defines} property for the \l{Product}{product}.
\note To reference \c cpp.defines, you must specify a dependency on the
\l{Module cpp}{cpp} module.
@@ -145,8 +146,8 @@
\section2 HEADERS, SOURCES, FORMS, RESOURCES
- Include header, source, form, and resource files as values of the \c files
- property of the \l{Product Item}{product}:
+ Include header, source, form, and resource files as values of
+ \l{Product::files}{product.files} property:
\code
QtApplication {
@@ -155,14 +156,14 @@
}
\endcode
- \QBS uses \l{FileTagger Item}{file taggers} to figure out what kind of file
+ \QBS uses \l{FileTagger}{file taggers} to figure out what kind of file
it is dealing with.
\section2 ICON
- There is no direct equivalent in \QBS. If you add a \l{Depends Item}
+ There is no direct equivalent in \QBS. If you add a \l{Depends}
{dependency} to the \l{Module ib}{ib module} and add the \c .xcassets
- directory as a value of the \c files property of the \l{Product Item}
+ directory as a value of the \c files property of the \l{Product}
{product}, \QBS takes care of setting the application icon automatically
when building for Apple platforms:
@@ -200,8 +201,7 @@
\section2 LIBS
- For libraries that are part of the project, use \l{Depends Item}
- {Depends items}.
+ For libraries that are part of the project, use \l{Depends} items.
To pull in external libraries, use the \l{Module cpp}{cpp.libraryPaths}
property for the Unix \c -L (library path) flags and the
@@ -219,7 +219,7 @@
\section2 OUT_PWD
- Use the \c product.buildDirectory property of the \l{Product Item}{product}
+ Use the \c product.buildDirectory property of the \l{Product}{product}
to refer to the base output directory of the generated artifacts.
\section2 PWD
@@ -229,18 +229,18 @@
\section2 _PRO_FILE_
Corresponds to the file-scope variable \c filePath when used in a
- \l{Project Item}{project} or \l{Product Item}{product}.
+ \l{Project}{project} or \l{Product}{product}.
\section2 _PRO_FILE_PWD_
Corresponds to the \c sourceDirectory property of a
- \l{Project Item}{project} or \l{Product Item}{product}.
+ \l{Project}{project} or \l{Product}{product}.
\section2 QMAKE_ASSET_CATALOGS
- Add a \l{Depends Item}{dependency} to the \l{Module ib}{ib module} and add
+ Add a \l{Depends}{dependency} to the \l{Module ib}{ib module} and add
the \c .xcassets directory as a value of the \c files property of the
- \l{Product Item}{product}:
+ \l{Product}{product}:
\code
Application {
@@ -289,7 +289,7 @@
\c cpp.objcxxCompilerFlags
\endtable
- Use \l{Properties Item}{Properties items} or simple conditionals as values
+ Use \l{Properties} items or simple conditionals as values
of the \l{Module qbs}{qbs.buildVariant} property to simulate the \c _DEBUG
and\c _RELEASE variants of the qmake variables.
@@ -307,7 +307,7 @@
\section2 QMAKE_INFO_PLIST
Include the \c info.plist file as a value of the \c files property of the
- \l{Product Item}{product} and specify a dependency to the \l{Module bundle}
+ \l{Product}{product} and specify a dependency to the \l{Module bundle}
{bundle} module:
\code
@@ -344,7 +344,7 @@
\section2 QMAKE_LFLAGS
- Set the \l{Module cpp}{cpp.linkerFlags} property for the \l{Product Item}
+ Set the \l{Module cpp}{cpp.linkerFlags} property for the \l{Product}
{product}.
\section2 QMAKE_{MACOSX,IOS,TVOS,WATCHOS}_DEPLOYMENT_TARGET
@@ -372,17 +372,16 @@
\section2 QMAKE_RPATHDIR
- Set the \l{Module cpp}{cpp.rpaths} property for the \l{Product Item}
- {product}.
+ Set the \l{Module cpp}{cpp.rpaths} property for the \l{Product}{product}.
\section2 QMAKE_SONAME_PREFIX
- Use the \l{Module cpp}{cpp.sonamePrefix} property for the \l{Product Item}
+ Use the \l{Module cpp}{cpp.sonamePrefix} property for the \l{Product}
{product}.
\section2 QML_IMPORT_PATH
- Used only for Qt Creator QML syntax highlighting. Inside a \l{Product Item}
+ Used only for Qt Creator QML syntax highlighting. Inside a \l{Product}
{Product}, \l{Application Item}{Application}, \l{CppApplication Item}
{CppApplication}, or \l{QtApplication Item}{QtApplication}, create a
\c qmlImportPaths property:
@@ -396,7 +395,7 @@
\section2 QT
- Add a \l{Depends Item}{Depends item} to the \l{Product Item}{product} that
+ Add a \l{Depends} item to the \l{Product}{product} that
specifies the dependencies to \l{Qt Modules}{Qt modules}. For example:
\code
@@ -431,19 +430,19 @@
\section2 RC_FILE
Add Windows resource files to the value of the \c files property for the
- \l{Product Item}{product}.
+ \l{Product}{product}.
\section2 TARGET
Use the \c targetName property to specify the base file name of target
- artifacts of the \l{Product Item}{product}.
+ artifacts of the \l{Product}{product}.
\section2 TEMPLATE
\section3 app
Use \l{Application Item}{Application} or \l{CppApplication Item}
- {CppApplication} as the \l{Product Item}{product}:
+ {CppApplication} as the \l{Product}{product}:
\code
CppApplication {
@@ -466,7 +465,7 @@
\section3 lib
Use either \l{DynamicLibrary Item}{DynamicLibrary} or \l{StaticLibrary Item}
- {StaticLibrary} as the \l{Product Item}{product}, depending on whether the
+ {StaticLibrary} as the \l{Product}{product}, depending on whether the
value of \c CONFIG in the .pro file is \c shared or \c static. For example,
if the value is \c shared:
@@ -480,7 +479,7 @@
\section3 subdirs
- In a \l{Project Item}{Project item}, specify subdirectories as values of the
+ In a \l{Project} item, specify subdirectories as values of the
\c references property:
\code
diff --git a/doc/config/macros.qdocconf b/doc/config/macros.qdocconf
index 57ff72747..dca83db1c 100644
--- a/doc/config/macros.qdocconf
+++ b/doc/config/macros.qdocconf
@@ -1,2 +1,4 @@
macro.QBS = "Qbs"
macro.qbsversion = $QBS_VERSION
+macro.defaultvalue = "Default:"
+macro.nodefaultvalue = "Default: Undefined"
diff --git a/doc/howtos.qdoc b/doc/howtos.qdoc
index 1334543fb..065553d53 100644
--- a/doc/howtos.qdoc
+++ b/doc/howtos.qdoc
@@ -68,7 +68,7 @@
\section1 How do I make my app build against my library?
This is achieved by introducing a \e dependency between the two products using the
- \l{Depends Item}{Depends item}. Here is a simple, but complete example:
+ \l{Depends} item. Here is a simple, but complete example:
\code
import qbs
Project {
@@ -93,16 +93,16 @@
\endcode
The product \c the-lib is a dynamic library. It expects other products to build against it, and
- for that purpose, it exports an include path (via an \l{Export Item}{Export item}), so that the
+ for that purpose, it exports an include path (via an \l{Export} item), so that the
source files in these products can include the library's header file.
The product \c the-app is an application that expresses its intent to link against \c the-lib
by declaring a dependency on it. Now \c main.cpp can include \c lib.h (because of the exported
include path) and the application binary will link against the library (because the linker
- \l{Rule Item}{rule} in the \l{Module cpp}{cpp module} considers library dependencies as inputs).
+ \l{Rule}{rule} in the \l{Module cpp}{cpp module} considers library dependencies as inputs).
\note In a non-trivial project, the two products would not be defined in the same file.
Instead, you would put them into files of their own and use the
- \l{Project Item}{Project item}'s \c references property to pull them into the project.
+ \l{Project::references}{project.references} property to pull them into the project.
The product definitions would stay exactly the same. In particular, their location
in the project tree is irrelevant to the relationship between them.
@@ -212,12 +212,12 @@
\section1 How do I apply C/C++ preprocessor macros to only a subset of the files in my product?
- Use a \l{Group Item}{Group item} to define a subset of project files. To add
+ Use a \l{Group} item to define a subset of project files. To add
macros within the group, you need to use the \c outer.concat property,
because you are adding macros to those specified in the outer scope.
In the following example, \c MACRO_EVERYWHERE is defined for all files in
- the \l{Product Item}{Product} unless a \c Group overrides the macro, whereas
+ the \l{Product} unless a Group overrides the macro, whereas
\c MACRO_GROUP is only defined for \c groupFile.cpp.
\code
@@ -234,7 +234,7 @@
The \c cpp.defines statements inside a \c Group only apply to the files in
that \c Group, and therefore you cannot use a \c Group to include a bunch of
files and globally visible macros. The macros must be specified in a
- \l{Properties Item}{Properties item} at the same level as the \c Group if
+ \l{Properties} item at the same level as the \c Group if
they need to be visible to files outside the \c Group:
\code
diff --git a/doc/qbs.qdoc b/doc/qbs.qdoc
index e4fdd12f9..1bb4ee3af 100644
--- a/doc/qbs.qdoc
+++ b/doc/qbs.qdoc
@@ -154,15 +154,15 @@
for extra flexibility.
\QBS builds applications based on the information in a project file. Each
- project file specifies one \l{Project Item}{project} that can contain
- several \l{Product Item}{products}. You specify the type of the product,
+ project file specifies one \l{Project}{project} that can contain
+ several \l{Product}{products}. You specify the type of the product,
such as an \e application, and the dependencies the product has on other
products.
- The product type determines the set of \l{Rule Item}{rules} that \QBS
+ The product type determines the set of \l{Rule}{rules} that \QBS
applies to produce artifacts from input files. The input files can be
- divided into \l{Group Item}{groups} according to their type or purpose, for
- example. A group can also be used to attach \l{Properties Item}{properties}
+ divided into \l{Group}{groups} according to their type or purpose, for
+ example. A group can also be used to attach \l{Properties}{properties}
to products.
The following is an example of a minimal project file that specifies the
@@ -371,7 +371,7 @@
There is no rule in the current context that produces \c .cpp files, but
we have defined \c .cpp files as inputs for the product. When we added a
dependency on the \c cpp module, that dependency also pulled in another \QBS
- primitive called the \l{FileTagger Item}{file tagger}. The file tagger
+ primitive called the \l{FileTagger}{file tagger}. The file tagger
looked for files matching the pattern \c *.cpp, and then applied the \c cpp
tag to those input files:
@@ -794,7 +794,7 @@
\title Language Introduction
\QBS uses project files (*.qbs) to describe the contents of a project.
- A project contains one or more \l{Product Item}{products}. A product is the target of a build
+ A project contains one or more \l{Product}{products}. A product is the target of a build
process, typically an application, library or maybe a tar ball.
\note \QBS source files are assumed to be UTF-8 encoded.
@@ -1210,7 +1210,7 @@
You can define rules in your own module to be provided along with
your project. Or you can put a rule directly into your project file.
- For more information, see \l{Rule Item}.
+ For more information, see \l{Rule}.
*/
@@ -1377,9 +1377,9 @@
To introduce a custom module \c mymodule, create a directory \c{search-path/modules/mymodule/}.
\note Module names are case-sensitive, and this also goes for the corresponding directory name.
- Then, put a file containing an instance of the \l{Module Item} in there and give it the \c{.qbs}
+ Then, put a file containing an instance of the \l{Module} in there and give it the \c{.qbs}
extension. This module will be pulled in if a
- \l{Product Item}{product} declares a \l{Depends Item}{dependency} on \c mymodule.
+ \l{Product}{product} declares a \l{Depends}{dependency} on \c mymodule.
\section1 Custom Items
@@ -1498,14 +1498,14 @@
The properties to which the limitation applies includes but is not limited to:
\list
- \li \l{Product Item}{Product}.name
+ \li \l{Product::name}{product.name}
\li \l{Module bundle}{bundle}.isBundle
\endlist
If a simple workaround is possible in a particular case (for example,
- varying \c Product.targetName across configuration instead of
- \c Product.name), the generator will typically suggest it in the error
- message.
+ varying \l{Product::targetName}{product.targetName} across configuration
+ instead of \l{Product::name}{product.name}, the generator will typically
+ suggest it in the error message.
*/
/*!
@@ -1535,8 +1535,9 @@
\note The implementation details around multiplexing are subject to change.
- Product multiplexing works by examining a special property on the
- \l{Product Item}{Product} item called \c multiplexByQbsProperties, which can
+ Product multiplexing works by examining the
+ \l{Product::multiplexByQbsProperties}{product.multiplexByQbsProperties}
+ property, which can
be set to the list of properties your product should multiplex over. For
example, \c multiplexByQbsProperties might contain two strings,
\c "architectures" and \c "buildVariants". \QBS evaluates the values of
@@ -1545,7 +1546,8 @@
all the possible configurations of the product: \c {(x86, debug)},
\c {(x86, release)}, \c {(x86_64, debug)}, and \c {(x86_64, release)}.
- If the product’s \c aggregate property is \c true, the product will also be
+ If the \l{Product::aggregate}{product.aggregate} property is \c true, the
+ product will also be
built a fifth time, with the values of the multiplexed properties left
undefined. The aggregate product will have an automatic dependency on the
original four instances of the product, allowing it to collect their output
diff --git a/doc/reference/cli/builtin/cli-build.qdoc b/doc/reference/cli/builtin/cli-build.qdoc
index dd0489eb8..ce4fab160 100644
--- a/doc/reference/cli/builtin/cli-build.qdoc
+++ b/doc/reference/cli/builtin/cli-build.qdoc
@@ -43,8 +43,8 @@
Builds projects in one or more configurations.
- You can specify \l{Project Item}{project}, \l{Product Item}{product}, or
- \l{List of Modules}{module} properties, as well as a \l{Profile Item}
+ You can specify \l{Project}{project}, \l{Product}{product}, or
+ \l{List of Modules}{module} properties, as well as a \l{Profile}
{profile} separately for each configuration.
This is the default command.
diff --git a/doc/reference/cli/builtin/cli-clean.qdoc b/doc/reference/cli/builtin/cli-clean.qdoc
index 1aa07a802..f87270825 100644
--- a/doc/reference/cli/builtin/cli-clean.qdoc
+++ b/doc/reference/cli/builtin/cli-clean.qdoc
@@ -41,7 +41,7 @@
\section1 Description
- Removes build \l{Artifact Item}{artifacts} for the specified build
+ Removes build \l{Artifact}{artifacts} for the specified build
configuration.
\section1 Options
diff --git a/doc/reference/cli/builtin/cli-resolve.qdoc b/doc/reference/cli/builtin/cli-resolve.qdoc
index e8a239942..1743eb55f 100644
--- a/doc/reference/cli/builtin/cli-resolve.qdoc
+++ b/doc/reference/cli/builtin/cli-resolve.qdoc
@@ -41,7 +41,7 @@
\section1 Description
- Resolves a \l{Project Item}{project} in one or more configurations. Run this
+ Resolves a \l{Project}{project} in one or more configurations. Run this
command to change the properties of an existing build.
\section1 Options
diff --git a/doc/reference/cli/builtin/cli-update-timestamps.qdoc b/doc/reference/cli/builtin/cli-update-timestamps.qdoc
index f1bb016b9..39faddfed 100644
--- a/doc/reference/cli/builtin/cli-update-timestamps.qdoc
+++ b/doc/reference/cli/builtin/cli-update-timestamps.qdoc
@@ -41,8 +41,8 @@
\section1 Description
- Updates the timestamps of all build \l{Artifact Item}{artifacts}, causing
- the next builds of the \l{Project Item}{project} to do nothing until source
+ Updates the timestamps of all build \l{Artifact}{artifacts}, causing
+ the next builds of the \l{Project}{project} to do nothing until source
files are updated again.
This command is useful if you know that the current changes to source files
diff --git a/doc/reference/cli/cli-options.qdocinc b/doc/reference/cli/cli-options.qdocinc
index 73cab922c..e52b422dc 100644
--- a/doc/reference/cli/cli-options.qdocinc
+++ b/doc/reference/cli/cli-options.qdocinc
@@ -31,7 +31,7 @@
\section2 \c --all-products
- Processes all \l{Product Item}{products}, even if their \c builtByDefault
+ Processes all \l{Product}{products}, even if their \c builtByDefault
property is \c false.
//! [all-products]
@@ -82,10 +82,10 @@
\section2 \c --check-outputs
- Forces transformer output \l{Artifact Item}{artifact} checks.
+ Forces transformer output \l{Artifact}{artifact} checks.
- Verifies that the output artifacts declared by \l{Rule Item}{rules} in the
- \l{Project Item}{project} are actually created.
+ Verifies that the output artifacts declared by \l{Rule}{rules} in the
+ \l{Project}{project} are actually created.
//! [check-outputs]
@@ -185,7 +185,7 @@
\section2 \c --force-probe-execution
- Forces re-execution of all \l{Probe Item}{Probe items}' configure scripts,
+ Forces re-execution of all \l{Probe} items' configure scripts,
rather than using the cached data.
//! [force-probe-execution]
@@ -278,7 +278,7 @@
Possible values are:
\list
- \li \c defaultProfile is the default \l{Profile Item}{profile} to use
+ \li \c defaultProfile is the default \l{Profile}{profile} to use
if a profile is not specified
\li \c preferences accepts build preferences as second-level keys
\li \c profiles accepts profile names as second-level keys
@@ -357,7 +357,7 @@
\section2 \c {--products|-p <name>[,<name>...]}
- Takes only the \l{Product Item}{products} specified by \c <name> and their
+ Takes only the \l{Product}{products} specified by \c <name> and their
dependencies into account.
//! [products-specified]
@@ -382,7 +382,7 @@
\section2 \c {--settings-dir <directory>}
- Reads all settings (such as \l{Profile Item}{profile} information) from the
+ Reads all settings (such as \l{Profile}{profile} information) from the
specified \c <directory>. If the directory does not exist, it will be
created.
@@ -400,8 +400,8 @@
\section2 \c --setup-run-env-config
- A comma-separated list of strings. They will show up in the \c config parameter
- of all \c setupRunEnvironment scripts. See the \l{Module Item}{Module item} for details.
+ A comma-separated list of strings. They will show up in the \c config
+ parameter of all \l{Module::}{setupRunEnvironment} scripts.
//! [setup-run-env-config]
diff --git a/doc/reference/commands.qdoc b/doc/reference/commands.qdoc
index ce2330ffc..8f0392c32 100644
--- a/doc/reference/commands.qdoc
+++ b/doc/reference/commands.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -45,7 +45,7 @@
\code
var insaneCommand = new Command("rm", ["-r", "/"]);
\endcode
- The \l{Rule Item} documentation shows a \c Command in context.
+ The \l{Rule} item documentation shows a \c Command in context.
\section1 JavaScriptCommand
@@ -65,7 +65,7 @@
\c outputs are available. As the example shows, arbitrary properties can be set on the command
object and then used within the source code. This technique is typically used to forward values
from the prepare script to the command.
- The \l{Rule Item} documentation shows a \c JavaScriptCommand in context.
+ The \l{Rule} item documentation shows a \c JavaScriptCommand in context.
\section1 Properties
diff --git a/doc/reference/items/language/artifact.qdoc b/doc/reference/items/language/artifact.qdoc
index 6c4a8d37c..3552ef57e 100644
--- a/doc/reference/items/language/artifact.qdoc
+++ b/doc/reference/items/language/artifact.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,21 +26,23 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \page artifact-item.html
- \nextpage depends-item.html
+ \nextpage Depends
\ingroup list-of-language-items
+ \qmltype Artifact
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Artifact
- \title Artifact Item
- \brief Describes a file produced by a \c Rule.
+ \brief Describes a file produced by a Rule.
- An \c Artifact represents a single file produced by a \l{Rule Item}{Rule}.
+ An Artifact represents a single file produced by a \l{Rule}.
- For example, if a rule produces three files, it needs to contain three Artifact items.
+ For example, if a rule produces three files, it needs to contain three
+ Artifact items.
+
+ In addition to Artifact properties, you can set module properties within an
+ Artifact item, as follows:
- In addition to the properties listed in the section below, you can also set module properties
- within an \c Artifact item:
\code
Artifact {
filePath: "somefile.cpp"
@@ -50,36 +52,36 @@
}
\endcode
- \section1 Artifact Properties
+ \note The code on the right-hand side of Artifact properties has access to
+ the set of input artifacts. That is, it can refer to the \c inputs map and,
+ if the rule is not a multiplex rule, the \c input variable.
+*/
+
+/*!
+ \qmlproperty bool Artifact::alwaysUpdated
+
+ Setting this property to \c false means the file is not necessarily always
+ written to by any command run by the rule. The timestamps of such artifacts
+ are therefore not checked to find out whether they are up to date.
+ Consequently, if all artifacts of a rule have this property set to \c false,
+ the commands of the rule are always executed.
+
+ \defaultvalue \c true
+*/
- \note The code on the right-hand side of these properties has access to the set of input
- artifacts, that is, it can refer to the \c inputs map and, if the rule is not a multiplex rule,
- the \c input variable.
+/*!
+ \qmlproperty string Artifact::filePath
+
+ The file path of the target artifact.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Artifact::fileTags
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li alwaysUpdated
- \li bool
- \li true
- \li Setting this to \c false means the file is not necessarily always written to by any
- command run by the rule. The timestamps of such artifacts are therefore not checked to
- find out whether they are up to date. Consequently, if all artifacts of a rule have this
- property set to \c false, the commands of the rule are always executed.
- \row
- \li filePath
- \li string
- \li undefined
- \li The file path of the target artifact.
- \row
- \li fileTags
- \li list
- \li empty list
- \li The tags to attach to the target file. These can then be matched by a rule.
- \endtable
+ A list of tags to attach to the target file. These can then be matched by a
+ \l{Rule}.
+ \defaultvalue An empty list
*/
diff --git a/doc/reference/items/language/depends.qdoc b/doc/reference/items/language/depends.qdoc
index 5107f3f5b..77313fe61 100644
--- a/doc/reference/items/language/depends.qdoc
+++ b/doc/reference/items/language/depends.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,17 +26,16 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage artifact-item.html
- \page depends-item.html
- \nextpage export-item.html
- \ingroup list-of-language-items
+ \previouspage Artifact
+ \nextpage Export
+ \qmltype Depends
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Depends
- \title Depends Item
\brief Represents dependencies between products and modules.
- A \c Depends item can appear inside a \l{Product Item} or \l{Module Item}.
+ A Depends item can appear inside a \l{Product} or \l{Module} item.
For example, the following product will load the \c cpp module. In addition, it will try
to load modules that may or may not exist, and in the latter case use a fallback.
@@ -81,83 +80,108 @@
\endcode
Dependency parameters are a special type of property that can only be set
- within \c{Depends} and \c{Parameters} items. Dependency parameters are
+ within Depends and \l [QML] {Parameters} items. Dependency parameters are
declared in the modules they belong to.
In the example above, the \c{cpp} module declares the parameter \c{link}.
The \c{Depends} item for \e{some_dynamic_lib} sets \c{cpp.link} to
\c{false}, which tells the linker rule to ignore this particular dependency.
+*/
+
+/*!
+ \qmlproperty bool Depends::condition
+
+ Determines whether the dependency will actually be applied.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string Depends::versionAtLeast
+
+ The minimum value that the dependency's \c version property needs to have.
+ If the actual version is lower than that, loading the dependency will fail.
+ The value consists of integers separated by dots.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Depends::versionBelow
+
+ A value that the dependency's \c version property must be lower than. If the
+ actual version is equal to or higher than that, loading the dependency will
+ fail. The value consists of integers separated by dots.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Depends::productTypes
+
+ A list of product types. Any enabled product in the project that has a
+ matching type will become a dependency of the product containing the Depends
+ item.
+
+ This property is mutually exclusive with the \l name and \l submodules
+ properties.
+
+ The \l required and \l profiles properties are ignored if this property is
+ set.
+
+ \nodefaultvalue
+*/
+/*!
+ \qmlproperty bool Depends::required
+
+ Setting this property to \c false creates a \e{soft dependency}, meaning
+ that it is not considered an error if the given module cannot be found.
+ In such a case, an instance of the respective module will be created, but
+ only the \c present property will be available for querying, and it will be
+ set to \c false.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string Depends::name
+
+ The name of the dependent product or module.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Depends::profiles
+
+ A list of profiles.
+
+ If the dependency is on a product and that product is going to be built for
+ more than one profile, you can specify here which instance of the product
+ the dependency is on.
+
+ See the \c profiles property of the \l{Module qbs}{qbs module} for more information.
+ An empty list means a dependency on all instances of the product with the given name,
+ regardless of their profile.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Depends::limitToSubProject
+
+ If \l productTypes is set and this property is \c true, only products that
+ are in the same sub-project as the product containing the Depends item are
+ considered.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty stringList Depends::submodules
- \section1 Depends Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li condition
- \li bool
- \li true
- \li Determines whether the dependency will actually be applied.
- \row
- \li versionAtLeast
- \li string
- \li undefined
- \li The minimum value that the dependency's \c version property needs to have. If the
- actual version is lower than that, loading the dependency will fail.
- The value consists of integers separated by dots.
- \row
- \li versionBelow
- \li string
- \li undefined
- \li A value that the dependency's \c version property must be lower than. If the
- actual version is equal to or higher than that, loading the dependency will fail.
- The value consists of integers separated by dots.
- \row
- \li productTypes
- \li stringList
- \li undefined
- \li A list of product types. Any enabled product in the project that has a matching type
- will become a dependency of the product containing the \c Depends item.
- This property is mutually exclusive with the \c name and \c submodules properties.
- The \c required and \c profiles properties are ignored if \c productTypes is set.
- \row
- \li required
- \li bool
- \li \c true
- \li Setting this property to \c false creates a \e{soft dependency}, meaning that it is not
- considered an error if the given module cannot be found. In such a case, an instance of
- the respective module will be created, but only the \c present property will be
- available for querying, and it will be set to \c false.
- \row
- \li name
- \li string
- \li undefined
- \li The name of the dependent product or module.
- \row
- \li profiles
- \li stringList
- \li \c{undefined}
- \li If the dependency is on a product and that product is going to be built for more than
- one profile, then you can specify here which instance of the product the dependency is on.
- See the \c profiles property of the \l{Module qbs}{qbs module} for more information.
- An empty list means a dependency on all instances of the product with the given name,
- regardless of their profile.
- \row
- \li limitToSubProject
- \li bool
- \li \c false
- \li If \c productTypes is set and this property is \c true, then only products that
- are in the same sub-project as the product containing the \c Depends item are
- considered.
- \row
- \li submodules
- \li stringList
- \li undefined
- \li The submodules of \c module to depend on, if applicable.
- \endtable
+ A list of submodules of the module to depend on, if applicable.
+ \nodefaultvalue
*/
diff --git a/doc/reference/items/language/export.qdoc b/doc/reference/items/language/export.qdoc
index 74e3cc4c4..b4b31ad1b 100644
--- a/doc/reference/items/language/export.qdoc
+++ b/doc/reference/items/language/export.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,20 +26,19 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage depends-item.html
- \page export-item.html
- \nextpage filetagger-item.html
- \ingroup list-of-language-items
+ \previouspage Depends
+ \nextpage FileTagger
+ \qmltype Export
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Export
- \title Export Item
\brief Exports dependencies and properties to other products.
- An \c Export item can appear inside a \l{Product Item}. It defines a Module with the product's
- name that can be depended on by other products.
- The properties attached to the Export item will take effect in all products that depend on the
- product inside which the Export item is defined.
+ An Export item can appear inside a \l{Product} item. It defines a \l{Module}
+ with the product's name that can be depended on by other products.
+ The properties attached to the Export item will take effect in all products
+ that depend on the product inside which the Export item is defined.
As an example, consider these two products:
\code
Product {
diff --git a/doc/reference/items/language/filetagger.qdoc b/doc/reference/items/language/filetagger.qdoc
index 55fbb4ac9..03790e724 100644
--- a/doc/reference/items/language/filetagger.qdoc
+++ b/doc/reference/items/language/filetagger.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,18 +26,17 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage export-item.html
- \page filetagger-item.html
- \nextpage group-item.html
- \ingroup list-of-language-items
+ \previouspage Export
+ \nextpage Group
+ \qmltype FileTagger
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.FileTagger
- \title FileTagger Item
\brief Assigns file tags to files.
This item assigns file tags to files.
- The FileTagger item can appear in \c{Product} items or \c{Module} items.
+ The FileTagger item can appear in \l{Product} items or \l{Module} items.
For every source artifact that has no file tag, \QBS will search for a
FileTagger with a pattern that matches the file name of the source
@@ -48,10 +47,12 @@
same highest priority are taken into account and their file tags are
accumulated.
- The FileTagger item can be attached to a product or a module.
- In the latter case, its effect is the same as if it had been attached to all products having
- a dependency on the respective module. For instance, the cpp module of \QBS has, among others,
- the following file tagger:
+ The FileTagger item can be attached to a product or a module. In the latter
+ case, its effect is the same as if it had been attached to all products
+ having a dependency on the respective module. For instance, the
+ \l{Module cpp}{cpp} module of \QBS has, among others, the following file
+ tagger:
+
\code
FileTagger {
patterns: "*.cpp"
@@ -59,12 +60,14 @@
}
\endcode
- As a result, the "cpp" tag is automatically attached to all files ending with ".cpp" in
- products depending on the cpp module. This causes them to be compiled, because a C++
- compiler rule has "cpp" in its list of matching input tags.
+ As a result, the \c "cpp" tag is automatically attached to all files ending
+ with \c ".cpp" in products depending on the \c cpp module. This causes them
+ to be compiled, because a C++ compiler rule has \c "cpp" in its list of
+ matching input tags.
- File taggers are disabled if file tags are set explicitly in a product or group.
- For example, the "cpp" tag is not attached to the cpp files in the following product:
+ File taggers are disabled if file tags are set explicitly in a \l{Product}
+ {product} or \l{Group}{group}. For example, the \c "cpp" tag is not attached
+ to the \c .cpp files in the following product:
\code
Product {
@@ -75,35 +78,33 @@
}
}
\endcode
+*/
+
+/*!
+ \qmlproperty stringList FileTagger::patterns
+ \since Qbs 1.0
+
+ A list of patterns to match against. Supports the usual wildcards '*', '?'
+ and '[]'.
+
+ Neither the list itself nor any of its elements may be empty.
+*/
+
+/*!
+ \qmlproperty list FileTagger::fileTags
+ \since Qbs 1.0
+
+ Tags to attach to a product's files. These can then be matched by a rule.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty int FileTagger::priority
+ \since Qbs 1.10
+
+ The priority of the FileTagger. A higher numerical value means a higher
+ priority.
- \section1 FileTagger Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Since
- \li Description
- \row
- \li patterns
- \li stringList
- \li none
- \li 1.0
- \li The patterns to match against. Supports the usual wildcards '*', '?' and '[]'.
- Neither the list itself nor any of its elements may be empty.
- \row
- \li fileTags
- \li list
- \li empty list
- \li 1.0
- \li Tags to attach to a product's files. These can then be matched by a rule.
- \row
- \li priority
- \li int
- \li 0
- \li 1.10
- \li The priority of the FileTagger. A higher numerical value means
- higher priority.
- \endtable
+ \defaultvalue 0
*/
diff --git a/doc/reference/items/language/group.qdoc b/doc/reference/items/language/group.qdoc
index 357780e0a..dae647060 100644
--- a/doc/reference/items/language/group.qdoc
+++ b/doc/reference/items/language/group.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -27,17 +27,18 @@
/*!
\contentspage list-of-language-items.html
- \previouspage filetagger-item.html
- \page group-item.html
- \nextpage module-item.html
- \ingroup list-of-language-items
+ \previouspage FileTagger
+ \nextpage Module
+ \qmltype Group
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Group
- \title Group Item
\brief Groups files in a product.
- This item is attached to a product and used to group files that have something in common.
+ This item is attached to a \l{Product}{product} and used to group files that
+ have something in common.
+
For example:
\code
@@ -94,85 +95,112 @@
}
\endcode
- Groups may also appear in modules, which causes the respective sources to be added to the
- products depending on said module (except if the \c filesAreTargets property is set, see below).
- Groups can be nested. In this case, child groups inherit the module properties and file
- tags as well as the prefix of their parent group. The condition of a child group gets logically
+ Groups may also appear in \l{Module}{modules}, which causes the respective
+ sources to be added to the products depending on the said module, unless
+ the \l{filesAreTargets} property is set.
+
+ Groups can be nested. In this case, child groups inherit the module
+ properties and \l{FileTagger}{file tags} as well as the prefix of their
+ parent group. The \l{condition} of a child group gets logically
ANDed with the one of its parent group.
+*/
+
+/*!
+ \qmlproperty string Group::name
+
+ The name of the group. Not used internally; mainly useful for IDEs.
+
+ \defaultvalue "Group x", where x is a unique number among all the
+ groups in the product.
+*/
+
+/*!
+ \qmlproperty list Group::files
+
+ The files in the group. Mutually exclusive with \l{fileTagsFilter}.
+ Relative paths are resolved using the parent directory of the file
+ that contains the Group item. However, if the \l{prefix} property is set to
+ an absolute path, then that one becomes the base directory.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty bool Group::filesAreTargets
+
+ If this property is \c true and the group is in a \l{Module}, the files in the
+ group will not become source artifacts of the product that depends on the module.
+ Instead, they are treated like target artifacts of products. That is, they will be
+ matched against the \l{Rule::inputsFromDependencies}{inputsFromDependencies}
+ file tag list of \l{Rule}{rules} in products that depend on the module.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty string Group::prefix
+
+ A string to prepend to all files. Slashes are allowed and have directory
+ semantics.
+
+ \defaultvalue The prefix of the parent group if one exists, otherwise empty.
+*/
+
+/*!
+ \qmlproperty list Group::fileTagsFilter
+
+ List of \l{Artifact::fileTags}{artifact.fileTags} to match. Any properties
+ set in this group will be applied to the product's artifacts whose file tags
+ match the ones listed here.
+
+ The file tags that the group's \l{fileTags} property specifies will
+ be added to the matching artifacts.
+
+ This property is mutually exclusive with \l{files}.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty bool Group::condition
+
+ Determines whether the files in the group are actually considered part of
+ the project.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty list Group::fileTags
+
+ A list of file tags to attach to the group's files. These can then be
+ matched by a \l{Rule}{rule}.
+
+ \note \l{FileTagger}{File taggers} are never applied to a file that has this
+ property set.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty bool Group::overrideTags
+
+ Determines how tags on files that are listed both at the top level of
+ a product (or the parent group, if there is one) and a group are handled.
+ If this property is \c true, then the \l{FileTagger}{file tags} set via the
+ group replace the ones set via the product or parent group.
+ If it is \c false, the \e {group tags} are added to the \e {parent tags}.
+
+ This property is ignored if \l{fileTagsFilter} is set.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty list Group::excludeFiles
+
+ A list of files that are \e subtracted from the files list. Useful when
+ using wildcards.
- \section1 Group Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li name
- \li string
- \li "Group x", where x is a unique number among all the groups in the product
- \li The name of the group. Not used internally; mainly useful for IDEs.
- \row
- \li files
- \li list
- \li empty list
- \li The files in the group. Mutually exclusive with fileTagsFilter.
- Relative paths are resolved using the parent directory of the file
- that contains the \c Group item. However, if the \c prefix property is set to an
- absolute path, then that one becomes the base directory.
- \row
- \li filesAreTargets
- \li bool
- \li false
- \li If this property is \c true and the group is in a module, then the files in the
- group will not become source artifacts of the product that depends on the module.
- Instead, they are treated like target artifacts of products, that is, they will be
- matched against the \c inputsFromDependencies file tag list of \l{Rule Item}{rules}
- in products that depend on the module.
- \row
- \li prefix
- \li string
- \li prefix of the parent group if one exists, otherwise empty
- \li A string to prepend to all files. Slashes are allowed and have directory semantics.
- \row
- \li fileTagsFilter
- \li list
- \li empty list
- \li Artifact file tags to match. Any properties set in this group will be applied
- to the product's artifacts whose file tags intersect with the ones
- listed here.
-
- The file tags that the group's \c{fileTags} property specifies will
- be added to the matching artifacts.
-
- This property is mutually exclusive with \c{files}.
- \row
- \li condition
- \li bool
- \li true
- \li Determines whether the files in the group are actually considered part of the project.
- \row
- \li fileTags
- \li list
- \li empty list
- \li Tags to attach to the group's files. These can then be matched by a rule.
- Note that file taggers are never applied to a file that has this property set.
- \row
- \li overrideTags
- \li bool
- \li true
- \li Determines how tags on files that are listed both at the top level of
- a product (or the parent group, if there is one) and a group are handled.
- If this property is true, then the file tags set via the group
- replace the ones set via the product or parent group.
- If it is false, the "group tags" are added to the "parent tags".
-
- This property is ignored if \c{fileTagsFilter} is set.
- \row
- \li excludeFiles
- \li list
- \li empty list
- \li For use with wildcards; the files in this list are "subtracted" from the files list.
- \endtable
+ \defaultvalue An empty list
*/
diff --git a/doc/reference/items/language/module.qdoc b/doc/reference/items/language/module.qdoc
index 1362b8c00..fb2238e0c 100644
--- a/doc/reference/items/language/module.qdoc
+++ b/doc/reference/items/language/module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,20 +26,19 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage group-item.html
- \page module-item.html
- \nextpage parameter-item.html
- \ingroup list-of-language-items
+ \previouspage Group
+ \nextpage Parameter
+ \qmltype Module
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Module
- \title Module Item
\brief Represents a collection of properties and items that can be loaded into a product.
- A \c Module item is a collection of properties and language items that are used for building a
- product if the product has a \l{Depends Item}{dependency} on the module.
+ A Module item is a collection of properties and language items that are used for building a
+ product if the product has a \l{Depends}{dependency} on the module.
The following (somewhat artificial) module pre-processes text files by removing certain
- characters from them. The module's name is \a{txt_processor}.
+ characters from them. The module's name is \c{txt_processor}.
\code
import qbs
@@ -79,7 +78,7 @@
}
\endcode
- And this is how a product would use the module:
+ And this is how a \l{Product} would use the module:
\code
Product {
@@ -96,12 +95,20 @@
Of course, normally the pre-processed files would not be the target artifacts of the product,
but rather serve as inputs to a different rule that will often come from a different module.
- How you make your own modules available to \QBS is explained
- \l{Custom Modules and Items}{here}.
+ For more information about how you make your own modules available to \QBS,
+ see \l{Custom Modules and Items}.
\section1 Special Property Values
- For every property defined in a module, \QBS provides the following special built-in values:
+ For every property defined in a module, \QBS provides the following special
+ built-in values:
+
+ \list
+ \li \l base
+ \li \l original
+ \li \l outer
+ \endlist
+
\section2 \c base
This value is useful when making use of inheritance. It stands for the value of the respective
property in the item one level up in the inheritance chain. For instance:
@@ -132,8 +139,7 @@
\section2 \c outer
This value is used in nested items, where it refers to the value of the respective property
- in the surrounding item. It is only valid in \l{Group Item}{groups} and
- \l{Properties Item}{Properties items}:
+ in the surrounding item. It is only valid in \l{Group} and \l{Properties} items:
\code
Product {
Depends { name: "mymodule" }
@@ -150,8 +156,8 @@
\section1 Dependency Parameters
Modules can declare dependency parameters. Those parameters can be set
- within \c{Depends} items. Rules of the module can read the parameters of
- dependencies and act accordingly.
+ within \l{Depends} items. \l{Rule}{Rules} of the module can read the
+ parameters of dependencies and act accordingly.
In the following example, the module \e{foo} declares the parameter
\c{ignore}. A dependency to \c{bar} then sets the parameter \c{foo.ignore}
@@ -180,74 +186,96 @@
Depends { name: "bar"; foo.ignore: true }
}
\endcode
+*/
+
+/*!
+ \qmlproperty stringList Module::additionalProductTypes
+
+ A list of elements that will be added to the \l{Product::type}{type}
+ property of a product that has a dependency on the module.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty bool Module::condition
+
+ Whether the module is enabled. If this property is \c false, the
+ surrounding Module item will not be considered in the module look-up.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool Module::present
+ \readonly
+
+ This property is \c false if and only if the respective \l{Depends} item had
+ its \l{Depends::required}{required} property set to \c false and the module
+ was not found.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty int Module::priority
+
+ The priority of this module instance. If there is more than one module
+ instance available for a module name, the module with the highest priority
+ is chosen.
+
+ \defaultvalue 0
+*/
+/*!
+ \qmlproperty script Module::setupBuildEnvironment
+
+ A script for setting up the environment in which a product is built.
+
+ The code in this script is treated as a function with the signature
+ \c{function(project, product)}.
+
+ Use the \l{Environment Service}{Environment} functions to alter the
+ environment.
+
+ The return value of this script is ignored.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty script Module::setupRunEnvironment
+
+ A script for setting up the environment in which a product is run.
+
+ The code in this script is treated as a function with the signature
+ \c{function(project, product, config)}.
+
+ The \c config parameter is a list of arbitrary strings that can be passed
+ via the \l{run} command. The values supported by specific modules are
+ listed in their respective documentation.
+
+ Use the \l{Environment Service}{Environment} functions to alter the
+ environment.
+
+ The return value of this script is ignored.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty script Module::validate
+
+ A script that is run after the module is loaded. It can be used to check
+ property values and throw errors in unexpected cases. The return value is
+ ignored.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Module::version
- \section1 Module Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li additionalProductTypes
- \li string list
- \li empty list
- \li The elements of this list will be added to the \c type property of a product
- that has a dependency on the module.
- \row
- \li condition
- \li bool
- \li \c true
- \li Controls whether the module is enabled. If this property is \c false, the
- surrounding \c Module item will not be considered in the module look-up.
- \row
- \li present
- \li bool
- \li \c true
- \li This property is read-only. Its value is \c false if and only if the respective
- \c Depends item had its \c required property set to \c false and the module was
- not found.
- \row
- \li priority
- \li int
- \li \c 0
- \li Defines the priority of this module instance. If there is more
- than one module instance available for a module name, then
- the module with the highest priority is chosen.
- \row
- \li setupBuildEnvironment
- \li script
- \li \c undefined
- \li Script for setting up the environment in which a product is built.
- The code in this script is treated as a function with the signature
- \c{function(project, product)}.
- Use the \l{Environment Service}{Environment} functions to alter the environment.
- The return value of this script is ignored.
- \row
- \li setupRunEnvironment
- \li script
- \li \c undefined
- \li Script for setting up the environment in which a product is run.
- The code in this script is treated as a function with the signature
- \c{function(project, product, config)}.
- The \c config parameter is a list of arbitrary strings that can be passed via
- the \l{run} command. The concrete values supported by specific modules
- are listed in their respective documentation.
- Use the \l{Environment Service}{Environment} functions to alter the environment.
- The return value of this script is ignored.
- \row
- \li validate
- \li script
- \li \c undefined
- \li Script that is run after the module is loaded. It can be used to check property
- values and throw errors in unexpected cases. The return value is ignored.
- \row
- \li version
- \li string
- \li \c undefined
- \li The module's version. It consists of integer values separated by dots. You can check
- for specific values of this property in a \l{Depends item}{Depends} item.
- \endtable
+ The module's version. It consists of integer values separated by dots. You
+ can check for specific values of this property in a \l{Depends} item.
*/
diff --git a/doc/reference/items/language/parameter.qdoc b/doc/reference/items/language/parameter.qdoc
index da700f3da..c544af2d7 100644
--- a/doc/reference/items/language/parameter.qdoc
+++ b/doc/reference/items/language/parameter.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,21 +26,19 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage module-item.html
- \page parameter-item.html
- \nextpage parameters-item.html
- \ingroup list-of-language-items
+ \previouspage Module
+ \nextpage Parameters
+ \qmltype Parameter
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Parameter
- \title Parameter Item
\brief Declares a dependency parameter.
- The \c{Parameter} item declares a dependency parameter.
- This item can only appear within \c{Module}
- items and \c{Export} items.
+ The Parameter item declares a dependency parameter. It can appear only
+ within \l{Module} and \l{Export} items.
- The \c{Parameter} item contains exactly one property declaration.
+ The Parameter item contains exactly one property declaration.
Example:
\code
@@ -49,6 +47,6 @@
}
\endcode
- The \l{Module Item#dependency-parameters}{\c{Module} item page}
- has more information about dependency parameters.
+ For more information about dependency parameters, see
+ \l{Module#dependency-parameters}{Module - Dependency Parameters}.
*/
diff --git a/doc/reference/items/language/parameters.qdoc b/doc/reference/items/language/parameters.qdoc
index afeb9f30e..6a2e779de 100644
--- a/doc/reference/items/language/parameters.qdoc
+++ b/doc/reference/items/language/parameters.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,19 +26,17 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage parameter-item.html
- \page parameters-item.html
- \nextpage probe-item.html
- \ingroup list-of-language-items
+ \previouspage Parameter
+ \nextpage Probe
+ \qmltype Parameters
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Parameters
- \title Parameters Item
- \brief Defines default values for dependency parameters within
- \c{Export} items.
+ \brief Defines default values for dependency parameters within Export items.
- The \c{Parameters} item defines default values for dependency
- parameters within \c{Export} items.
+ The Parameters item defines default values for dependency parameters within
+ \l{Export} items.
Example:
\code
@@ -62,7 +60,8 @@
Depends { name: "foo"; cpp.link: true }
\endcode
- The parameters item contains a number of property bindings where
- each property must be a \l{Parameter Item}{properly declared}
- \l{Module Item#dependency_parameters}{dependency parameter}.
+ The Parameters item contains a number of property bindings where
+ each property must be a properly declared dependency parameter.
+ For more information, see \l{Parameter} and
+ \l{Module#dependency-parameters}{Module - Dependency Parameters}.
*/
diff --git a/doc/reference/items/language/probe.qdoc b/doc/reference/items/language/probe.qdoc
index d2684b4c2..ec1455b8f 100644
--- a/doc/reference/items/language/probe.qdoc
+++ b/doc/reference/items/language/probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,17 +26,16 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage parameters-item.html
- \page probe-item.html
- \nextpage product-item.html
- \ingroup list-of-language-items
+ \previouspage Parameters
+ \nextpage Product
+ \qmltype Probe
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Probe
- \title Probe Item
\brief Locates files outside the project.
- \c Probe items can appear inside \l{Product Item}{products} and \l{Project Item}{projects}.
+ Probe items can appear inside \l{Product} and \l{Project} items.
They are run prior to building, for instance to locate dependent headers, libraries, and other
files outside the project directory whose locations are not known ahead of time.
Probes can be parameterized via their properties and typically store results in
@@ -58,31 +57,28 @@
\note Because Probes often invoke external processes, which is relatively expensive compared
to evaluating normal properties, their results are cached. To force re-evaluation
- of a Probe, you can supply the \c{--force-probe-execution} command-line option.
+ of a Probe, you can supply the \c{--force-probe-execution} command-line option
+ to the \l{build} command.
+*/
+
+/*!
+ \qmlproperty bool Probe::condition
- \section1 Probe Properties
+ Determines whether the probe will actually be run.
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li condition
- \li bool
- \li true
- \li Determines whether the probe will actually be run.
- \row
- \li found
- \li bool
- \li undefined
- \li Indicates whether the probe was run successfully. Set by \c configure.
- \row
- \li configure
- \li script
- \li undefined
- \li Script that is executed when the probe is run.
- \endtable
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool Probe::found
+
+ Indicates whether the probe was run successfully. Set by \l{configure}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty script Probe::configure
+ A script that is executed when the probe is run.
*/
diff --git a/doc/reference/items/language/product.qdoc b/doc/reference/items/language/product.qdoc
index 9574190dc..525311b0d 100644
--- a/doc/reference/items/language/product.qdoc
+++ b/doc/reference/items/language/product.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,17 +26,16 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage probe-item.html
- \page product-item.html
- \nextpage profile-item.html
- \ingroup list-of-language-items
+ \previouspage Probe
+ \nextpage Profile
+ \qmltype Product
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Product
- \title Product Item
\brief Represents the result of a build process.
- A \e product typically represents the result of a build process. It specifies a set of
+ A Product typically represents the result of a build process. It specifies a set of
input and output files and a way to transform the former into the latter. For example, the
following product sets up a very simple C++ application:
\code
@@ -47,8 +46,9 @@
Depends { name: "cpp" }
}
\endcode
- The \c type property specifies what will be built (an executable). The \c files property specifies
- the input files (one C++ source file), and the \c Depends item pulls in the logic from the \c cpp module
+ The \l{type} property specifies what will be built (an executable). The
+ \l{files} property specifies the input files (one C++ source file), and the
+ \l{Depends} item pulls in the logic from the \c cpp module
about how to do the necessary transformations.
For some often-used types of products, \QBS pre-defines special derived items that save
users some typing. These are:
@@ -68,148 +68,208 @@
Any property \c prop attached to this item is available in sub-items as \c product.prop, as
well as in modules that are loaded from this product.
- \section1 Product Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li builtByDefault
- \li bool
- \li true
- \li If false, the product will only be built if this is explicitly requested,
- either by listing the product name as an argument to \c --products or by giving
- the \c build command the \c --all-products option.
- \row
- \li condition
- \li bool
- \li true
- \li If false, the product will not be built.
- \row
- \li name
- \li string
- \li empty string
- \li The name of the product. Used to identify the product in a \c Depends item, for
- example. The value of this property must be a simple JavaScript expression that
- does not depend on module properties or values that are non-local to this product.
- \div {style="font-size:80%"}
- \code
- CppApplication {
- name: "hello" + "world"
- // valid
- }
- CppApplication {
- name: "app_" + qbs.targetOS.join("_")
- // invalid
- }
- \endcode
- \enddiv
- To change the name of your product's target artifact, modify \c{Product.targetName}
- instead.
- \row
- \li type
- \li stringList
- \li empty list
- \li The file tags matching the product's target artifacts.
- \row
- \li targetName
- \li string
- \li \c{name} with illegal file name characters replaced by underscores
- \li The base file name of the product's target artifacts.
- \row
- \li destinationDirectory
- \li string
- \li product.buildDirectory
- \li The directory where the target artifacts will be located. If a relative path is
- given, the base directory will be \c project.buildDirectory.
- \row
- \li files
- \li stringList
- \li empty list
- \li A list of source files. Syntactic sugar to save a \c Group item for simple products.
- Relative paths are resolved using the parent directory of the project file
- that sets the property.
- \row
- \li excludeFiles
- \li stringList
- \li empty list
- \li A list of source files not to include. Useful with wildcards.
- For more information, see \l {Group Item}.
-
- \row
- \li consoleApplication
- \li bool
- \li linker-dependent
- \li If true, a console application is generated. If false, a GUI application is generated.
- Only takes effect on Windows.
- This property also influences the default application type on Apple platforms.
- If true, an application bundle is generated. If false, a normal executable is
- generated.
- \row
- \li qbsSearchPaths
- \li stringList
- \li project.qbsSearchPaths
- \li See the documentation of the \l {Project Item} property of the same name.
- The value set here will be merged with the one inherited from
- the project.
- \row
- \li version
- \li string
- \li undefined
- \li The version number of the product. Used in shared library filenames and generated
- Info.plist files in Apple application and framework bundles, for example.
- \endtable
+ \section1 Multiplexing Properties
The following properties are relevant for product multiplexing only.
- Unless multiplexing is desired, they can be left at their default values.
-
- \note We do not promise backwards compatibility for multiplexing properties as they are likely
- to change in future \QBS versions.
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li aggregate
- \li bool
- \li \c{undefined}
- \li If \c{true}, an aggregate product will be created that has dependencies on all
- multiplex instances of this product.
- \row
- \li multiplexedType
- \li stringList
- \li \c{undefined}
- \li Specifies the product type for the multiplexed product instances.
- \row
- \li multiplexByQbsProperties
- \li stringList
- \li \c{["profiles"]}
- \li Specifies which properties of the qbs module will be used for product multiplexing.
- Its value must be a subset of \c{["architectures", "buildVariants", "profiles"]}.
- \endtable
-
- The following properties are automatically set by \QBS and cannot be changed by the user:
-
- \table
- \header
- \li Property
- \li Type
- \li Description
- \row
- \li buildDirectory
- \li path
- \li The build directory for this product. This is the directory where generated files
- are placed.
- \row
- \li sourceDirectory
- \li path
- \li The source directory for this product. This is the directory of the file where this
- product is defined.
- \endtable
+ Unless multiplexing is desired, they can be left at their default values:
+
+ \list
+ \li \l{aggregate}
+ \li \l{multiplexedType}
+ \li \l{multiplexByQbsProperties}
+ \endlist
+
+ \note We do not promise backwards compatibility for multiplexing properties
+ as they are likely to change in future \QBS versions.
+
+ \section1 Read-Only Properties
+
+ The following properties are automatically set by \QBS and cannot be
+ changed by the user:
+
+ \list
+ \li \l{buildDirectory}
+ \li \l{sourceDirectory}
+ \endlist
+*/
+
+/*!
+ \qmlproperty bool Product::builtByDefault
+
+ Determines whether the product will be built.
+
+ If \c false, the product will only be built if this is explicitly requested,
+ either by listing the product name as an argument to \c --products or by
+ giving the \l{build} command the \c --all-products option.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool Product::condition
+
+ Determines whether the product will be built.
+
+ If \c false, the product will not be built.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string Product::name
+
+ The name of the product. Used to identify the product in a \l{Depends} item, for
+ example. The value of this property must be a simple JavaScript expression that
+ does not depend on module properties or values that are non-local to this product.
+
+ \code
+ CppApplication {
+ name: "hello" + "world"
+ // valid
+ }
+ CppApplication {
+ name: "app_" + qbs.targetOS.join("_")
+ // invalid
+ }
+ \endcode
+
+ To change the name of your product's target artifact, modify \l{targetName}
+ instead.
+
+ \defaultvalue An empty string
+*/
+
+/*!
+ \qmlproperty stringList Product::type
+
+ The file tags matching the product's target artifacts.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty string Product::targetName
+
+ The base file name of the product's target artifacts.
+
+ \defaultvalue The value of \l{name} with illegal file name characters
+ replaced by underscores.
+*/
+
+/*!
+ \qmlproperty string Product::destinationDirectory
+
+ The directory where the target artifacts will be located. If a relative path
+ is given, the base directory will be \l{Project::buildDirectory}
+ {project.buildDirectory}.
+
+ \defaultvalue \c{product.buildDirectory}
+*/
+
+/*!
+ \qmlproperty stringList Product::files
+
+ A list of source files. Syntactic sugar to save a \l{Group} item for simple
+ products.
+
+ Relative paths are resolved using the parent directory of the project file
+ that sets the property.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty stringList Product::excludeFiles
+
+ A list of source files not to include. Useful with wildcards.
+ For more information, see \l{Group}.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty bool Product::consoleApplication
+
+ On Windows, determines whether a console or GUI application is generated.
+
+ If \c true, a console application is generated. If \c false, a GUI
+ application is generated.
+
+ On Apple platforms, influences the default application type.
+
+ If \c true, an application bundle is generated. If \c false, a normal
+ executable is generated.
+
+ \defaultvalue Linker-dependent
+*/
+
+/*!
+ \qmlproperty stringList Product::qbsSearchPaths
+
+ project.qbsSearchPaths
+
+ The value set here will be merged with the value of
+ \l{Project::qbsSearchPaths}{project.qbsSearchPaths}.
+
+ \defaultvalue \l{Project::qbsSearchPaths}{project.qbsSearchPaths}
+*/
+
+/*!
+ \qmlproperty string Product::version
+
+ The version number of the product. Used in shared library filenames and generated
+ Info.plist files in Apple application and framework bundles, for example.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Product::aggregate
+
+ If \c{true}, an aggregate product will be created that has dependencies on all
+ multiplex instances of this product.
+
+ \note If you do not want to do multiplexing, you can use the default value
+ \c{undefined}.
+*/
+
+/*!
+ \qmlproperty stringList Product::multiplexedType
+
+ Specifies the product type for the multiplexed product instances.
+
+ \note If you do not want to do multiplexing, you can use the default value
+ \c{undefined}.
+*/
+
+/*!
+ \qmlproperty stringList Product::multiplexByQbsProperties
+
+ Specifies which properties of the qbs module will be used for product multiplexing.
+ Its value must be a subset of \c{["architectures", "buildVariants", "profiles"]}.
+
+ \note If you do not want to do multiplexing, you can use the default value
+ \c{["profiles"]}.
+*/
+
+/*!
+ \qmlproperty path Product::buildDirectory
+ \readonly
+
+ The build directory for this product. This is the directory where generated
+ files are placed.
+
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
+*/
+
+/*!
+ \qmlproperty path Product::sourceDirectory
+ \readonly
+
+ The source directory for this product. This is the directory of the file
+ where this product is defined.
+
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
*/
diff --git a/doc/reference/items/language/profile.qdoc b/doc/reference/items/language/profile.qdoc
index 072feb6b2..b114eefab 100644
--- a/doc/reference/items/language/profile.qdoc
+++ b/doc/reference/items/language/profile.qdoc
@@ -26,14 +26,13 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage product-item.html
- \page profile-item.html
- \nextpage project-item.html
- \ingroup list-of-language-items
+ \previouspage Product
+ \nextpage Project
+ \qmltype Profile
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Properties
- \title Profile Item
\brief Creates a profile within the project
The profiles used by \QBS are normally set up on a user's machine and are then available
@@ -62,34 +61,34 @@
The project in the above example can be built in a particular well-known environment
without any additional setup.
- \c Profile items can appear inside \l{Product Item}{Product} and \l{Project Item}{Project}
- items.
+ \c Profile items can appear inside \l{Product} and \l{Project} items.
+*/
+
+/*!
+ \qmlproperty string Profile::baseProfile
+
+ The name of a profile from which this profile inherits. If the same property is
+ set in both this profile and the base profile, the value from this profile
+ takes precedence.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Profile::condition
+
+ Determines whether this profile can be used.
+
+ If this property is set to \c false, the profile cannot be used.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty string Profile::name
- \section1 Profile Properties
+ The name under which the profile can be referenced later. Setting this property
+ is required. The value must be unique among all profiles in an entire project.
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li baseProfile
- \li \c string
- \li \c undefined
- \li The name of a profile from which this profile inherits. If the same property is
- set in both this profile and the base profile, the value from this profile
- takes precedence.
- \row
- \li condition
- \li \c bool
- \li \c true
- \li If this property is set to \c false, the profile cannot be used.
- \row
- \li name
- \li \c string
- \li \c undefined
- \li The name under which the profile can be referenced later. Setting this property
- is required. The value must be unique among all profiles in an entire project.
- \endtable
+ \nodefaultvalue
*/
diff --git a/doc/reference/items/language/project.qdoc b/doc/reference/items/language/project.qdoc
index 18330f574..d2db644f6 100644
--- a/doc/reference/items/language/project.qdoc
+++ b/doc/reference/items/language/project.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,17 +26,16 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage profile-item.html
- \page project-item.html
- \nextpage properties-item.html
- \ingroup list-of-language-items
+ \previouspage Profile
+ \nextpage Properties
+ \qmltype Project
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Project
- \title Project Item
\brief Represents a collection of products and properties.
- A \c Project item represents a collection of of products. In a
+ A Project item represents a collection of of products. In a
non-trivial project, these products are typically defined in their own files and
referenced in the main project file:
\code
@@ -49,66 +48,79 @@
\endcode
Any property \c prop attached to this item is available in sub-items as \c project.prop.
- While the root of the item hierarchy is always a \c Project, this kind of item can also
- appear further down the hierarchy. Such sub-projects are ususally introduced to group products.
- See the \l{SubProject Item} for details.
-
- \note If your project consists of only one product, the \c Project item can be omitted.
-
- \section1 Project Properties
-
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li buildDirectory
- \li path
- \li n/a
- \li The build directory of the top-level project. This property is read-only.
- \row
- \li name
- \li string
- \li basename of the file the project is defined in
- \li The project name. Only relevant for e.g. displaying a project tree in an IDE.
- \row
- \li profile
- \li string
- \li n/a
- \li The top-level profile for building the project. This property is read-only and
- is set by \QBS when the project is being set up.
- \row
- \li condition
- \li bool
- \li true
- \li Whether the project is enabled. If false, no products or sub-projects will be
- collected.
- \row
- \li qbsSearchPaths
- \li stringList
- \li empty
- \li These paths are searched for imports and modules in addition to the ones listed
- in \c{preferences.qbsSearchPaths}. The value set here is merged with the value
- inherited from the parent project, if there is one. The result is inherited by
- all products in the project.
- \row
- \li references
- \li path list
- \li empty
- \li A list of files from which to import products. This is equivalent to defining
- the respective \c Product items directly under this \c Project item.
- \row
- \li sourceDirectory
- \li path
- \li n/a
- \li The directory where the file containing the top-level \c Project item is located.
- This property is read-only.
- \row
- \li minimumQbsVersion
- \li string
- \li "1.3.0"
- \li The minimum version of qbs that is needed to build this project.
- \endtable
+ While the root of the item hierarchy is always a Project, this kind of item
+ can also appear further down the hierarchy. Such sub-projects are usually
+ introduced to group products. See \l{SubProject} for details.
+
+ \note If your project consists of only one product, the Project item can be
+ omitted.
+*/
+
+/*!
+ \qmlproperty path Project::buildDirectory
+ \readonly
+
+ The build directory of the top-level project.
+*/
+
+/*!
+ \qmlproperty string Project::name
+
+ The project name. Only relevant when displaying a project tree in an IDE,
+ for example.
+
+ \defaultvalue The basename of the file that defines the project.
+*/
+
+/*!
+ \qmlproperty string Project::profile
+ \readonly
+
+ The top-level \l{Profile}{profile} for building the project. This property
+ is set by \QBS when the project is being set up.
+*/
+
+/*!
+ \qmlproperty bool Project::condition
+
+ Whether the project is enabled. If \c false, no \l{Product}{products} or
+ sub-projects will be collected.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty stringList Project::qbsSearchPaths
+
+ A list of paths that are searched for imports and modules in addition to the ones listed
+ in \c{preferences.qbsSearchPaths}. The value set here is merged with the value
+ inherited from the parent project, if there is one. The result is inherited by
+ all products in the project.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty pathList Project::references
+
+ A list of files from which to import products. This is equivalent to defining
+ the respective \l{Product} items directly under this Project item.
+
+ \defaultvalue An empty list
+*/
+
+/*!
+ \qmlproperty path Project::sourceDirectory
+ \readonly
+
+ The directory where the file containing the top-level Project item is
+ located.
+*/
+
+/*!
+ \qmlproperty string Project::minimumQbsVersion
+
+ The minimum version of \QBS that is needed to build this project.
+
+ \defaultvalue \c "1.3.0"
*/
diff --git a/doc/reference/items/language/properties.qdoc b/doc/reference/items/language/properties.qdoc
index 8ea2496b9..a4d0d46a3 100644
--- a/doc/reference/items/language/properties.qdoc
+++ b/doc/reference/items/language/properties.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,20 +26,20 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage project-item.html
- \page properties-item.html
- \nextpage propertyoptions-item.html
- \ingroup list-of-language-items
+ \previouspage Project
+ \nextpage PropertyOptions
+ \qmltype Properties
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Properties
- \title Properties Item
\brief Provides conditional setting of properties.
- \note This documents the \c Properties item in the context of products. Usage within
- a \c SubProject item is described \l{SubProject Item}{here}.
+ \note This topic documents the Properties item in the context of \l{Product}
+ {products}. For more information about using it in sub-projects, see
+ \l{SubProject}.
- The \c Properties item is an auxiliary item for setting multiple property values conditionally.
+ The Properties item is an auxiliary item for setting multiple property values conditionally.
In the following example, two properties are set if the project is built for Windows:
\code
@@ -52,7 +52,7 @@
}
\endcode
- Multiple \c Properties items can be specified to set properties dependent on different
+ Multiple Properties items can be specified to set properties dependent on different
conditions. The order of appearance is important. Semantics are similar to if-else-chains.
The following example
\code
@@ -90,7 +90,8 @@
}
\endcode
- In \c Properties items one can access the \l{Module Item#outer}{outer value} of a property.
+ In Properties items, one can access the \l{Module#outer}{outer value} of a
+ property.
\code
Product {
Properties {
@@ -105,29 +106,25 @@
}
\endcode
- We suggest to use the \c Properties item for mutually exclusive conditions only. It is
+ We suggest to use the Properties item for mutually exclusive conditions only. It is
especially useful if there are several properties to set, based on the same condition.
+*/
+
+/*!
+ \qmlproperty bool Properties::condition
+
+ The condition to be used for the other bindings in this item.
+
+ This is a mandatory property that has no default value.
+*/
+
+/*!
+ \qmlproperty bool Properties::overrideListProperties
- \section1 List of Properties
+ List properties set within this item will override the values coming from
+ modules, rather than getting merged with them, which is the default behavior.
+ Use this in the rare case that a module you depend on inserts a value into
+ a list property that is problematic for some product.
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li condition
- \li bool
- \li none - must be specified
- \li The condition to be used for the other bindings in this item.
- \row
- \li overrideListProperties
- \li bool
- \li \c false
- \li List properties set within this item will override the values coming from
- modules, rather than getting merged with them, which is the default behavior.
- Use this in the rare case that a module you depend on inserts a value into
- a list property that is problematic for some product.
- \endtable
+ \defaultvalue \c false
*/
diff --git a/doc/reference/items/language/propertyoptions.qdoc b/doc/reference/items/language/propertyoptions.qdoc
index 37399c9f3..a953489a0 100644
--- a/doc/reference/items/language/propertyoptions.qdoc
+++ b/doc/reference/items/language/propertyoptions.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,43 +26,39 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage properties-item.html
- \page propertyoptions-item.html
- \nextpage rule-item.html
- \ingroup list-of-language-items
+ \previouspage Properties
+ \nextpage Rule
+ \inqmlmodule QbsLanguageItems
+ \qmltype PropertyOptions
\ingroup list-of-items
\keyword QML.PropertyOptions
- \title PropertyOptions Item
\brief Provides inline documentation for properties within product and module items.
- A \c PropertyOptions item can appear inside a \l{Product Item} or \l{Module Item} to provide
- inline documentation for properties.
+ A PropertyOptions item can appear inside a \l{Product} or \l{Module} item to
+ provide inline documentation for properties.
+*/
+
+/*!
+ \qmlproperty stringList PropertyOptions::allowedValues
+
+ A list of the values permitted by the property.
+
+ The default value, \c{undefined}, indicates that any value is permitted.
+*/
- \section1 PropertyOptions Properties
+/*!
+ \qmlproperty string PropertyOptions::description
+
+ A brief description of the property.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string PropertyOptions::name
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li allowedValues
- \li stringList
- \li undefined
- \li A list of the values permitted by the property. \c{undefined} indicates that any value
- is permitted.
- \row
- \li description
- \li string
- \li undefined
- \li A brief description of the property.
- \row
- \li name
- \li string
- \li undefined
- \li The name of the property to document.
- \endtable
+ The name of the property to document.
+ \nodefaultvalue
*/
diff --git a/doc/reference/items/language/rule.qdoc b/doc/reference/items/language/rule.qdoc
index b4066a43b..215cded95 100644
--- a/doc/reference/items/language/rule.qdoc
+++ b/doc/reference/items/language/rule.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,19 +26,18 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage propertyoptions-item.html
- \page rule-item.html
- \nextpage scanner-item.html
- \ingroup list-of-language-items
+ \previouspage PropertyOptions
+ \nextpage Scanner
+ \qmltype Rule
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Rule
- \title Rule Item
\brief Creates transformers for input tags.
In \QBS, rules create \e transformers that produce output files from input files.
The term \e transformer refers to a list of \l{Command and JavaScriptCommand}{commands}.
- These commands are created in a rule's \e {prepare script}. They do the actual work, either
+ These commands are created in a rule's \l{prepare} script. They do the actual work, either
directly or by executing external commands.
\section1 A Simple Example
@@ -59,10 +58,10 @@
inputs: ["txt_input"]
\endcode
Here we are specifying that our rule is interested in input files that have the tag
- "txt_input". Such files could be source files, in which case you would tag them
- using a \l{Group Item}{Group}. Or they could in turn get generated by a different rule,
+ \c "txt_input". Such files could be source files, in which case you would tag them
+ using a \l{Group}. Or they could in turn get generated by a different rule,
in which case that rule would assign the file tag.
- The files matching the tag will be available in the prepare script under the name
+ The files matching the tag will be available in the \l{prepare} script under the name
\c inputs (see \l{inputs and outputs}{The inputs and outputs Variables}).
\code
Artifact {
@@ -74,13 +73,13 @@
whose name is the same as the input file, but with an additional extension. Because we are
giving a relative path, \QBS will prepend that path by the product's build directory.
- In addition, we tell \QBS that the output files should get the file tag "txt_output". This
+ In addition, we tell \QBS that the output files should get the file tag \c "txt_output". This
enables other rules to use these files as inputs. You must always assign suitable file tags
to your output artifacts, or the rule will not be run.
See \l{Rules and Product Types} for details.
If you want to create more than one output file per input file, you simply provide multiple
- \c Artifact items. The set of output artifacts will be available in the prepare script
+ \l Artifact items. The set of output artifacts will be available in the prepare script
under the name \c outputs (see \l{inputs and outputs}{The inputs and outputs Variables}).
\code
@@ -178,127 +177,171 @@
the \c cpp module (the rule that runs the compiler).
\li The rule found in the previous step takes inputs of type \c{"cpp"}. No rule is found
that creates such artifacts, but we do have a source file with a matching type (because
- the \c cpp module contains a \l{FileTagger item}{FileTagger} which attached that type
+ the \c cpp module contains a \l{FileTagger} which attached that type
to \c{"main.cpp"} due to its file extension).
\li Now that there is a chain of rules leading from a source file tag to the product type,
the commands of these rules are executed one after the other until we end up with
our executable.
\endlist
- \section1 Rule Properties
+*/
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li multiplex
- \li bool
- \li false
- \li Determines whether this is a multiplex rule.
- \row
- \li inputs
- \li string list
- \li undefined
- \li File tags the input artifacts must match.
- All output artifacts will depend on all artifacts in the product with
- the given input file tags. Also these artifacts are available in the
- inputs variable of the prepare script.
- \row
- \li auxiliaryInputs
- \li string list
- \li undefined
- \li A list of file tags. This rule will be dependent on every other rule
- that produces artifacts that are compatible with \a{auxiliaryInputs}.
- Unlike \a{inputs}, the property \a{auxiliaryInputs} has no effect on the content of the
- \a{inputs} variable in the \a{prepare} script.
- All rules in this product and rules of product dependencies that produce target
- artifacts are considered.
- \row
- \li excludedAuxiliaryInputs
- \li string list
- \li undefined
- \li A list of file tags. Connections to rules that produce these file tags are prevented.
- This property has no effect on the content of the \a{inputs} variable in the \a{prepare}
- script.
- \row
- \li inputsFromDependencies
- \li string list
- \li undefined
- \li File tags the artifacts of product dependencies must match.
- For example, the product \a foo might appear as follows in the current product:
- \code
- Depends {
- name: "foo"
- }
- \endcode
- All artifacts of \a foo that match the given
- file tags will appear in the \a inputs variable of the prepare
- script.
- \row
- \li outputArtifacts
- \li array of objects
- \li undefined
- \li An array of output artifacts, specified as JavaScript objects.
- Example:
- \code
- outputArtifacts: [{
- filePath: "myfile.cpp",
- fileTags: ["cpp"],
- cpp: { cxxLanguageVersion: "c++11" }
- }]
- \endcode
- For a description of the possible properties, see the documentation of the
- \l{Artifact item}.
- Output artifacts can be specified either by \c{Rule.outputArtifacts} or by \c{Artifact}
- items. Use \c{Rule.outputArtifacts} if the set of outputs is not fixed but dependent on
- the input's content. If no file tags are provided, \QBS will apply all
- \l{FileTagger Item}{file taggers} known in the current context to the output file name.
- The user may set the property \c{explicitlyDependsOn} on artifact objects, which is
- similar to \c{Rule.explicitlyDependsOn}.
- \row
- \li outputFileTags
- \li string list
- \li undefined
- \li If output artifacts are specified by \c{Rule.outputArtifacts}, then
- \c{Rule.outputFileTags} must be a list of file tags the rule potentially produces.
- \row
- \li condition
- \li bool
- \li true
- \li If true, the rule is enabled, otherwise it does nothing.
- \row
- \li explicitlyDependsOn
- \li string list
- \li undefined
- \li Each artifact that matches the file tags in \a explicitlyDependsOn
- is added to the dependencies of each output node. All artifacts in the current product
- and target artifact of products that this product depends on are considered.
- \row
- \li prepare
- \li script
- \li undefined
- \li Script that prepares the commands to transform the inputs to outputs.
- The code in this script is treated as a function with the signature
- \c{function(project, product, inputs, outputs, input, output, explicitlyDependsOn)}.
- The argument \c{input} is \c{undefined} if there's more than one input artifact for this
- rule. Similarly, \c{output} is only defined if there's exactly one output artifact.
- \row
- \li requiresInputs
- \li bool
- \li \c true if the rule declares any inputs, \c false otherwise
- \li Specifies whether a rule's commands should be created even if no inputs are available.
- Enabling this property can be useful in cases where you potentially have input files,
- but it is possible that there are none and you want to create the output file in
- any case.
- \row
- \li alwaysRun
- \li bool
- \li false
- \li If true, the rule's commands are always executed, even if all output artifacts
- are up to date.
- \endtable
+/*!
+ \qmlproperty bool Rule::multiplex
+
+ Determines whether this is a multiplex rule.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty stringList Rule::inputs
+
+ A list of file tags the input artifacts must match.
+
+ All output artifacts will depend on all artifacts in the product with
+ the given input file tags. Also, these artifacts are available in the
+ \c inputs variable of the \l{prepare} script.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Rule::auxiliaryInputs
+
+ A list of file tags. This rule will be dependent on every other rule that
+ produces artifacts that are compatible with the value of this property.
+
+ Unlike \l{inputs}, this property has no effect on the content of the
+ \c inputs variable of the \l{prepare} script.
+
+ All rules in this product and rules of product dependencies that produce
+ target artifacts are considered.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Rule::excludedAuxiliaryInputs
+
+ A list of file tags. Connections to rules that produce these file tags are
+ prevented. This property has no effect on the content of the \c inputs
+ variable in the \l{prepare} script.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Rule::inputsFromDependencies
+
+ A list of file tags that the artifacts of product dependencies must match.
+
+ For example, the product \a foo might appear as follows in the current
+ product:
+
+ \code
+ Depends {
+ name: "foo"
+ }
+ \endcode
+
+ All artifacts of \a foo that match the given file tags will appear in the
+ \c inputs variable of the \l{prepare} script.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty array Rule::outputArtifacts
+
+ An array of output artifacts, specified as JavaScript objects.
+
+ For example:
+
+ \code
+ outputArtifacts: [{
+ filePath: "myfile.cpp",
+ fileTags: ["cpp"],
+ cpp: { cxxLanguageVersion: "c++11" }
+ }]
+ \endcode
+
+ For a description of the possible properties, see the documentation of the
+ \l{Artifact} item.
+
+ Output artifacts can be specified either by this property or by \l{Artifact}
+ items. Use this property if the set of outputs is not fixed but depends the
+ input's content. If no file tags are provided, \QBS will apply all
+ \l{FileTagger}{file taggers} known in the current context to the output file
+ name.
+
+ The user may set the property \c{explicitlyDependsOn} on artifact objects, which is
+ similar to \c{Rule.explicitlyDependsOn}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Rule::outputFileTags
+
+ If output artifacts are specified by \l{outputArtifacts}, this property must
+ specify a list of file tags that the rule potentially produces.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Rule::condition
+
+ If \c true, the rule is enabled, otherwise it does nothing.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty stringList Rule::explicitlyDependsOn
+
+ A list of file tags. Each artifact that matches the file tags is added to
+ the dependencies of each output node. All artifacts in the current product
+ and target artifacts of products that this product depends on are
+ considered.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty script Rule::prepare
+
+ A script that prepares the commands to transform the inputs to outputs.
+
+ The code in this script is treated as a function with the signature
+ \c{function(project, product, inputs, outputs, input, output, explicitlyDependsOn)}.
+
+ The argument \c{input} is \c{undefined} if there's more than one input
+ artifact for this rule. Similarly, \c{output} is only defined if there is
+ exactly one output artifact.
+
+ \nodefaultvalue
+
+*/
+
+/*!
+ \qmlproperty bool Rule::requiresInputs
+
+ Specifies whether a rule's commands should be created even if no inputs are
+ available.
+
+ Enabling this property can be useful if you are not sure whether input
+ files exist, and you want \QBS to create an output file even if they do not.
+
+ Set to \c true if the rule declares any inputs, \c false otherwise.
+*/
+
+/*!
+ \qmlproperty bool Rule::alwaysRun
+
+ If \c true, the rule's commands are always executed, even if all output
+ artifacts are up to date.
+ \defaultvalue \c false
*/
diff --git a/doc/reference/items/language/scanner.qdoc b/doc/reference/items/language/scanner.qdoc
index 607af3965..9c5b28f75 100644
--- a/doc/reference/items/language/scanner.qdoc
+++ b/doc/reference/items/language/scanner.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,17 +26,16 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage rule-item.html
- \page scanner-item.html
- \nextpage subproject-item.html
- \ingroup list-of-language-items
+ \previouspage Rule
+ \nextpage SubProject
+ \qmltype Scanner
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.Scanner
- \title Scanner Item
\brief Creates custom dependency scanners in modules.
- A \c Scanner item can appear inside a \l{Module Item}, and allows to extract
+ A Scanner item can appear inside a \l{Module} item, and allows to extract
dependencies for artifacts from the artifacts' file contents.
For example, this is what a scanner for "qrc" files might look like:
\code
@@ -54,42 +53,53 @@
}
}
\endcode
+*/
+
+/*!
+ \qmlproperty bool Scanner::condition
+
+ If \c true, the scanner is enabled, otherwise it does nothing.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty stringList Scanner::inputs
+
+ A list of \l{FileTagger}{file tags} the input artifacts must match.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool Scanner::recursive
+
+ Determines whether to scan the returned \l{Depends}{dependencies} using
+ the same scanner.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty script Scanner::searchPaths
+
+ A script that returns the paths where to look for \l{Depends}
+ {dependencies}.
+
+ The code in this script is treated as a function with the signature
+ \c{function(project, product, input)}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty script Scanner::scan
+
+ A script that reads the input artifact and returns a string list with
+ \l{Depends}{dependencies}.
+
+ The code in this script is treated as a function with the signature
+ \c{function(project, product, input)}.
- \section1 Scanner Properties
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li condition
- \li bool
- \li true
- \li If true, the scanner is enabled, otherwise it does nothing.
- \row
- \li inputs
- \li string list
- \li undefined
- \li File tags the input artifacts must match.
- \row
- \li recursive
- \li bool
- \li false
- \li Determines whether to scan the returned dependencies using the same scanner.
- \row
- \li searchPaths
- \li script
- \li undefined
- \li Script that returns paths to look for dependencies.
- The code in this script is treated as a function with the signature
- \c{function(project, product, input)}.
- \row
- \li scan
- \li script
- \li undefined
- \li Script that reads the input artifact and returns string list with dependencies.
- The code in this script is treated as a function with the signature
- \c{function(project, product, input)}.
- \endtable
+ \nodefaultvalue
*/
diff --git a/doc/reference/items/language/subproject.qdoc b/doc/reference/items/language/subproject.qdoc
index e125bcc8c..955b092f1 100644
--- a/doc/reference/items/language/subproject.qdoc
+++ b/doc/reference/items/language/subproject.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,16 +26,15 @@
****************************************************************************/
/*!
\contentspage list-of-language-items.html
- \previouspage scanner-item.html
- \page subproject-item.html
- \ingroup list-of-language-items
+ \previouspage Scanner
+ \qmltype SubProject
+ \inqmlmodule QbsLanguageItems
\ingroup list-of-items
\keyword QML.SubProject
- \title SubProject Item
\brief Adds a project from a different file.
- A \c SubProject item is used to add a project defined in another file as a sub-project to
+ A SubProject item is used to add a project defined in another file as a sub-project to
the surrounding project:
\code
SubProject {
@@ -52,27 +51,24 @@
references: "subdir/project.qbs"
\endcode
- It is also possible to nest \c Project items directly in the same file.
+ It is also possible to nest \l{Project} items directly in the same file.
+*/
+
+/*!
+ \qmlproperty path SubProject::filePath
+
+ The file path of the project to add as a sub-project. If the top-level item
+ in this file is a \l{Product}, it gets wrapped automatically in a new project.
+
+ \defaultvalue empty
+*/
+
+/*!
+ \qmlproperty bool SubProject::inheritProperties
- \section1 SubProject Properties
+ Determines whether the sub-project should inherit the properties of the
+ surrounding \l{Project}. You can use this feature to share global
+ settings between projects and sub-projects.
- \table
- \header
- \li Property
- \li Type
- \li Default
- \li Description
- \row
- \li filePath
- \li path
- \li empty
- \li The file path of the project to add as a sub-project. If the top-level item in this
- file is a \c Product, it gets wrapped automatically in a new project.
- \row
- \li inheritProperties
- \li bool
- \li true
- \li Whether the sub-project should inherit the properties of the surrounding project.
- You can use this feature to share "global" settings between (sub-)projects.
- \endtable
+ \defaultvalue \c true
*/
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index 4b5ddcd60..ab7299062 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -80,14 +80,14 @@
\li \c{bool}
\li 1.8
\li \c{false}
- \li Enabling this property on a product instructs the \l{FileTagger Item}{file tagger}
+ \li Enabling this property on a product instructs the \l{FileTagger}{file tagger}
to attach the tag \c{"c.combine"} to C sources, rather than \c{"c"}.
As a result, all C sources of the product will be combined into a single file which
is then compiled. This can speed up initial compilation significantly, but is
of course detrimental in the context of incremental builds. Also, perfectly legal code
may fail to compile with this option due to the merging of translation units.
If you want to enable this property in a product that has some sources which
- cannot be merged, you need to put these into a dedicated \l{Group Item}{group} and
+ cannot be merged, you need to put these into a dedicated \l{Group}{group} and
set their file tag to \c{"c"}, overriding the file tagger.
\note Module properties set on specific source files (that is, at the Group level)
will not be taken into account when building the combined file. You either need
diff --git a/doc/reference/modules/qt-modules.qdoc b/doc/reference/modules/qt-modules.qdoc
index 9f6116683..408a802f8 100644
--- a/doc/reference/modules/qt-modules.qdoc
+++ b/doc/reference/modules/qt-modules.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -372,7 +372,7 @@
\li \c{product.targetName}
\li For files tagged as \c{qt.core.resource_data}, this property determines the base name
of the generated \c qrc file. If this property needs to be changed, it must be set
- in the corresponding product rather than in a Group.
+ in the corresponding product rather than in a \l{Group}.
\row
\li staticBuild
\li \c{bool}
@@ -627,8 +627,8 @@
\li \c{"qdoc-output"}
\li n/a
\li 1.5
- \li Use this tag to match all \c qdoc outputs, for instance in a \l{Group Item}{Group}
- using the \c fileTagsFilter property.
+ \li Use this tag to match all \c qdoc outputs, for instance in a \l{Group}
+ using the \l{Group::fileTagsFilter}{group.fileTagsFilter} property.
\row
\li \c{"qhp"}
\li \c{*.qhp}
diff --git a/doc/reference/reference.qdoc b/doc/reference/reference.qdoc
index d87efe32e..c94ba1a93 100644
--- a/doc/reference/reference.qdoc
+++ b/doc/reference/reference.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -83,7 +83,7 @@
/*!
\contentspage reference.html
- \group list-of-language-items
+ \qmlmodule QbsLanguageItems
\title List of Language Items
\QBS provides the following built-in QML items to define projects.