aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference
diff options
context:
space:
mode:
Diffstat (limited to 'doc/reference')
-rw-r--r--doc/reference/cli/builtin/cli-build.qdoc3
-rw-r--r--doc/reference/cli/builtin/cli-clean.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-generate.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-help.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-install.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-list-products.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-resolve.qdoc3
-rw-r--r--doc/reference/cli/builtin/cli-run.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-session.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-shell.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-status.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-update-timestamps.qdoc1
-rw-r--r--doc/reference/cli/builtin/cli-version.qdoc1
-rw-r--r--doc/reference/cli/cli-options.qdocinc24
-rw-r--r--doc/reference/cli/cli.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-config-ui.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-config.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-create-project.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-setup-android.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-setup-qt.qdoc1
-rw-r--r--doc/reference/cli/tools/cli-setup-toolchains.qdoc1
-rw-r--r--doc/reference/commands.qdoc5
-rw-r--r--doc/reference/items/convenience/appleapplicationdiskimage.qdoc8
-rw-r--r--doc/reference/items/convenience/applediskimage.qdoc1
-rw-r--r--doc/reference/items/convenience/application.qdoc39
-rw-r--r--doc/reference/items/convenience/applicationextension.qdoc1
-rw-r--r--doc/reference/items/convenience/autotestrunner.qdoc35
-rw-r--r--doc/reference/items/convenience/cppapplication.qdoc5
-rw-r--r--doc/reference/items/convenience/dynamiclibrary.qdoc53
-rw-r--r--doc/reference/items/convenience/innosetup.qdoc1
-rw-r--r--doc/reference/items/convenience/installpackage.qdoc1
-rw-r--r--doc/reference/items/convenience/javaclasscollection.qdoc1
-rw-r--r--doc/reference/items/convenience/javajarfile.qdoc3
-rw-r--r--doc/reference/items/convenience/library.qdoc129
-rw-r--r--doc/reference/items/convenience/loadablemodule.qdoc5
-rw-r--r--doc/reference/items/convenience/qtapplication.qdoc3
-rw-r--r--doc/reference/items/convenience/qtguiapplication.qdoc1
-rw-r--r--doc/reference/items/convenience/staticlibrary.qdoc27
-rw-r--r--doc/reference/items/convenience/xpcservice.qdoc1
-rw-r--r--doc/reference/items/language/artifact.qdoc1
-rw-r--r--doc/reference/items/language/depends.qdoc24
-rw-r--r--doc/reference/items/language/export.qdoc52
-rw-r--r--doc/reference/items/language/filetagger.qdoc1
-rw-r--r--doc/reference/items/language/group.qdoc37
-rw-r--r--doc/reference/items/language/joblimit.qdoc1
-rw-r--r--doc/reference/items/language/module.qdoc60
-rw-r--r--doc/reference/items/language/moduleprovider.qdoc40
-rw-r--r--doc/reference/items/language/parameter.qdoc1
-rw-r--r--doc/reference/items/language/parameters.qdoc5
-rw-r--r--doc/reference/items/language/probe.qdoc3
-rw-r--r--doc/reference/items/language/product.qdoc17
-rw-r--r--doc/reference/items/language/profile.qdoc1
-rw-r--r--doc/reference/items/language/project.qdoc23
-rw-r--r--doc/reference/items/language/properties.qdoc21
-rw-r--r--doc/reference/items/language/propertyoptions.qdoc1
-rw-r--r--doc/reference/items/language/rule.qdoc1
-rw-r--r--doc/reference/items/language/scanner.qdoc1
-rw-r--r--doc/reference/items/language/subproject.qdoc15
-rw-r--r--doc/reference/items/probe/binary-probe.qdoc10
-rw-r--r--doc/reference/items/probe/conanfile-probe.qdoc257
-rw-r--r--doc/reference/items/probe/dmc-probe.qdoc111
-rw-r--r--doc/reference/items/probe/framework-probe.qdoc5
-rw-r--r--doc/reference/items/probe/iar-probe.qdoc8
-rw-r--r--doc/reference/items/probe/include-probe.qdoc6
-rw-r--r--doc/reference/items/probe/keil-probe.qdoc5
-rw-r--r--doc/reference/items/probe/library-probe.qdoc61
-rw-r--r--doc/reference/items/probe/path-probe.qdoc38
-rw-r--r--doc/reference/items/probe/pkgconfig-probe.qdoc20
-rw-r--r--doc/reference/items/probe/sdcc-probe.qdoc5
-rw-r--r--doc/reference/items/probe/watcom-probe.qdoc129
-rw-r--r--doc/reference/jsextensions/jsextension-binaryfile.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-environment.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-file.qdoc4
-rw-r--r--doc/reference/jsextensions/jsextension-fileinfo.qdoc23
-rw-r--r--doc/reference/jsextensions/jsextension-host.qdoc139
-rw-r--r--doc/reference/jsextensions/jsextension-process.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-propertylist.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-temporarydir.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-textfile.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-utilities.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextension-xml.qdoc1
-rw-r--r--doc/reference/jsextensions/jsextensions-general.qdoc25
-rw-r--r--doc/reference/module-providers/conan-module-provider.qdoc101
-rw-r--r--doc/reference/module-providers/qbspkgconfig-module-provider.qdoc133
-rw-r--r--doc/reference/module-providers/qt-module-provider.qdoc76
-rw-r--r--doc/reference/modules/android-ndk-module.qdoc12
-rw-r--r--doc/reference/modules/android-sdk-module.qdoc51
-rw-r--r--doc/reference/modules/archiver-module.qdoc1
-rw-r--r--doc/reference/modules/asan-module.qdoc77
-rw-r--r--doc/reference/modules/autotest-module.qdoc12
-rw-r--r--doc/reference/modules/bundle-module.qdoc24
-rw-r--r--doc/reference/modules/capnprotocpp-module.qdoc123
-rw-r--r--doc/reference/modules/codesign-module.qdoc395
-rw-r--r--doc/reference/modules/cpp-module.qdoc240
-rw-r--r--doc/reference/modules/cpufeatures-module.qdoc1
-rw-r--r--doc/reference/modules/dmg-module.qdoc1
-rw-r--r--doc/reference/modules/exporter-cmake.qdoc135
-rw-r--r--doc/reference/modules/exporter-pkgconfig-module.qdoc1
-rw-r--r--doc/reference/modules/exporter-qbs-module.qdoc8
-rw-r--r--doc/reference/modules/flatbuf-c-module.qdoc83
-rw-r--r--doc/reference/modules/flatbuf-cpp-module.qdoc144
-rw-r--r--doc/reference/modules/freedesktop-module.qdoc140
-rw-r--r--doc/reference/modules/ib-module.qdoc1
-rw-r--r--doc/reference/modules/ico-module.qdoc1
-rw-r--r--doc/reference/modules/innosetup-module.qdoc1
-rw-r--r--doc/reference/modules/java-module.qdoc1
-rw-r--r--doc/reference/modules/lexyacc-module.qdoc1
-rw-r--r--doc/reference/modules/nodejs-module.qdoc1
-rw-r--r--doc/reference/modules/nsis-module.qdoc1
-rw-r--r--doc/reference/modules/pkgconfig-module.qdoc1
-rw-r--r--doc/reference/modules/protobufcpp-module.qdoc51
-rw-r--r--doc/reference/modules/protobufnanopb-module.qdoc155
-rw-r--r--doc/reference/modules/protobufobjc-module.qdoc32
-rw-r--r--doc/reference/modules/qbs-module.qdoc471
-rw-r--r--doc/reference/modules/qnx-module.qdoc1
-rw-r--r--doc/reference/modules/qt-android_support-module.qdoc21
-rw-r--r--doc/reference/modules/qt-core-module.qdoc79
-rw-r--r--doc/reference/modules/qt-dbus-module.qdoc1
-rw-r--r--doc/reference/modules/qt-declarative-module.qdoc1
-rw-r--r--doc/reference/modules/qt-gui-module.qdoc1
-rw-r--r--doc/reference/modules/qt-modules.qdoc19
-rw-r--r--doc/reference/modules/qt-plugin_support-module.qdoc1
-rw-r--r--doc/reference/modules/qt-qml-module.qdoc72
-rw-r--r--doc/reference/modules/qt-quick-module.qdoc1
-rw-r--r--doc/reference/modules/qt-scxml-module.qdoc1
-rw-r--r--doc/reference/modules/texttemplate-module.qdoc1
-rw-r--r--doc/reference/modules/typescript-module.qdoc1
-rw-r--r--doc/reference/modules/vcs-module.qdoc1
-rw-r--r--doc/reference/modules/wix-module.qdoc1
-rw-r--r--doc/reference/modules/xcode-module.qdoc1
-rw-r--r--doc/reference/reference.qdoc15
132 files changed, 3606 insertions, 614 deletions
diff --git a/doc/reference/cli/builtin/cli-build.qdoc b/doc/reference/cli/builtin/cli-build.qdoc
index f9312350d..8547a78d2 100644
--- a/doc/reference/cli/builtin/cli-build.qdoc
+++ b/doc/reference/cli/builtin/cli-build.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-build.html
\ingroup cli
@@ -79,8 +78,6 @@
\include cli-options.qdocinc products-specified
\include cli-options.qdocinc settings-dir
\include cli-options.qdocinc show-progress
- \target no-fallback-module-provider
- \include cli-options.qdocinc no-fallback-module-provider
\include cli-options.qdocinc wait-lock
\section1 Parameters
diff --git a/doc/reference/cli/builtin/cli-clean.qdoc b/doc/reference/cli/builtin/cli-clean.qdoc
index bd6ba1616..901ac2f33 100644
--- a/doc/reference/cli/builtin/cli-clean.qdoc
+++ b/doc/reference/cli/builtin/cli-clean.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-clean.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc b/doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc
index 2e5485ec2..270927ccd 100644
--- a/doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc
+++ b/doc/reference/cli/builtin/cli-dump-nodes-tree.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-dump-nodes-tree.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-generate.qdoc b/doc/reference/cli/builtin/cli-generate.qdoc
index b6dda6f4f..c7c14fc84 100644
--- a/doc/reference/cli/builtin/cli-generate.qdoc
+++ b/doc/reference/cli/builtin/cli-generate.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-generate.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-help.qdoc b/doc/reference/cli/builtin/cli-help.qdoc
index c36d03317..da19fda15 100644
--- a/doc/reference/cli/builtin/cli-help.qdoc
+++ b/doc/reference/cli/builtin/cli-help.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-help.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-install.qdoc b/doc/reference/cli/builtin/cli-install.qdoc
index b55f05296..92fad06a9 100644
--- a/doc/reference/cli/builtin/cli-install.qdoc
+++ b/doc/reference/cli/builtin/cli-install.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-install.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-list-products.qdoc b/doc/reference/cli/builtin/cli-list-products.qdoc
index 92ef043da..583029a73 100644
--- a/doc/reference/cli/builtin/cli-list-products.qdoc
+++ b/doc/reference/cli/builtin/cli-list-products.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-list-products.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-resolve.qdoc b/doc/reference/cli/builtin/cli-resolve.qdoc
index b13f3de3d..99f1658ea 100644
--- a/doc/reference/cli/builtin/cli-resolve.qdoc
+++ b/doc/reference/cli/builtin/cli-resolve.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-resolve.html
\ingroup cli
@@ -56,7 +55,7 @@
\include cli-options.qdocinc more-verbose
\include cli-options.qdocinc settings-dir
\include cli-options.qdocinc show-progress
- \include cli-options.qdocinc no-fallback-module-provider
+ \include cli-options.qdocinc deprecation-warnings
\section1 Parameters
diff --git a/doc/reference/cli/builtin/cli-run.qdoc b/doc/reference/cli/builtin/cli-run.qdoc
index 9f20f868e..a0d3adee9 100644
--- a/doc/reference/cli/builtin/cli-run.qdoc
+++ b/doc/reference/cli/builtin/cli-run.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-run.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-session.qdoc b/doc/reference/cli/builtin/cli-session.qdoc
index 62999a82e..853674234 100644
--- a/doc/reference/cli/builtin/cli-session.qdoc
+++ b/doc/reference/cli/builtin/cli-session.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-session.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-shell.qdoc b/doc/reference/cli/builtin/cli-shell.qdoc
index 221bef24d..f024fc335 100644
--- a/doc/reference/cli/builtin/cli-shell.qdoc
+++ b/doc/reference/cli/builtin/cli-shell.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-shell.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-status.qdoc b/doc/reference/cli/builtin/cli-status.qdoc
index ddc8537f3..16bea5198 100644
--- a/doc/reference/cli/builtin/cli-status.qdoc
+++ b/doc/reference/cli/builtin/cli-status.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-status.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-update-timestamps.qdoc b/doc/reference/cli/builtin/cli-update-timestamps.qdoc
index 366f1352b..8d66071b0 100644
--- a/doc/reference/cli/builtin/cli-update-timestamps.qdoc
+++ b/doc/reference/cli/builtin/cli-update-timestamps.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-update-timestamps.html
\ingroup cli
diff --git a/doc/reference/cli/builtin/cli-version.qdoc b/doc/reference/cli/builtin/cli-version.qdoc
index 38240eef0..f4dab3cb9 100644
--- a/doc/reference/cli/builtin/cli-version.qdoc
+++ b/doc/reference/cli/builtin/cli-version.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-version.html
\ingroup cli
diff --git a/doc/reference/cli/cli-options.qdocinc b/doc/reference/cli/cli-options.qdocinc
index b02ce68ea..ecb8f5c3e 100644
--- a/doc/reference/cli/cli-options.qdocinc
+++ b/doc/reference/cli/cli-options.qdocinc
@@ -331,6 +331,27 @@
//! [config-ui-system]
+//! [deprecation-warnings]
+
+ \section2 \c {--deprecation-warnings <mode>}
+
+ Uses the specified deprecation warning mode, which controls what to do when deprecated
+ items or properties are encountered in the project. By default, a warning is emitted
+ if the item or property is scheduled for removal in the next minor version of \QBS.
+ Warnings can also be switched on or off unconditionally, and it can be specified that
+ project resolving should abort if deprecated constructs are present.
+
+ Possible values of \c <mode> are:
+
+ \list
+ \li \c error
+ \li \c on
+ \li \c before-removal (default value)
+ \li \c off
+ \endlist
+
+//! [deprecation-warnings]
+
//! [log-level]
\section2 \c {--log-level <level>}
@@ -499,6 +520,9 @@
\li \c iar
\li \c keil
\li \c sdcc
+ \li \c cosmic
+ \li \c dmc
+ \li \c watcom
\endlist
//! [type]
diff --git a/doc/reference/cli/cli.qdoc b/doc/reference/cli/cli.qdoc
index c93b51cd0..ccc67373a 100644
--- a/doc/reference/cli/cli.qdoc
+++ b/doc/reference/cli/cli.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage reference.html
\group cli
\title Command-Line Interface
diff --git a/doc/reference/cli/tools/cli-config-ui.qdoc b/doc/reference/cli/tools/cli-config-ui.qdoc
index d900841d6..ed2287c1e 100644
--- a/doc/reference/cli/tools/cli-config-ui.qdoc
+++ b/doc/reference/cli/tools/cli-config-ui.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-config-ui.html
\ingroup cli
diff --git a/doc/reference/cli/tools/cli-config.qdoc b/doc/reference/cli/tools/cli-config.qdoc
index 2b78ff8ef..6758dce61 100644
--- a/doc/reference/cli/tools/cli-config.qdoc
+++ b/doc/reference/cli/tools/cli-config.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-config.html
\ingroup cli
diff --git a/doc/reference/cli/tools/cli-create-project.qdoc b/doc/reference/cli/tools/cli-create-project.qdoc
index db3af2284..c78d8fb83 100644
--- a/doc/reference/cli/tools/cli-create-project.qdoc
+++ b/doc/reference/cli/tools/cli-create-project.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-create-project.html
\ingroup cli
diff --git a/doc/reference/cli/tools/cli-setup-android.qdoc b/doc/reference/cli/tools/cli-setup-android.qdoc
index 5421de896..357d42706 100644
--- a/doc/reference/cli/tools/cli-setup-android.qdoc
+++ b/doc/reference/cli/tools/cli-setup-android.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-setup-android.html
\ingroup cli
diff --git a/doc/reference/cli/tools/cli-setup-qt.qdoc b/doc/reference/cli/tools/cli-setup-qt.qdoc
index 1cf961d0d..c50348144 100644
--- a/doc/reference/cli/tools/cli-setup-qt.qdoc
+++ b/doc/reference/cli/tools/cli-setup-qt.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-setup-qt.html
\ingroup cli
diff --git a/doc/reference/cli/tools/cli-setup-toolchains.qdoc b/doc/reference/cli/tools/cli-setup-toolchains.qdoc
index 70cb0c23b..97f9c0235 100644
--- a/doc/reference/cli/tools/cli-setup-toolchains.qdoc
+++ b/doc/reference/cli/tools/cli-setup-toolchains.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage cli.html
\page cli-setup-toolchains.html
\ingroup cli
diff --git a/doc/reference/commands.qdoc b/doc/reference/commands.qdoc
index d34c20cb7..3f542e1d1 100644
--- a/doc/reference/commands.qdoc
+++ b/doc/reference/commands.qdoc
@@ -29,7 +29,6 @@
// TODO: "\c" markup is used for all properties in table due to QTBUG-35505.
/*!
- \contentspage reference.html
\page commands.html
\title Command and JavaScriptCommand
@@ -124,9 +123,11 @@
\li Time limit for the command execution in seconds. If the command does not finish within
the timeout, it is cancelled. In case of a \c Command, the process is requested to
terminate. If it does not terminate within three seconds, it is killed. A value below
- or equal to 0 means no timeout.
+ or equal to 0 means no timeout. \br
+ This property was introduced in Qbs 1.15.
\endtable
+
\section2 Command Properties
\table
diff --git a/doc/reference/items/convenience/appleapplicationdiskimage.qdoc b/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
index 69a10c797..d1fa15052 100644
--- a/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
+++ b/doc/reference/items/convenience/appleapplicationdiskimage.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\nextpage AppleDiskImage
\qmltype AppleApplicationDiskImage
\since Qbs 1.9
@@ -78,10 +77,11 @@
The base directory from which artifacts installed into the disk image will be copied.
This directory is always considered to be relative to \l{qbs::installRoot}
- {qbs.installRoot}.
+ {qbs.installRoot}/\l{qbs::installPrefix}
+ {qbs.installPrefix}.
For example, if the application Example.app exists at
- \c{qbs.installRoot/Applications/Example.app}, and the value of this property
- is \c{"/Applications"}, the application will be located at\c{/Example.app}
+ \c{qbs.installRoot/qbs.installPrefix/Applications/Example.app}, and the value of this property
+ is \c{"/Applications"}, the application will be located at \c{/Example.app}
relative to the disk image root. Therefore, its full path when the disk
image is mounted would be something like \c{/Volumes/Example-1.0/Example.app}.
diff --git a/doc/reference/items/convenience/applediskimage.qdoc b/doc/reference/items/convenience/applediskimage.qdoc
index 78772db52..16fec266b 100644
--- a/doc/reference/items/convenience/applediskimage.qdoc
+++ b/doc/reference/items/convenience/applediskimage.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage AppleApplicationDiskImage
\nextpage Application
\qmltype AppleDiskImage
diff --git a/doc/reference/items/convenience/application.qdoc b/doc/reference/items/convenience/application.qdoc
index c09d15918..15b05515d 100644
--- a/doc/reference/items/convenience/application.qdoc
+++ b/doc/reference/items/convenience/application.qdoc
@@ -25,8 +25,7 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
- \previouspage AppleApplicationDiskImage
+ \previouspage AppleDiskImage
\nextpage ApplicationExtension
\qmltype Application
\inherits Product
@@ -41,15 +40,16 @@
The target artifact of this type of product is usually an executable binary
tagged \c "application".
However, on Android, unless you set \l{Product::}{consoleApplication} to \c true,
- the application target will be an APK package tagged \c "android.apk", and a
- dependency to the \l{Android.sdk} module is automatically added to the product.
+ the application target will be an APK or an AAB package tagged \c "android.package"
+ according to the \l{Android.sdk}{packageType} property. A dependency to the \l{Android.sdk}
+ module is automatically added to the product.
*/
/*!
\qmlproperty bool Application::install
If \c{true}, the executable that is produced when building the application will be installed
- to \l installDir.
+ to \l{Application::installDir}{installDir}.
\defaultvalue \c false
\since Qbs 1.13
@@ -58,8 +58,8 @@
/*!
\qmlproperty string Application::installDir
- Where to install the executable that is produced when building the application, if \l install
- is enabled.
+ Where to install the executable that is produced when building the application, if
+ \l{Application::install}{install} is enabled.
The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
when constructing the actual installation directory.
@@ -67,3 +67,28 @@
\defaultvalue \c Applications if the app is a \l{bundle::isBundle}{bundle}, \c bin otherwise.
\since Qbs 1.13
*/
+
+/*!
+ \qmlproperty bool Application::installDebugInformation
+
+ If \c{true}, the debug information will be installed to
+ \l{Application::debugInformationInstallDir}{debugInformationInstallDir}.
+
+ \defaultvalue \c false
+ \since Qbs 1.16
+ \sa{How do I separate and install debugging symbols?}
+*/
+
+/*!
+ \qmlproperty string Application::debugInformationInstallDir
+
+ Where to install the debug information if \l installDebugInformation is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ \defaultvalue \l installDir.
+ \since Qbs 1.16
+
+ \sa{How do I separate and install debugging symbols?}
+*/
diff --git a/doc/reference/items/convenience/applicationextension.qdoc b/doc/reference/items/convenience/applicationextension.qdoc
index bc65c5449..9ff0101ff 100644
--- a/doc/reference/items/convenience/applicationextension.qdoc
+++ b/doc/reference/items/convenience/applicationextension.qdoc
@@ -26,7 +26,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage Application
\nextpage AutotestRunner
\qmltype ApplicationExtension
diff --git a/doc/reference/items/convenience/autotestrunner.qdoc b/doc/reference/items/convenience/autotestrunner.qdoc
index e8690ffe2..c9fb217ef 100644
--- a/doc/reference/items/convenience/autotestrunner.qdoc
+++ b/doc/reference/items/convenience/autotestrunner.qdoc
@@ -26,7 +26,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage ApplicationExtension
\nextpage CppApplication
\qmltype AutotestRunner
@@ -69,6 +68,27 @@
\endcode
\endlist
+
+ \section2 Setting Properties for individual Tests
+ \target autotestrunner-autotest-module
+
+ To control the behavior of individual tests, some properties of the \c AutotestRunner
+ can be overridden by depending on the \l autotest module and setting its properties:
+
+ \code
+ CppApplication {
+ name: "tst_mytest"
+ type: ["application", "autotest"]
+
+ Depends { name: "autotest" }
+
+ autotest.timeout: 60
+
+ // ...
+ }
+ \endcode
+
+
\section2 Relevant Job Pools
\target autotestrunner-job-pools
@@ -147,3 +167,16 @@
\defaultvalue empty
*/
+
+/*!
+ \qmlproperty int AutotestRunner::timeout
+
+ Time limit for the execution of the individual tests. If a test does not finish within
+ the time limit, the test is cancelled and considered failed. A value below or equal to 0
+ means no timeout.
+ A test can override this by setting the \l{autotest::timeout}{timeout} property
+ of the \l autotest module.
+
+ \defaultvalue -1
+ \since Qbs 1.15
+*/
diff --git a/doc/reference/items/convenience/cppapplication.qdoc b/doc/reference/items/convenience/cppapplication.qdoc
index 13bd523b7..3518ba1e1 100644
--- a/doc/reference/items/convenience/cppapplication.qdoc
+++ b/doc/reference/items/convenience/cppapplication.qdoc
@@ -25,18 +25,17 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage AutotestRunner
\nextpage DynamicLibrary
\qmltype CppApplication
- \inherits Product
+ \inherits Application
\inqmlmodule QbsConvenienceItems
\ingroup list-of-items
\keyword QML.CppApplication
\brief C++ application.
- A CppApplication is a \l{Product}{product} that has a dependency on the
+ A CppApplication is an \l{Application}{application} that has a dependency on the
\l{cpp} module. It is entirely equivalent to the following:
\code
diff --git a/doc/reference/items/convenience/dynamiclibrary.qdoc b/doc/reference/items/convenience/dynamiclibrary.qdoc
index 488aef3eb..861d0509d 100644
--- a/doc/reference/items/convenience/dynamiclibrary.qdoc
+++ b/doc/reference/items/convenience/dynamiclibrary.qdoc
@@ -25,11 +25,10 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage CppApplication
\nextpage InnoSetup
\qmltype DynamicLibrary
- \inherits Product
+ \inherits Library
\inqmlmodule QbsConvenienceItems
\ingroup list-of-items
\keyword QML.DynamicLibrary
@@ -37,7 +36,7 @@
\brief Dynamic library.
- A DynamicLibrary item is a \l{Product} of the \l{Product::}{type}
+ A DynamicLibrary item is a \l{Library}{library} of the \l{Product::}{type}
\c "dynamiclibrary".
For Android targets, the following applies:
@@ -47,51 +46,3 @@
\li There is a dependency on the \l{cpp} and \l{Android.ndk} modules.
\endlist
*/
-
-/*!
- \qmlproperty bool DynamicLibrary::install
-
- If \c{true}, the library will be installed to \l installDir.
-
- \defaultvalue \c false
- \since Qbs 1.13
-*/
-
-/*!
- \qmlproperty string DynamicLibrary::installDir
-
- Where to install the library, if \l install is enabled. On Unix, the symbolic links
- are also installed to this location.
-
- The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
- when constructing the actual installation directory.
-
- \defaultvalue \c Library/Frameworks if the library is a \l{bundle::isBundle}{bundle},
- otherwise \c bin for Windows and \c lib for Unix-like targets.
- \since Qbs 1.13
-*/
-
-/*!
- \qmlproperty bool DynamicLibrary::installImportLib
-
- If \c{true}, the import library will be installed to \l importLibInstallDir.
- This property is only relevant for Windows targets.
- Enable it if you want to create a development package.
-
- \defaultvalue \c false
- \since Qbs 1.13
-*/
-
-/*!
- \qmlproperty string DynamicLibrary::importLibInstallDir
-
- Where to install the import library, if \l installImportLib is enabled.
-
- The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
- when constructing the actual installation directory.
-
- This property is only relevant for Windows targets.
-
- \defaultvalue \c lib
- \since Qbs 1.13
-*/
diff --git a/doc/reference/items/convenience/innosetup.qdoc b/doc/reference/items/convenience/innosetup.qdoc
index f4b52dafd..0f66243e9 100644
--- a/doc/reference/items/convenience/innosetup.qdoc
+++ b/doc/reference/items/convenience/innosetup.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage DynamicLibrary
\nextpage InstallPackage
\qmltype InnoSetup
diff --git a/doc/reference/items/convenience/installpackage.qdoc b/doc/reference/items/convenience/installpackage.qdoc
index 4f82f71b7..7c5e8ec9b 100644
--- a/doc/reference/items/convenience/installpackage.qdoc
+++ b/doc/reference/items/convenience/installpackage.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage InnoSetup
\nextpage JavaClassCollection
\qmltype InstallPackage
diff --git a/doc/reference/items/convenience/javaclasscollection.qdoc b/doc/reference/items/convenience/javaclasscollection.qdoc
index fb93eb29e..ae060135c 100644
--- a/doc/reference/items/convenience/javaclasscollection.qdoc
+++ b/doc/reference/items/convenience/javaclasscollection.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage InstallPackage
\nextpage JavaJarFile
\qmltype JavaClassCollection
diff --git a/doc/reference/items/convenience/javajarfile.qdoc b/doc/reference/items/convenience/javajarfile.qdoc
index 48643d80e..97c775f16 100644
--- a/doc/reference/items/convenience/javajarfile.qdoc
+++ b/doc/reference/items/convenience/javajarfile.qdoc
@@ -25,9 +25,8 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage JavaClassCollection
- \nextpage LoadableModule
+ \nextpage Library
\qmltype JavaJarFile
\inherits Product
\inqmlmodule QbsConvenienceItems
diff --git a/doc/reference/items/convenience/library.qdoc b/doc/reference/items/convenience/library.qdoc
new file mode 100644
index 000000000..409af3f19
--- /dev/null
+++ b/doc/reference/items/convenience/library.qdoc
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \previouspage JavaJarFile
+ \nextpage LoadableModule
+ \qmltype Library
+ \since Qbs 1.4
+ \inherits Product
+ \inqmlmodule QbsConvenienceItems
+ \ingroup list-of-items
+ \keyword QML.NativeBinary
+
+ \brief Generic library.
+
+ A Library item is a base item for native libraries and can have \l{Product::}{type} set to
+ one of the following values: \c "dynamiclibrary", \c "staticlibrary", \c "loadablemodule".
+
+ The default \l{Product::}{type} value is \c "dynamiclibrary" except for iOS prior to
+ version 8, in which case the default value is \c "staticlibrary".
+
+ This item can automatically install the library target (and library symlinks on Unix) and
+ separated debug information.
+
+ For Android targets, the following applies:
+ \list
+ \li The \l{Product::type}{Product.type} property value contains
+ \c "android.nativelibrary" in addition to \c "dynamiclibrary".
+ \li There is a dependency on the \l{cpp} and \l{Android.ndk} modules.
+ \endlist
+*/
+
+/*!
+ \qmlproperty bool Library::install
+
+ If \c{true}, the library will be installed to \l{Library::installDir}{installDir}.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string Library::installDir
+
+ Where to install the library, if \l{Library::install}{install} is enabled. On Unix,
+ the symbolic links are also installed to this location.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ \defaultvalue \c Library/Frameworks if the library is a \l{bundle::isBundle}{bundle},
+ otherwise \c bin for Windows and \c lib for Unix-like targets.
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty bool Library::installDebugInformation
+
+ If \c{true}, the debug information will be installed to
+ \l{Library::debugInformationInstallDir}{debugInformationInstallDir}.
+
+ \defaultvalue \c false
+ \since Qbs 1.16
+ \sa{How do I separate and install debugging symbols?}
+*/
+
+/*!
+ \qmlproperty string Library::debugInformationInstallDir
+
+ Where to install the debug information if \l installDebugInformation is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ \defaultvalue \l installDir.
+ \since Qbs 1.16
+
+ \sa{How do I separate and install debugging symbols?}
+*/
+
+/*!
+ \qmlproperty bool Library::installImportLib
+
+ If \c{true}, the import library will be installed to \l importLibInstallDir.
+ This property is only relevant for Windows targets.
+ Enable it if you want to create a development package.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string Library::importLibInstallDir
+
+ Where to install the import library, if \l installImportLib is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ This property is only relevant for Windows targets.
+
+ \defaultvalue \c lib
+ \since Qbs 1.13
+*/
+
diff --git a/doc/reference/items/convenience/loadablemodule.qdoc b/doc/reference/items/convenience/loadablemodule.qdoc
index d02dbae1c..2921051fd 100644
--- a/doc/reference/items/convenience/loadablemodule.qdoc
+++ b/doc/reference/items/convenience/loadablemodule.qdoc
@@ -26,11 +26,10 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
- \previouspage JavaJarFile
+ \previouspage Library
\nextpage QtApplication
\qmltype LoadableModule
- \inherits Product
+ \inherits Library
\inqmlmodule QbsConvenienceItems
\ingroup list-of-items
\keyword QML.LoadableModule
diff --git a/doc/reference/items/convenience/qtapplication.qdoc b/doc/reference/items/convenience/qtapplication.qdoc
index 09640a8c1..0cef3080b 100644
--- a/doc/reference/items/convenience/qtapplication.qdoc
+++ b/doc/reference/items/convenience/qtapplication.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage LoadableModule
\nextpage QtGuiApplication
\qmltype QtApplication
@@ -42,7 +41,7 @@
\code
CppApplication {
- Depends { name: "Qt.core" } }
+ Depends { name: "Qt.core" }
}
\endcode
diff --git a/doc/reference/items/convenience/qtguiapplication.qdoc b/doc/reference/items/convenience/qtguiapplication.qdoc
index e69b9214c..62fb5cee7 100644
--- a/doc/reference/items/convenience/qtguiapplication.qdoc
+++ b/doc/reference/items/convenience/qtguiapplication.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage QtApplication
\nextpage StaticLibrary
\qmltype QtGuiApplication
diff --git a/doc/reference/items/convenience/staticlibrary.qdoc b/doc/reference/items/convenience/staticlibrary.qdoc
index cd459cf6e..c2ff1e63b 100644
--- a/doc/reference/items/convenience/staticlibrary.qdoc
+++ b/doc/reference/items/convenience/staticlibrary.qdoc
@@ -25,39 +25,16 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage QtGuiApplication
\nextpage XPCService
\qmltype StaticLibrary
- \inherits Product
+ \inherits Library
\inqmlmodule QbsConvenienceItems
\ingroup list-of-items
\keyword QML.StaticLibrary
\brief Static library.
- A StaticLibrary item is a \l{Product}{product} of the \l{Product::}{type}
+ A StaticLibrary item is a \l{Library}{library} of the \l{Product::}{type}
\c "staticlibrary".
*/
-
-/*!
- \qmlproperty bool StaticLibrary::install
-
- If \c{true}, the library will be installed to \l installDir.
-
- \defaultvalue \c false
- \since Qbs 1.13
-*/
-
-/*!
- \qmlproperty string StaticLibrary::installDir
-
- Where to install the library, if \l install is enabled.
-
- The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
- when constructing the actual installation directory.
-
- \defaultvalue \c Library/Frameworks if the library is a \l{bundle::isBundle}{bundle},
- \c lib otherwise.
- \since Qbs 1.13
-*/
diff --git a/doc/reference/items/convenience/xpcservice.qdoc b/doc/reference/items/convenience/xpcservice.qdoc
index f786cf9ae..682d161b9 100644
--- a/doc/reference/items/convenience/xpcservice.qdoc
+++ b/doc/reference/items/convenience/xpcservice.qdoc
@@ -26,7 +26,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-convenience-items.html
\previouspage StaticLibrary
\qmltype XPCService
\inherits Application
diff --git a/doc/reference/items/language/artifact.qdoc b/doc/reference/items/language/artifact.qdoc
index f64e2f0c9..6a6d80cd2 100644
--- a/doc/reference/items/language/artifact.qdoc
+++ b/doc/reference/items/language/artifact.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\nextpage Depends
\ingroup list-of-language-items
\qmltype Artifact
diff --git a/doc/reference/items/language/depends.qdoc b/doc/reference/items/language/depends.qdoc
index 8a3e23ba9..937828b8c 100644
--- a/doc/reference/items/language/depends.qdoc
+++ b/doc/reference/items/language/depends.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Artifact
\nextpage Export
\qmltype Depends
@@ -128,7 +127,19 @@
The \l required and \l profiles properties are ignored if this property is
set.
- Product types attached via Module::additionalProductTypes are not considered.
+ \note This property does not work recursively. Consider this example:
+ \code
+ Product {
+ name: "A"
+ type: "x"
+ Depends { productTypes: "someTag" }
+ }
+ Product {
+ name: "B"
+ Depends { productTypes: "x" }
+ }
+ \endcode
+ It is not guaranteed that \c A will show up in \c B's dependencies.
\nodefaultvalue
*/
@@ -186,12 +197,3 @@
\nodefaultvalue
*/
-
-/*!
- \qmlproperty bool Depends::enableFallback
-
- Whether to fall back to a pkg-config based \l{Module Providers}{module provider}
- if the dependency is not found.
-
- \defaultvalue \c true
-*/
diff --git a/doc/reference/items/language/export.qdoc b/doc/reference/items/language/export.qdoc
index d8ed4c33d..e3648fc3e 100644
--- a/doc/reference/items/language/export.qdoc
+++ b/doc/reference/items/language/export.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Depends
\nextpage FileTagger
\qmltype Export
@@ -45,8 +44,8 @@
name: "A"
Export {
Depends { name: "cpp" }
- cpp.includePaths: product.sourceDirectory
- cpp.defines: ["USING_" + product.name.toUpperCase()]
+ cpp.includePaths: exportingProduct.sourceDirectory
+ cpp.defines: ["USING_" + exportingProduct.name.toUpperCase()]
}
}
@@ -56,16 +55,45 @@
}
\endcode
- The sources in product B will be able to use headers from product A without specifiying
+ The sources in product B will be able to use headers from product A without specifying
the full path to them, because the include path has been made known to the compiler via
A's Export item. Additionally, product B will be compiled with the define \c{USING_A}.
- \note This relationship is transitive, so a product C depending on product B will also
- get the include paths and preprocessor macros via A's Export item.
+ The dependent \l{Product}'s modules are not exported unless explicitly specified within the
+ \l{Export} item:
+ \code
+ Product {
+ name: "B-Exporting-A"
+ Depends { name: "A" }
+ Export {
+ Depends { name: "A" }
+ }
+ }
+ \endcode
+
+ The relationship of the exported dependencies is transitive. A product C depending on a
+ product B-Exporting-A will also get a direct dependency on A and thus inherit include
+ paths and preprocessor macros exported by A.
+
+ \code
+ Product {
+ name: "C"
+ Depends { name: "B-Exporting-A" }
+ }
+ \endcode
- In contrast to Module items, \c{product} within Export items refers to the product which defines
- the Export item. Use the \c{importingProduct} variable to refer to the product that
- pulls in the resulting module.
+ Within an Export item, you can use the \c exportingProduct variable to refer to
+ the product which defines the Export item. Use the \c{importingProduct} variable
+ to refer to the product that pulls in the resulting module:
+ \code
+ Product {
+ name: "D"
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: [exportingProduct.sourceDirectory, importingProduct.buildDirectory]
+ }
+ }
+ \endcode
*/
/*!
@@ -81,10 +109,10 @@
project against it), you would write something like the following:
\code
Export {
- Depends { name: cpp" }
- cpp.includePaths: [product.sourceDirectory]
+ Depends { name: "cpp" }
+ cpp.includePaths: [exportingProduct.sourceDirectory]
prefixMapping: [{
- prefix: product.sourceDirectory,
+ prefix: exportingProduct.sourceDirectory,
replacement: FileInfo.joinPaths(qbs.installPrefix, "include")
}]
}
diff --git a/doc/reference/items/language/filetagger.qdoc b/doc/reference/items/language/filetagger.qdoc
index 1f01037b5..5b2b4cb1f 100644
--- a/doc/reference/items/language/filetagger.qdoc
+++ b/doc/reference/items/language/filetagger.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Export
\nextpage Group
\qmltype FileTagger
diff --git a/doc/reference/items/language/group.qdoc b/doc/reference/items/language/group.qdoc
index caeffcfaa..fa6784ca6 100644
--- a/doc/reference/items/language/group.qdoc
+++ b/doc/reference/items/language/group.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage FileTagger
\nextpage JobLimit
\qmltype Group
@@ -49,21 +48,21 @@
}
Group {
name: "Windows files"
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
files: "myclass_win_impl.cpp"
}
Group {
name: "Unix files"
- condition: qbs.targetOS.contains("unix")
+ condition: qbs.targetOS.includes("unix")
files: "unixhelper.cpp"
Group {
name: "Linux files"
- condition: qbs.targetOS.contains("linux")
+ condition: qbs.targetOS.includes("linux")
files: "myclass_linux_impl.cpp"
}
Group {
name: "FreeBSD files"
- condition: qbs.targetOS.contains("freebsd")
+ condition: qbs.targetOS.includes("freebsd")
files: "myclass_freebsd_impl.cpp"
}
}
@@ -75,10 +74,13 @@
}
}
\endcode
- When specifying files, you can use the wildcards "*", "?" and "[]", which have their usual meaning.
- By default, matching files are only picked up directly from the parent directory, but you can tell \QBS to
- consider the whole directory tree. It is also possible to exclude certain files from the list.
- The pattern ** used in a pathname expansion context will match all files and zero or more
+ When specifying files, you can use the wildcards \c "*", \c "?" and \c "[]", which
+ have their
+ \l{https://en.wikipedia.org/wiki/Wildcard_character#File_and_directory_patterns}{usual meaning}
+ as in Unix Shell. By default, matching files are only picked up directly from the
+ parent directory, but you can tell \QBS to consider the whole directory tree.
+ It is also possible to exclude certain files from the list.
+ The pattern \c "**" used in a pathname expansion context will match all files and zero or more
directories and subdirectories.
For example:
\snippet reference/items/language/group.qbs 0
@@ -115,13 +117,15 @@
*/
/*!
- \qmlproperty list Group::files
+ \qmlproperty pathList 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.
+ The values can contain wildcards.
+
\defaultvalue An empty list
*/
@@ -147,7 +151,7 @@
*/
/*!
- \qmlproperty list Group::fileTagsFilter
+ \qmlproperty stringList 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
@@ -171,7 +175,7 @@
*/
/*!
- \qmlproperty list Group::fileTags
+ \qmlproperty stringList Group::fileTags
A list of file tags to attach to the group's files. These can then be
matched by a \l{Rule}{rule}.
@@ -197,10 +201,13 @@
*/
/*!
- \qmlproperty list Group::excludeFiles
+ \qmlproperty pathList Group::excludeFiles
+
+ A list of files that are \e subtracted from the \l{files} list.
- A list of files that are \e subtracted from the files list. Useful when
- using wildcards.
+ The values can contain wildcards.
+
+ This property is ignored if \l{fileTagsFilter} is set.
\defaultvalue An empty list
*/
diff --git a/doc/reference/items/language/joblimit.qdoc b/doc/reference/items/language/joblimit.qdoc
index cd68bae31..5ac3689e0 100644
--- a/doc/reference/items/language/joblimit.qdoc
+++ b/doc/reference/items/language/joblimit.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Group
\nextpage Module
\qmltype JobLimit
diff --git a/doc/reference/items/language/module.qdoc b/doc/reference/items/language/module.qdoc
index 18706b4b8..48ad583c8 100644
--- a/doc/reference/items/language/module.qdoc
+++ b/doc/reference/items/language/module.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage JobLimit
\nextpage ModuleProvider
\qmltype Module
@@ -170,64 +169,15 @@
\qml
Module {
property bool featureEnabled:
- (product.type.contains("application")) ? true : false
+ (product.type.includes("application")) ? true : false
}
\endqml
- \section1 Special Property 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:
- \code
- Product { // defined in MyProduct.qbs
- Depends { name: "mymodule" }
- mymodule.someProperty: ["value1"]
- }
- ------ some other file ------
- MyProduct {
- mymodule.someProperty: base.concat(["value2"]) // => ["value1", "value2"]
- }
- \endcode
-
- \section2 \c original
- This is the value of the property in the module itself (possibly overridden from a profile or
- the command line). Use it to set a module property conditionally:
- \code
- Module { // This is mymodule
- property string aProperty: "z"
- }
- ----------
- Product {
- Depends { name: "mymodule" }
- Depends { name: "myothermodule" }
- mymodule.aProperty: myothermodule.anotherProperty === "x" ? "y" : original // => "y" if myothermodule.anotherProperty is "x", "z" otherwise
- \endcode
-
- \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} and \l{Properties} items:
- \code
- Product {
- Depends { name: "mymodule" }
- mymodule.someProperty: ["value1"]
- Group {
- name: "special files"
- files: ["somefile1", "somefile2"]
- mymodule.someProperty: outer.concat(["value"]) // => ["value1", "value2"]
- }
- }
- \endcode
+ \section2 Special Property Values
+ For every property defined in a module, \QBS provides the special
+ \l{Special Property Values#original}{original} value containing the value of the property in
+ the module itself (possibly overridden from a profile).
\section1 Dependency Parameters
diff --git a/doc/reference/items/language/moduleprovider.qdoc b/doc/reference/items/language/moduleprovider.qdoc
index ddbc25959..09cabb39b 100644
--- a/doc/reference/items/language/moduleprovider.qdoc
+++ b/doc/reference/items/language/moduleprovider.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Module
\nextpage Parameter
\qmltype ModuleProvider
@@ -41,6 +40,8 @@
The actual module creation is done on the right-hand side of the
\l{ModuleProvider::relativeSearchPaths}{relativeSearchPaths} property.
+ A ModuleProvider item may contain \l{Probe} items.
+
Here is a complete minimal example of a module provider. It just creates an empty module.
If you put this item into the file \c {module-providers/mymodule/provider.qbs}
in your project source directory, you will be able to successfully build a product which
@@ -66,19 +67,46 @@
*/
/*!
+ \qmlproperty bool ModuleProvider::isEager
+
+ Holds whether provider is eager.
+
+ Eager provider is executed only once and should create multiple modules at once when executed).
+ A non-eager provider is executed multiple times, one time for each module \QBS tries to
+ instantiate.
+
+ \sa ModuleProvider::moduleName
+ \default true
+*/
+
+/*!
\qmlproperty string ModuleProvider::name
The name of the module provider.
- This property is set by \QBS. For simple dependency names, it is the name of the dependency
- as specified in the \l Depends item. If the dependency name consists of multiple components,
- the value is the name up until (and including) the component that corresponds to the directory
- the provider was found in. For instance, if the dependency is \c {x.m1} and the provider was
- found in \c {module-providers/x/m1/provider.qbs}, then \c name is \c {x.m1}.
+ This property is set by \QBS.
+
+ If provider is \l{How \QBS Uses Module Providers}{requested} via the
+ \l{Product::qbsModuleProviders}{qbsModuleProviders} property, it is the name specified in this
+ property and matches the provider file name, without the \c .qbs extension.
+ Otherwise, it is the name of the directory the provider was found in, relative to
+ the particular module-providers base directory. For instance, if the dependency is \c {x.m1} and
+ the provider was found in \c {module-providers/x/m1/provider.qbs}, then \c name is \c {x.m1}.
If the provider was found in \c {module-providers/x/provider.qbs}, then \c name is \c x.
*/
/*!
+ \qmlproperty string ModuleProvider::moduleName
+
+ This property is set by QBS for non-eager providers and contains the name of the module
+ that is currently being instantiated by the provider.
+
+ For eager providers, the value of this property is \c undefined.
+
+ \sa ModuleProvider::isEager
+*/
+
+/*!
\qmlproperty string ModuleProvider::outputBaseDir
The path under which the new modules should be created when \l relativeSearchPaths
diff --git a/doc/reference/items/language/parameter.qdoc b/doc/reference/items/language/parameter.qdoc
index c544af2d7..9a1b0345b 100644
--- a/doc/reference/items/language/parameter.qdoc
+++ b/doc/reference/items/language/parameter.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Module
\nextpage Parameters
\qmltype Parameter
diff --git a/doc/reference/items/language/parameters.qdoc b/doc/reference/items/language/parameters.qdoc
index bbccb222c..fb7653528 100644
--- a/doc/reference/items/language/parameters.qdoc
+++ b/doc/reference/items/language/parameters.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Parameter
\nextpage Probe
\qmltype Parameters
@@ -33,10 +32,10 @@
\ingroup list-of-items
\keyword QML.Parameters
- \brief Defines default values for dependency parameters within Export items.
+ \brief Defines default values for dependency parameters within Module and Export items.
The Parameters item defines default values for dependency parameters within
- \l{Export} items.
+ \l{Module} and \l{Export} items.
Example:
\code
diff --git a/doc/reference/items/language/probe.qdoc b/doc/reference/items/language/probe.qdoc
index 4ebfae319..8e31d8827 100644
--- a/doc/reference/items/language/probe.qdoc
+++ b/doc/reference/items/language/probe.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Parameters
\nextpage Product
\qmltype Probe
@@ -36,7 +35,7 @@
\brief Locates files outside the project.
- Probe items can appear inside \l{Product} and \l{Project} items.
+ Probe items can appear inside \l{Product}, \l{Project} and \l{ModuleProvider} 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
diff --git a/doc/reference/items/language/product.qdoc b/doc/reference/items/language/product.qdoc
index 6b87cffc0..1ae29741c 100644
--- a/doc/reference/items/language/product.qdoc
+++ b/doc/reference/items/language/product.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Probe
\nextpage Profile
\qmltype Product
@@ -207,9 +206,13 @@
/*!
\qmlproperty stringList Product::qbsSearchPaths
+ A list of paths that are searched for imports, modules and module providers.
+
The value set here will be merged with the value of
\l{Project::qbsSearchPaths}{project.qbsSearchPaths}.
+ For the details about how to add custom items, see the \l{Custom Modules and Items} page.
+
\defaultvalue \l{Project::qbsSearchPaths}{project.qbsSearchPaths}
*/
@@ -280,3 +283,15 @@
The value of this property is automatically set by \QBS and cannot be
changed by the user.
*/
+
+/*!
+ \qmlproperty stringList Product::qbsModuleProviders
+
+ The list of \l{Module Providers} to use for this product.
+
+ Overrides \l{Project::qbsModuleProviders}{Project.qbsModuleProviders}.
+
+ \sa Project::qbsModuleProviders
+
+ \since Qbs 1.21
+*/
diff --git a/doc/reference/items/language/profile.qdoc b/doc/reference/items/language/profile.qdoc
index b0eccc803..3c41b312c 100644
--- a/doc/reference/items/language/profile.qdoc
+++ b/doc/reference/items/language/profile.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Product
\nextpage Project
\qmltype Profile
diff --git a/doc/reference/items/language/project.qdoc b/doc/reference/items/language/project.qdoc
index d2db644f6..b1dc6e9de 100644
--- a/doc/reference/items/language/project.qdoc
+++ b/doc/reference/items/language/project.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Profile
\nextpage Properties
\qmltype Project
@@ -92,11 +91,13 @@
/*!
\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
+ A list of paths that are searched for imports, modules and module providers 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.
+ For the details about how to add custom items, see the \l{Custom Modules and Items} page.
+
\defaultvalue An empty list
*/
@@ -124,3 +125,19 @@
\defaultvalue \c "1.3.0"
*/
+
+/*!
+ \qmlproperty stringList Project::qbsModuleProviders
+
+ The list of \l{Module Providers} to use for this project.
+
+ Providers contribute to the \l{Product::}{qbsSearchPaths} in the order specified here, so
+ modules generated by providers specified earlier are prioritized.
+ Currently, this order also corresponds with the actual execution order of the providers, but
+ this should not be relied upon.
+
+ \sa Product::qbsModuleProviders
+
+ \since Qbs 1.21
+*/
+
diff --git a/doc/reference/items/language/properties.qdoc b/doc/reference/items/language/properties.qdoc
index a4d0d46a3..3a71a035b 100644
--- a/doc/reference/items/language/properties.qdoc
+++ b/doc/reference/items/language/properties.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Project
\nextpage PropertyOptions
\qmltype Properties
@@ -45,7 +44,7 @@
\code
Product {
Properties {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
cpp.defines: ["ON_WINDOWS"]
cpp.includePaths: ["extraWindowsIncludes"]
}
@@ -58,12 +57,12 @@
\code
Product {
Properties {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
cpp.defines: ["ON_WINDOWS"]
cpp.includePaths: ["myWindowsIncludes"]
}
Properties {
- condition: qbs.targetOS.contains("linux")
+ condition: qbs.targetOS.includes("linux")
cpp.defines: ["ON_LINUX"]
cpp.includePaths: ["myLinuxIncludes"]
}
@@ -74,32 +73,32 @@
\code
Product {
cpp.defines: {
- if (qbs.targetOS.contains("windows"))
+ if (qbs.targetOS.includes("windows"))
return ["ON_WINDOWS"];
- if (qbs.targetOS.contains("linux"))
+ if (qbs.targetOS.includes("linux"))
return ["ON_LINUX"];
return ["ON_UNKNOWN_PLATFORM"];
}
cpp.includePaths: {
- if (qbs.targetOS.contains("windows"))
+ if (qbs.targetOS.includes("windows"))
return ["myWindowsIncludes"];
- if (qbs.targetOS.contains("linux"))
+ if (qbs.targetOS.includes("linux"))
return ["myLinuxIncludes"];
return base;
}
}
\endcode
- In Properties items, one can access the \l{Module#outer}{outer value} of a
+ In Properties items, one can access the \l{Special Property Values#outer}{outer} value of a
property.
\code
Product {
Properties {
- condition: qbs.targetOS.contains("windows")
+ condition: qbs.targetOS.includes("windows")
cpp.defines: outer.concat("ON_WINDOWS") // === ["FOO", "ON_WINDOWS"]
}
Properties {
- condition: qbs.targetOS.contains("linux")
+ condition: qbs.targetOS.includes("linux")
cpp.defines: ["ON_LINUX"] // === ["ON_LINUX"]
}
cpp.defines: ["FOO"]
diff --git a/doc/reference/items/language/propertyoptions.qdoc b/doc/reference/items/language/propertyoptions.qdoc
index a953489a0..afbba7104 100644
--- a/doc/reference/items/language/propertyoptions.qdoc
+++ b/doc/reference/items/language/propertyoptions.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Properties
\nextpage Rule
\inqmlmodule QbsLanguageItems
diff --git a/doc/reference/items/language/rule.qdoc b/doc/reference/items/language/rule.qdoc
index 62a32caf5..ec5865444 100644
--- a/doc/reference/items/language/rule.qdoc
+++ b/doc/reference/items/language/rule.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage PropertyOptions
\nextpage Scanner
\qmltype Rule
diff --git a/doc/reference/items/language/scanner.qdoc b/doc/reference/items/language/scanner.qdoc
index 9ec575684..d3758ef61 100644
--- a/doc/reference/items/language/scanner.qdoc
+++ b/doc/reference/items/language/scanner.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Rule
\nextpage SubProject
\qmltype Scanner
diff --git a/doc/reference/items/language/subproject.qdoc b/doc/reference/items/language/subproject.qdoc
index 91c879b55..d2bf018a0 100644
--- a/doc/reference/items/language/subproject.qdoc
+++ b/doc/reference/items/language/subproject.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage list-of-language-items.html
\previouspage Scanner
\qmltype SubProject
\inqmlmodule QbsLanguageItems
@@ -94,6 +93,20 @@
*/
/*!
+ \qmlproperty bool SubProject::condition
+
+ Whether the sub-project is added. If \c false, the sub-project is not
+ included.
+
+ Setting this property has the same effect as setting the \c{condition}
+ property within a \l{Properties} item. If both this property and the
+ \c{condition} property within a \l{Properties} item are defined, the
+ sub-project is included only if both properties evaluate to \c{true}.
+
+ \defaultvalue \c true
+*/
+
+/*!
\qmlproperty path SubProject::filePath
The file path of the project to add as a sub-project. If the top-level item
diff --git a/doc/reference/items/probe/binary-probe.qdoc b/doc/reference/items/probe/binary-probe.qdoc
index 930043829..919d0b89e 100644
--- a/doc/reference/items/probe/binary-probe.qdoc
+++ b/doc/reference/items/probe/binary-probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 Ivan Komissarov
+** Copyright (C) 2019 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,9 +26,8 @@
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype BinaryProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.BinaryProbe
\inherits PathProbe
@@ -51,6 +50,7 @@
For example, BinaryProbe can be used to search for a protobuf compiler executable as follows:
\code
+ // Assuming module is called "myproto"
import qbs.File
import qbs.Probes
@@ -71,10 +71,10 @@
Rule {
// rule input/outputs here...
- // run executable
+ // run executable for the module called "myproto":
prepare: {
var args = // initialize arguments...
- var cmd = new Command(executableFilePath, args);
+ var cmd = new Command(input.myproto.executableFilePath, args);
cmd.highlight = "codegen";
cmd.description = "generating protobuf files for " + input.fileName;
return [cmd];
diff --git a/doc/reference/items/probe/conanfile-probe.qdoc b/doc/reference/items/probe/conanfile-probe.qdoc
new file mode 100644
index 000000000..cc91b9237
--- /dev/null
+++ b/doc/reference/items/probe/conanfile-probe.qdoc
@@ -0,0 +1,257 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Richard Weickelt
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype ConanfileProbe
+ \inqmlmodule QbsProbes
+ \ingroup list-of-items
+ \keyword QML.ConanfileProbe
+
+ \brief Extracts information about dependencies from a Conan recipe file.
+
+ The \c ConanfileProbe interfaces \QBS to the \l{https://conan.io/}{Conan
+ package manager}. It runs
+ \l{https://docs.conan.io/en/latest/reference/commands/consumer/install.html}{conan
+ install} on a Conan recipe file such as \c conanfile.py or \c conanfile.txt
+ and extracts all available meta information about package dependencies using
+ the \l{https://docs.conan.io/en/latest/reference/generators/json.html}{json
+ generator}. The output may be used to set up \l{Profile} items or module
+ properties in products. \c ConanfileProbe can also be used to run other
+ Conan generators and to retrieve their output.
+
+ \section1 Examples
+
+ In the following examples we assume that our project contains a \c conanfile.py.
+ This file describes all dependencies of our project. The dependency packages are
+ expected to export meta information to be consumed by our project.
+
+ \section2 Including Files Generated by Conan
+
+ Conan has a built-in
+ \l{https://docs.conan.io/en/latest/reference/generators/qbs.html}{qbs
+ generator} that creates a project file containing dummy products. This is
+ the easiest way to access dependencies, but also the least flexible one. It
+ requires each Conan package to export correct meta information and works only
+ if the dependency is a library.
+
+ \qml
+ import qbs.Probes
+
+ Project {
+ Probes.ConanfileProbe {
+ id: conan
+ conanfilePath: project.sourceDirectory + "/conanfile.py"
+ generators: "qbs"
+ }
+
+ references: conan.generatedFilesPath + "/conanbuildinfo.qbs"
+
+ CppApplication {
+ type: "application"
+ files: "main.cpp"
+ Depends { name: "mylib" }
+ }
+ }
+ \endqml
+
+ \section2 Setting Module Properties in Products
+
+ When a product depends on a Conan package that does not have a
+ dedicated \l{List of Modules}{module}, package meta information may be
+ directly fed into the \l{cpp} module.
+
+ This approach is very flexible.
+
+ \qml
+ import qbs.Probes
+
+ CppApplication {
+ Probes.ConanfileProbe {
+ id: conan
+ conanfilePath: product.sourceDirectory + "/conanfile.py"
+ options: ({opt1: "True"; opt2: "TheValue"})
+ }
+ cpp.includePaths: conan.dependencies["myLib"].include_paths
+ cpp.libraryPaths: conan.dependencies["myLib"].lib_paths
+ cpp.dynamicLibraries: conan.dependencies["mylib"].libs
+ }
+ \endqml
+
+ \section2 Setting Up a Profile
+
+ When multiple products depend on one or more Conan packages, the dependency
+ information may be combined in a \l{Profile}. This is especially useful when
+ \QBS modules are available for some of the packages, but some of their
+ properties need to be initialized. Otherwise, it would have to be done
+ manually in global profiles.
+
+ \qml
+ import qbs.Probes
+
+ Project {
+ Probes.ConanfileProbe {
+ id: conan
+ conanfilePath: project.sourceDirectory + "/conanfile.py"
+ }
+ Profile {
+ name: "arm-gcc"
+ cpp.toolchainInstallPath: conan.dependencies["arm-none-eabi-gcc"].rootpath + "/bin"
+ cpp.toolchainPrefix: "arm-linux-gnueabi-"
+ qbs.toolchainType: "gcc"
+ }
+ }
+ \endqml
+
+ This allows fully automated dependency management, including compiler
+ toolchains and is very useful when teams work in heterougeneous
+ environments.
+
+*/
+
+/*!
+ \qmlproperty stringList ConanfileProbe::additionalArguments
+
+ Additional command line arguments that are appended to the \c{conan install}
+ command.
+
+ \defaultvalue []
+*/
+
+/*!
+ \qmlproperty path ConanfileProbe::conanfilePath
+
+ Path to a \c conanfile.py or \c conanfile.txt that is used by this probe.
+
+ This property cannot be set at the same time as \l{ConanfileProbe::}{packageReference}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var ConanfileProbe::dependencies
+
+ This property contains the same information as
+ \l{ConanfileProbe::}{json}.dependencies, but instead of an array, \c
+ dependencies is a map with package names as keys for convenient access.
+
+ \readonly
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty path ConanfileProbe::executable
+
+ The name of or the path to the Conan executable.
+
+ \defaultvalue "conan.exe" on Windows, "conan" otherwise
+*/
+
+/*!
+ \qmlproperty path ConanfileProbe::generatedFilesPath
+
+ The path of the folder where Conan generators store their files. Each
+ instance of this probe creates a unique folder under
+ \l{Project::buildDirectory}{Project.buildDirectory}. The folder name is a
+ hash of the arguments supplied to \c{conan install}.
+
+ \readonly
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList ConanfileProbe::generators
+
+ Conan generators to be executed by this probe. The
+ \l{https://docs.conan.io/en/latest/reference/generators/json.html}{JSON
+ generator} is always enabled. Generated files are written to the
+ \l{ConanfileProbe::generatedFilesPath}{generatedFilesPath} folder.
+
+ \sa {https://docs.conan.io/en/latest/reference/generators.html}{Available
+ generators}
+
+ \defaultvalue ["json"]
+*/
+
+/*!
+ \qmlproperty var ConanfileProbe::json
+
+ The parsed output of Conan's
+ \l{https://docs.conan.io/en/latest/reference/generators/json.html}{JSON
+ generator} as a JavaScript object.
+
+ \readonly
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var ConanfileProbe::options
+
+ Options applied to \c{conan install} via the \c{-o} flag.
+ This property is an object in the form \c{key:value}.
+
+ Example:
+ \qml
+ options: ({someOpt: "True", someOtherOpt: "TheValue"})
+ \endqml
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string ConanfileProbe::packageReference
+
+ Reference of a Conan package in the form \c{name/version@user/channel}.
+ Use this property if you want to probe an existing package in the local
+ cache or on a remote.
+
+ This property cannot be set at the same time as \l{ConanfileProbe::}{conanfilePath}.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var ConanfileProbe::settings
+
+ Settings applied to \c{conan install} via the \c{-s} flag.
+ This property is an object in the form \c{key:value}.
+
+ Example:
+ \qml
+ settings: ({os: "Linux", compiler: "gcc"})
+ \endqml
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var ConanfileProbe::verbose
+
+ Set to \c{true} to print all output of `conan install`.
+ If this property is \c{false} only error output will be printed.
+
+ \defaultvalue \c{false}
+*/
diff --git a/doc/reference/items/probe/dmc-probe.qdoc b/doc/reference/items/probe/dmc-probe.qdoc
new file mode 100644
index 000000000..36d99cf93
--- /dev/null
+++ b/doc/reference/items/probe/dmc-probe.qdoc
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 Denis Shienkov <denis.shienkov@gmail.com>
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype DmcProbe
+ \inqmlmodule QbsProbes
+ \ingroup list-of-items
+ \keyword QML.DmcProbe
+ \inherits PathProbe
+ \brief Collects Digital Mars toolchain compiler information.
+ \since Qbs 1.13
+ \internal
+
+ Detects the version, supported architecture, the platform
+ endianness, and other stuff for the specified compiler executable
+ from the \l{https://www.digitalmars.com/}{Digital Mars} toolchain.
+*/
+
+/*!
+ \qmlproperty string DmcProbe::compilerFilePath
+
+ An input property which is a full path to the Digital Mars compiler
+ executable.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string DmcProbe::architecture
+
+ Detected architecture of the target platform's processor.
+
+ The possible values are \c "x86" and \c "x86_16".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string DmcProbe::targetPlatform
+
+ Detected target platform.
+
+ The possible values are \c "windows" and \c "dos".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int DmcProbe::versionMajor
+
+ Detected major compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int DmcProbe::versionMinor
+
+ Detected minor compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int DmcProbe::versionPatch
+
+ Detected patch compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList DmcProbe::includePaths
+
+ Detected compiler include paths.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var DmcProbe::compilerDefinesByLanguage
+
+ Detected set of compiler pre-defined macros depending
+ on the \c "C" or \c "C++" language.
+
+ \nodefaultvalue
+*/
diff --git a/doc/reference/items/probe/framework-probe.qdoc b/doc/reference/items/probe/framework-probe.qdoc
index 23ee57b3b..89986f48f 100644
--- a/doc/reference/items/probe/framework-probe.qdoc
+++ b/doc/reference/items/probe/framework-probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 Ivan Komissarov
+** Copyright (C) 2019 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,9 +26,8 @@
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype FrameworkProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.FrameworkProbe
\inherits PathProbe
diff --git a/doc/reference/items/probe/iar-probe.qdoc b/doc/reference/items/probe/iar-probe.qdoc
index c300f82b7..387e70b89 100644
--- a/doc/reference/items/probe/iar-probe.qdoc
+++ b/doc/reference/items/probe/iar-probe.qdoc
@@ -25,9 +25,8 @@
**
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype IarProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.IarProbe
\inherits PathProbe
@@ -53,7 +52,10 @@
Detected architecture of the target platform's processor.
- The possible values are \c "arm", \c "mcs51" and \c "avr".
+ The possible values are \c "arm", \c "mcs51", \c "avr", \c "avr32",
+ \c "stm8", \c "riscv", \c "rl78", \c "rx", \c "rh850", \c "v850",
+ \c "78k", \c "sh", \c "r32c", \c "m32c", \c "m16c", \c "msp430",
+ \c "hcs12", \c "hcs8", \c "m68k", and \c "cr16".
\nodefaultvalue
*/
diff --git a/doc/reference/items/probe/include-probe.qdoc b/doc/reference/items/probe/include-probe.qdoc
index f84df3f5f..eb8fcf8b9 100644
--- a/doc/reference/items/probe/include-probe.qdoc
+++ b/doc/reference/items/probe/include-probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 Ivan Komissarov
+** Copyright (C) 2019 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,9 +26,8 @@
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype IncludeProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.IncludeProbe
\inherits PathProbe
@@ -40,7 +39,6 @@
For example, IncludeProbe can be used to search for a zlib header as follows:
\code
- import qbs
import qbs.Probes
CppApplication {
diff --git a/doc/reference/items/probe/keil-probe.qdoc b/doc/reference/items/probe/keil-probe.qdoc
index f5aa07d83..b4b56e0aa 100644
--- a/doc/reference/items/probe/keil-probe.qdoc
+++ b/doc/reference/items/probe/keil-probe.qdoc
@@ -25,9 +25,8 @@
**
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype KeilProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.KeilProbe
\inherits PathProbe
@@ -53,7 +52,7 @@
Detected architecture of the target platform's processor.
- The possible values are \c "arm" and \c "mcs51".
+ The possible values are \c "arm", \c "mcs51", \c "mcs251" and \c "c166".
\nodefaultvalue
*/
diff --git a/doc/reference/items/probe/library-probe.qdoc b/doc/reference/items/probe/library-probe.qdoc
new file mode 100644
index 000000000..458e3679d
--- /dev/null
+++ b/doc/reference/items/probe/library-probe.qdoc
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype LibraryProbe
+ \inqmlmodule QbsProbes
+ \ingroup list-of-items
+ \keyword QML.IncludeProbe
+ \inherits PathProbe
+
+ \brief Locates library files outside the project.
+
+ On Windows, searches for library files within directories specified by the \c PATH environment
+ variable.
+
+ On Unix, searches for library files within directories specified by the \c LIBRARY_PATH
+ environment variable, as well as in \c "/usr/lib" and \c "/usr/local/lib".
+
+ On Linux, also searches in platform-specific directories, such as \c "/usr/lib64" and
+ \c "/usr/lib/x86_64-linux-gnu".
+
+ For example, LibraryProbe can be used to search for a \c zlib library as follows:
+
+ \code
+ import qbs.Probes
+
+ CppApplication {
+ Probes.LibraryProbe {
+ id: zlibProbe
+ names: "z"
+ }
+ cpp.libraryPaths: zlibProbe.found ? [zlibProbe.path] : []
+ cpp.dynamicLibraries: zlibProbe.found ? [zlibProbe.names] : []
+ files: 'main.cpp'
+ }
+ \endcode
+*/
diff --git a/doc/reference/items/probe/path-probe.qdoc b/doc/reference/items/probe/path-probe.qdoc
index eaaee9e54..729f11dde 100644
--- a/doc/reference/items/probe/path-probe.qdoc
+++ b/doc/reference/items/probe/path-probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2018 Ivan Komissarov
+** Copyright (C) 2018 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -25,9 +25,8 @@
**
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype PathProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.PathProbe
@@ -37,10 +36,11 @@
locations.
PathProbe takes as input lists of paths to search files from and file name patterns. The paths
- are specified by using the searchPaths, platformSearchPaths, environmentPaths, and
- platformEnvironmentPaths properties. The file name patterns are specified by the \l names and
- nameSuffixes properties. Returns the first file that matches the file name patterns. If no such
- file is found, the \l {Probe::found}{probe.found} property is set to \c false.
+ are specified by using the environmentPaths, searchPaths, platformEnvironmentPaths and
+ platformSearchPaths properties; the path are searched in the same order as listed. The file
+ name patterns are specified by the \l names and nameSuffixes properties. Returns the first file
+ that matches the file name patterns. If no such file is found, the
+ \l {Probe::found}{probe.found} property is set to \c false.
For example, a simple PathProbe that searches for the stdio.h header can be used as follows:
@@ -81,7 +81,7 @@
For example, when searching for a library, it might be necessary to check its architecture:
\code
PathProbe {
- pathSuffixes: ["*.so", *.dll]
+ pathSuffixes: [".so", ".dll", ".dylib"]
candidateFilter: {
function getLibraryArchitecture(file) { ... }
return function(file) {
@@ -148,7 +148,7 @@
The list of environment variables that contains paths where to search files. Paths in the
environment variable should be separated using
- \l{qbs::pathListSeparator}{qbs.pathListSeparator}.
+ \l{pathListSeparator}{FileInfo.pathListSeparator()}.
\nodefaultvalue
*/
@@ -158,7 +158,7 @@
The list of platform environment variables that contains paths where to search files. Paths in
the environment variable should be separated using
- \l{qbs::pathListSeparator}{qbs.pathListSeparator}.
+ \l{pathListSeparator}{FileInfo.pathListSeparator()}.
\nodefaultvalue
*/
@@ -169,6 +169,24 @@
This property contains the result list of all paths that were checked before a file was found
(including the file names).
+ This property is set even if the Probe didn't find anything and can be used to give the user
+ a hint what went wrong:
+ \code
+ Module {
+ Probes.BinaryProbe {
+ id: pythonProbe
+ names: "python"
+ }
+ validate: {
+ if (!pythonProbe.found) {
+ throw ModUtils.ModuleError(
+ "Could not find python binary at any of the following locations:\n\t" +
+ pythonProbe.candidatePaths.join("\n\t"));
+ }
+ }
+ }
+ \endcode
+
\nodefaultvalue
*/
diff --git a/doc/reference/items/probe/pkgconfig-probe.qdoc b/doc/reference/items/probe/pkgconfig-probe.qdoc
index 7bdaf4e19..66e008601 100644
--- a/doc/reference/items/probe/pkgconfig-probe.qdoc
+++ b/doc/reference/items/probe/pkgconfig-probe.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 Ivan Komissarov
+** Copyright (C) 2019 Ivan Komissarov (abbapoh@gmail.com)
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
@@ -26,9 +26,8 @@
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype PkgConfigProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.PkgConfigProbe
@@ -52,8 +51,12 @@
maxVersion: '5.99.99'
}
files: 'main.cpp'
- cpp.cxxFlags: pkgConfig.cflags
- cpp.linkerFlags: pkgConfig.libs
+ cpp.defines : pkgConfig.defines
+ cpp.includePaths: pkgConfig.includePaths
+ cpp.dynamicLibraries: pkgConfig.libraries
+ cpp.libraryPaths: pkgConfig.libraryPaths
+ cpp.commonCompilerFlags: pkgConfig.compilerFlags
+ cpp.linkerFlags: pkgConfig.linkerFlags
}
\endcode
*/
@@ -111,7 +114,7 @@
\qmlproperty string PkgConfigProbe::exactVersion
The exact version of the required package. If set, pkg-config will ignore packages with
- version greater than the value of this property.
+ version that is not equal to the value of this property.
\nodefaultvalue
*/
@@ -120,7 +123,7 @@
\qmlproperty string PkgConfigProbe::maxVersion
The maximum version of the required package. If set, pkg-config will ignore packages with
- version that is not equal to the value of this property.
+ version greater than the value of this property.
\nodefaultvalue
*/
@@ -195,9 +198,6 @@
This output property contains the list of library paths that should be passed to a linker when
using requested package.
- This property sets the value of the PKG_CONFIG_LIBDIR environment variable passed to
- the \c pkg-config binary.
-
\nodefaultvalue
*/
diff --git a/doc/reference/items/probe/sdcc-probe.qdoc b/doc/reference/items/probe/sdcc-probe.qdoc
index 1353eb736..06cb06891 100644
--- a/doc/reference/items/probe/sdcc-probe.qdoc
+++ b/doc/reference/items/probe/sdcc-probe.qdoc
@@ -25,9 +25,8 @@
**
****************************************************************************/
/*!
- \contentspage list-of-probes.html
\qmltype SdccProbe
- \ingroup list-of-probes
+ \inqmlmodule QbsProbes
\ingroup list-of-items
\keyword QML.SdccProbe
\inherits PathProbe
@@ -53,7 +52,7 @@
Detected architecture of the target platform's processor.
- The possible values are \c "mcs51".
+ The possible values are \c "mcs51", \c "stm8", and \c "hcs8".
\nodefaultvalue
*/
diff --git a/doc/reference/items/probe/watcom-probe.qdoc b/doc/reference/items/probe/watcom-probe.qdoc
new file mode 100644
index 000000000..8f06be974
--- /dev/null
+++ b/doc/reference/items/probe/watcom-probe.qdoc
@@ -0,0 +1,129 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 Denis Shienkov <denis.shienkov@gmail.com>
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype WatcomProbe
+ \inqmlmodule QbsProbes
+ \ingroup list-of-items
+ \keyword QML.WatcomProbe
+ \inherits PathProbe
+ \brief Collects Oopen Watcom toolchain compiler information.
+ \since Qbs 1.22
+ \internal
+
+ Detects the version, supported architecture, the platform
+ endianness, and other stuff for the specified compiler executable
+ from the \l{https://github.com/open-watcom}{Open Watcom} toolchain.
+*/
+
+/*!
+ \qmlproperty string WatcomProbe::compilerFilePath
+
+ An input property which is a full path to the Digital Mars compiler
+ executable.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string WatcomProbe::architecture
+
+ Detected architecture of the target platform's processor.
+
+ The possible values are \c "x86" and \c "x86_16".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string WatcomProbe::endianness
+
+ Detected endianness of the target platform's processor architecture.
+
+ The possible values are \c "big" and \c "little".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string WatcomProbe::targetPlatform
+
+ Detected target platform.
+
+ The possible values are \c "windows", \c "linux", \c "os2" and \c "dos".
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int WatcomProbe::versionMajor
+
+ Detected major compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int WatcomProbe::versionMinor
+
+ Detected minor compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty int WatcomProbe::versionPatch
+
+ Detected patch compiler version.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList WatcomProbe::includePaths
+
+ Detected compiler include paths.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var WatcomProbe::compilerDefinesByLanguage
+
+ Detected set of compiler pre-defined macros depending
+ on the \c "C" or \c "C++" language.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty var WatcomProbe::environment
+
+ Detected compiler run environment.
+
+ \nodefaultvalue
+*/
diff --git a/doc/reference/jsextensions/jsextension-binaryfile.qdoc b/doc/reference/jsextensions/jsextension-binaryfile.qdoc
index 59def1af4..c8c3bd4b1 100644
--- a/doc/reference/jsextensions/jsextension-binaryfile.qdoc
+++ b/doc/reference/jsextensions/jsextension-binaryfile.qdoc
@@ -28,7 +28,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-binaryfile.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-environment.qdoc b/doc/reference/jsextensions/jsextension-environment.qdoc
index 8579ecee5..465a157a2 100644
--- a/doc/reference/jsextensions/jsextension-environment.qdoc
+++ b/doc/reference/jsextensions/jsextension-environment.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-environment.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-file.qdoc b/doc/reference/jsextensions/jsextension-file.qdoc
index c12fcc4ef..f04055593 100644
--- a/doc/reference/jsextensions/jsextension-file.qdoc
+++ b/doc/reference/jsextensions/jsextension-file.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-file.html
\ingroup list-of-builtin-services
@@ -48,6 +47,9 @@
\note \c targetFilePath must be the counterpart of \c sourceFilePath at the new location,
\b{not} the new parent directory. This allows the copy to have a different name and is true
even if \c sourceFilePath is a directory.
+ \note The file is not copied if the source file timestamp is older than the destination file
+ timestamp. If you want to replace the newer file, you need to remove it first via
+ File.remove().
\section2 exists
\code
diff --git a/doc/reference/jsextensions/jsextension-fileinfo.qdoc b/doc/reference/jsextensions/jsextension-fileinfo.qdoc
index 967606ea7..d58c1a9e9 100644
--- a/doc/reference/jsextensions/jsextension-fileinfo.qdoc
+++ b/doc/reference/jsextensions/jsextension-fileinfo.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-fileinfo.html
\ingroup list-of-builtin-services
@@ -150,4 +149,26 @@
FileInfo.toWindowsSeparators(filePath: string): string
\endcode
Returns \c filePath with all '/' characters replaced by '\\'.
+
+ \section2 pathListSeparator
+ \code
+ FileInfo.pathListSeparator(): string
+ \endcode
+ Returns the host operating system separator for a path list that is used in environment
+ variables or other contexts.
+ \funsince 1.22
+
+ \section2 pathSeparator
+ \code
+ FileInfo.pathSeparator(): string
+ \endcode
+ Returns the host operating system path separator.
+ \funsince 1.22
+
+ \section2 executableSuffix
+ \code
+ FileInfo.executableSuffix(): string
+ \endcode
+ Returns the host operating system executable suffix.
+ \funsince 1.23
*/
diff --git a/doc/reference/jsextensions/jsextension-host.qdoc b/doc/reference/jsextensions/jsextension-host.qdoc
new file mode 100644
index 000000000..c011e90eb
--- /dev/null
+++ b/doc/reference/jsextensions/jsextension-host.qdoc
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 Raphaël Cotty <raphael.cotty@gmail.com>
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page jsextension-host.html
+ \ingroup list-of-builtin-services
+
+ \title Host Service
+ \brief Provides host information.
+
+ The \c Host service offers various information about the host environment, such as operating
+ system names, platform name.
+
+ \section1 Available Operations
+
+ \section2 architecture
+ \code
+ Host.architecture(): string
+ \endcode
+ Returns the host operating system architecture.
+
+ See \l{qbs::architecture}{qbs.architecture} for the target-specific equivalent property.
+ architecture.
+ \funsince 1.22
+
+ \section2 os
+ \code
+ Host.os(): string[]
+ \endcode
+ Returns the host operating system names.
+
+ See the \l{qbs::targetOS}{qbs.targetOS} for the target-specific equivalent property.
+ \funsince 1.22
+
+ \section2 platform
+ \code
+ Host.platform(): string
+ \endcode
+ Returns the host operating system platform.
+
+ See the \l{qbs::targetPlatform}{qbs.targetPlatform} for the target-specific equivalent property.
+ \funsince 1.22
+
+
+ \section2 osVersion
+ \code
+ Host.osVersion(): string
+ \endcode
+ Returns the host operating system version. Currently, only defined for Windows and Apple
+ platforms.
+
+ Consists of two or three numbers separated by dots. For example, \c "10.9" or \c "6.3.9600".
+ \funsince 1.22
+
+ \section2 osBuildVersion
+ \code
+ Host.osBuildVersion(): string
+ \endcode
+ Returns the host operating system build version. Currently, only defined for Windows and Apple
+ platforms.
+
+ On Windows, this is the 4 or 5 digit Windows build number and is equivalent
+ to \l{qbs::}{versionPatch}. On Apple platforms, this is a standard build number in the Apple
+ versioning scheme. For example, \c "13C64".
+ \funsince 1.22
+
+ \section2 osVersionParts
+ \code
+ Host.osVersionParts(): string[]
+ \endcode
+ Returns the host operating system version as a list.
+
+ For example, Windows 8.1 (version 6.3.9600) would correspond to a value of \c[6, 3, 9600].
+ \funsince 1.22
+
+ \section2 osVersionMajor
+ \code
+ Host.osVersionMajor(): number
+ \endcode
+ Returns the host operating system major version.
+ \funsince 1.22
+
+ \section2 osVersionMinor
+ \code
+ Host.osVersionMinor(): number
+ \endcode
+ Returns the host operating system minor version.
+ \funsince 1.22
+
+ \section2 osVersionPatch
+ \code
+ Host.osVersionPatch(): number
+ \endcode
+ Returns the host operating system patch level.
+ \funsince 1.22
+
+ \section2 nullDevice
+ \code
+ Host.nullDevice(): string[]
+ \endcode
+ Returns the platform-specific file path corresponding to the null device.
+ \funsince 1.22
+*/
diff --git a/doc/reference/jsextensions/jsextension-process.qdoc b/doc/reference/jsextensions/jsextension-process.qdoc
index dd942ecff..49b47f4b2 100644
--- a/doc/reference/jsextensions/jsextension-process.qdoc
+++ b/doc/reference/jsextensions/jsextension-process.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-process.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-propertylist.qdoc b/doc/reference/jsextensions/jsextension-propertylist.qdoc
index 869873aec..e1dad6e38 100644
--- a/doc/reference/jsextensions/jsextension-propertylist.qdoc
+++ b/doc/reference/jsextensions/jsextension-propertylist.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-propertylist.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-temporarydir.qdoc b/doc/reference/jsextensions/jsextension-temporarydir.qdoc
index 750653143..29f62725d 100644
--- a/doc/reference/jsextensions/jsextension-temporarydir.qdoc
+++ b/doc/reference/jsextensions/jsextension-temporarydir.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-temporarydir.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-textfile.qdoc b/doc/reference/jsextensions/jsextension-textfile.qdoc
index 65758b3bd..b2cf2c729 100644
--- a/doc/reference/jsextensions/jsextension-textfile.qdoc
+++ b/doc/reference/jsextensions/jsextension-textfile.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-textfile.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-utilities.qdoc b/doc/reference/jsextensions/jsextension-utilities.qdoc
index 793581999..686e17a99 100644
--- a/doc/reference/jsextensions/jsextension-utilities.qdoc
+++ b/doc/reference/jsextensions/jsextension-utilities.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-utilities.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextension-xml.qdoc b/doc/reference/jsextensions/jsextension-xml.qdoc
index b5d3891ae..26e2e6de8 100644
--- a/doc/reference/jsextensions/jsextension-xml.qdoc
+++ b/doc/reference/jsextensions/jsextension-xml.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page jsextension-xml.html
\ingroup list-of-builtin-services
diff --git a/doc/reference/jsextensions/jsextensions-general.qdoc b/doc/reference/jsextensions/jsextensions-general.qdoc
index 383f7b2bf..495e90f39 100644
--- a/doc/reference/jsextensions/jsextensions-general.qdoc
+++ b/doc/reference/jsextensions/jsextensions-general.qdoc
@@ -26,7 +26,6 @@
**
****************************************************************************/
/*!
- \contentspage index.html
\page jsextensions-general.html
\ingroup list-of-builtin-services
@@ -58,12 +57,6 @@
\section1 Extensions to JavaScript Built-in Objects
- \section2 Array.contains
- \code
- Array.contains(e: any): boolean
- \endcode
- Returns \c{true} if the array contains the element \c{e}. Returns \c{false} otherwise.
-
\section2 Array.containsAll
\code
Array.containsAll(other: any[]): boolean
@@ -86,24 +79,6 @@
Duplicates that would originate from the concatenation are removed.
The order of elements is preserved.
- \section2 String.contains
- \code
- String.contains(s: string): boolean
- \endcode
- Returns \c{true} if the string contains the substring \c{s}. Returns \c{false} otherwise.
-
- \section2 startsWith
- \code
- String.startsWith(s: string): boolean
- \endcode
- Returns \c{true} if the string starts with the substring \c{s}. Returns \c{false} otherwise.
-
- \section2 endsWith
- \code
- String.endsWith(s: string): boolean
- \endcode
- Returns \c{true} if the string ends with the substring \c{s}. Returns \c{false} otherwise.
-
\section1 Console API
diff --git a/doc/reference/module-providers/conan-module-provider.qdoc b/doc/reference/module-providers/conan-module-provider.qdoc
new file mode 100644
index 000000000..4edba94d8
--- /dev/null
+++ b/doc/reference/module-providers/conan-module-provider.qdoc
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2024 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype conan
+ \inqmlmodule QbsModuleProviders
+ \since 2.4
+
+ \brief Module provider for the Conan package manager.
+
+ This module provider allows integration with the \l{https://conan.io}{Conan} package manager.
+
+ \section1 Prerequisites
+ In order to use this provider, you will need to install the
+ \l{https://github.com/qbs/qbs/blob/master/src/conan/extensions/generators/qbsdeps.py}{QbsDeps generator}
+ first. In order to do so, clone the \QBS repository and run the following command from the \QBS
+ source directory:
+ \code
+ $ conan config install src/conan/
+ \endcode
+ This will copy the generator to \c .conan2/extensions/generators/qbsdeps.py in the user's home
+ directory.
+ Alternatively, you can use \c curl to download the file:
+ \code
+ $ curl 'https://github.com/qbs/qbs/raw/master/src/conan/extensions/generators/qbsdeps.py' -o ~/.conan2/extensions/generators/qbsdeps.py
+ \endcode
+
+ \section1 Example
+ For details on how to setup a project to use with Conan, see the \
+ l{https://github.com/qbs/qbs/blob/master/examples/protobuf/addressbook_conan}{addressbook_conan}
+ folder in examples.
+ First, you will need a \l{https://docs.conan.io/2/reference/conanfile_txt.html}{conanfile} as
+ shown below.
+ \code
+ [requires]
+ protobuf/3.21.12
+ [tool_requires]
+ protobuf/3.21.12
+ [generators]
+ QbsDeps
+ \endcode
+ We use the text version for simplicity, but you can use the Python conanfile as well.
+
+ Next, set the \l{Product::qbsModuleProviders}{qbsModuleProviders} property to \c "conan":
+ \snippet ../examples/protobuf/addressbook_conan/addressbook_conan.qbs 0
+
+ Install Conan dependencies and run the QbsDeps generator from the \c addressbook_conan dir:
+ \code
+ $ conan install . -g=QbsDeps --output-folder=build --build missing
+ \endcode
+ This will create the \c{./build/qbs-deps} directory contaning files for provider. Now you can
+ pass the conan install directory to the provider:
+ \code
+ $ qbs moduleProviders.conan.installDirectory:build
+ \endcode
+ You should see the following output if everything is correct:
+ \code
+ Build graph does not yet exist for configuration 'default'. Starting from scratch.
+ Resolving project for configuration default
+ Setting up Conan module 'protobuflib'
+ Setting up Conan module 'zlib'
+ ...
+ Build done for configuration default.
+ \endcode
+*/
+
+/*!
+ \qmlproperty string conan::installDirectory
+
+ The path to the conan install installDirectory.
+
+ \QBS searches for files created by the QbsDeps generator in that directory.
+
+ If not set, the provider will not be run.
+
+ \defaultvalue undefined
+*/
diff --git a/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc b/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc
new file mode 100644
index 000000000..a7f6fe6b7
--- /dev/null
+++ b/doc/reference/module-providers/qbspkgconfig-module-provider.qdoc
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype qbspkgconfig
+ \inqmlmodule QbsModuleProviders
+ \since 1.20
+
+ \brief Module provider based on the qbspkg-config library.
+
+ \QBS uses a built-in parser of the \c{*.pc} files and does not require the presence of the
+ \c pkg-config tool in the system. However, if the \c pkg-config tool is present, \QBS will
+ use the same libDirs as the system pkg-config uses by default; otherwise, a built-in list of
+ paths is used.
+
+ In order to enable usage of this provider in your Product, set the
+ \l{Product::qbsModuleProviders}{qbsModuleProviders} property as shown in the example below:
+ \snippet ../examples/pkgconfig-provider/pkgconfig-provider.qbs 0
+*/
+
+/*!
+ \qmlproperty string qbspkgconfig::executableFilePath
+
+ The path to the \c {pkg-config} executable. If not set, the pkg-config from PATH is used.
+
+ \defaultvalue undefined
+*/
+
+/*!
+ \qmlproperty stringList qbspkgconfig::libDirs
+
+ Set this if you need to overwrite the default search directories.
+ \note You do not need to set this for cross-compilation in order to point
+ to the sysroot. \QBS does that for you.
+
+ This property is the equivalent of the \c{PKG_CONFIG_LIBDIR} variable
+ for the \c{pkg-config} tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList qbspkgconfig::extraPaths
+
+ Set this if you need to add extra search directories.
+
+ This property is the equivalent of the \c{PKG_CONFIG_PATH} variable
+ for the \c{pkg-config} tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool qbspkgconfig::staticMode
+
+ If this property is \c true, then \QBS will include "private" libs and dependencies of the
+ package. This property is the equivalent of the
+ \c{--static} option for the \c{pkg-config} tool.
+
+ Set this if your product is to be linked statically.
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty bool qbspkgconfig::definePrefix
+
+ If this property is \c true, then \QBS will override the ${prefix} variable in the packages
+ with a value that is guessed based on the location of the .pc file.
+
+ This option corresponds to the \c --define-prefix / \c --dont-define-prefix command line
+ options of the \c pkg-config tool.
+
+ \defaultvalue \c true on Windows, \c false otherwise
+*/
+
+/*!
+ \qmlproperty stringList qbspkgconfig::executableNames
+
+ The names of the \c pkg-config executable to search for.
+
+ Note that since newer distributions use \l{http://pkgconf.org}{pkgconf} by default, it has
+ higher priority over \c pkg-config.
+
+ \defaultvalue \c{["pkgconf", "pkg-config"]}
+*/
+
+/*!
+ \qmlproperty path qbspkgconfig::sysroot
+
+ Set this property if you need to overwrite the default search sysroot path used by
+ \c pkg-config.
+
+ This can be useful if \c pkg-config files are located in the directory other than qbs.sysroot.
+ This is the case on macOS platform - all XCode profiles are sysrooted to the SDK
+ directory, but \c pkg-config is typically intalled using Brew and resides in the
+ \c /usr/local directory.
+
+ Setting this property to \c undefined or empty (\c "") value will use pkg-config's default
+ search paths:
+ \code
+ qbs resolve moduleProviders.qbspkgconfig.sysroot:undefined
+ \endcode
+
+ This property is the equivalent of the \c{PKG_CONFIG_SYSROOT_DIR} variable for the
+ \c{pkg-config} tool.
+
+ \defaultvalue \c "" on macOS, \c qbs.sysroot on other platforms
+*/
diff --git a/doc/reference/module-providers/qt-module-provider.qdoc b/doc/reference/module-providers/qt-module-provider.qdoc
new file mode 100644
index 000000000..cd77a0d12
--- /dev/null
+++ b/doc/reference/module-providers/qt-module-provider.qdoc
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype Qt
+ \inqmlmodule QbsModuleProviders
+
+ \brief Module provider that generates Qt modules.
+
+ Looking up a Qt installation happens via a \l{Module Providers}{module provider}.
+ By default, if a dependency to a Qt module is encountered, \QBS collects all Qt installations
+ it can find. This lookup happens by searching for \c qmake executables in the \c PATH
+ environment variable. Alternatively, you can explicitly tell \QBS which Qt
+ installations it should consider by setting the qmakeFilePaths
+ module provider \l{Parameterizing Module Providers}{property}. In that case,
+ the environment will be ignored. For instance, with the following Linux command line,
+ \QBS will build the project against a custom Qt instead of the standard one in \c{/usr/bin}:
+ \code
+ $ qbs moduleProviders.Qt.qmakeFilePaths:/opt/myqt/bin/qmake
+ \endcode
+ You can also set the module provider property in a profile. The simplest way to do
+ this is via the \l setup-qt tool. For examples of how to use this tool, see the
+ \l{Managing Qt Versions} section.
+
+ This provider is activated automatically when encountering a dependency on the Qt
+ module and the \l{Product::qbsModuleProviders}{qbsModuleProviders} property
+ is \c undefined:
+ \code
+ CppApplication {
+ Depends { name: "Qt.core" }
+ files: "main.cpp"
+ }
+ \endcode
+
+ Alternatively, you can activate this provider explicitly via the
+ \l{Product::qbsModuleProviders}{qbsModuleProviders} property:
+ \code
+ CppApplication {
+ Depends { name: "Qt.core" }
+ files: "main.cpp"
+ qbsModuleProviders: "Qt"
+ }
+ \endcode
+*/
+
+/*!
+ \qmlproperty stringList Qt::qmakeFilePaths
+
+ List of paths to \c qmake executables.
+
+ \defaultvalue undefined
+*/
diff --git a/doc/reference/modules/android-ndk-module.qdoc b/doc/reference/modules/android-ndk-module.qdoc
index e3a7ca22d..d3b16e2bf 100644
--- a/doc/reference/modules/android-ndk-module.qdoc
+++ b/doc/reference/modules/android-ndk-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Android.ndk
\inqmlmodule QbsModules
\since Qbs 1.4
@@ -79,6 +78,17 @@
*/
/*!
+ \qmlproperty string Android.ndk::buildId
+
+ Value to pass to the --build-id linker flag.
+ Plain --build-id option is used when buildId property is empty.
+
+ \since Qbs 1.21
+
+ \defaultvalue \c "sha1"
+*/
+
+/*!
\qmlproperty string Android.ndk::appStl
The library to use for C++. The possible values are:
diff --git a/doc/reference/modules/android-sdk-module.qdoc b/doc/reference/modules/android-sdk-module.qdoc
index 7733ae75d..ce27b6302 100644
--- a/doc/reference/modules/android-sdk-module.qdoc
+++ b/doc/reference/modules/android-sdk-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Android.sdk
\inqmlmodule QbsModules
\since Qbs 1.4
@@ -119,7 +118,7 @@
*/
/*!
- \qmlproperty string Android.sdk::assetsDir
+ \qmlproperty path Android.sdk::assetsDir
The base directory for Android assets in the respective product.
@@ -201,7 +200,7 @@
*/
/*!
- \qmlproperty string Android.sdk::resourcesDir
+ \qmlproperty path Android.sdk::resourcesDir
The base directory for Android resources in the respective product.
@@ -233,3 +232,49 @@
\qmlproperty stringList Android.sdk::aidlSearchPaths
Search paths for import statements to pass to the \c aidl tool via the \c{-I} option.
*/
+
+/*!
+ \qmlproperty string Android.sdk::aaptName
+ \since Qbs 1.17
+
+ Name of the aapt binary. Allowed options: "aapt" and "aapt2".
+
+ \defaultvalue \c "aapt2"
+*/
+
+/*!
+ \qmlproperty string Android.sdk::packageType
+ \since Qbs 1.17
+
+ Type of the package. Allowed options: "apk" and "aab".
+ Type "apk" generates a runnable package whereas "aab" generates a package for Google Play.
+
+ \defaultvalue \c "apk"
+*/
+
+/*!
+ \qmlproperty string Android.sdk::dexCompilerName
+ \since Qbs 1.20
+
+ Name of the dex compiler binary. Allowed options: "dx" and "d8".
+
+ \defaultvalue \c "d8"
+*/
+
+/*!
+ \qmlproperty string Android.sdk::minimumVersion
+ \since Qbs 1.17
+
+ Minimum API Level required for the application to run.
+
+ \defaultvalue \c "21"
+*/
+
+/*!
+ \qmlproperty string Android.sdk::targetVersion
+ \since Qbs 1.17
+
+ API Level that the application targets.
+
+ \defaultvalue \c platformVersion
+*/
diff --git a/doc/reference/modules/archiver-module.qdoc b/doc/reference/modules/archiver-module.qdoc
index 8bec4993d..9a6c59ba3 100644
--- a/doc/reference/modules/archiver-module.qdoc
+++ b/doc/reference/modules/archiver-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype archiver
\inqmlmodule QbsModules
\since Qbs 1.4
diff --git a/doc/reference/modules/asan-module.qdoc b/doc/reference/modules/asan-module.qdoc
new file mode 100644
index 000000000..6f6ee66c0
--- /dev/null
+++ b/doc/reference/modules/asan-module.qdoc
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype Sanitizers.address
+ \inqmlmodule QbsModules
+ \brief Provides AddressSanitizer support.
+
+ Provides support for the \l{https://clang.llvm.org/docs/AddressSanitizer.html}{AddressSanitizer}
+ tool, which uses compiler instrumentation to detect memory corruption bugs at runtime.
+*/
+
+
+/*!
+ \qmlproperty string Sanitizers.address::detectUseAfterReturn
+
+ Controls whether support for detecting problems with stack use after returning
+ from a function should be built into the application.
+
+ The possible values are:
+ \list
+ \li \c "always": Check for this type of problem unconditionally.
+ \li \c "runtime": Build with this capability, but only do the respective checks if they
+ are explicitly requested at runtime.
+ \li \c "never": Do not build with support for this check.
+ \endlist
+
+ \note Only the clang compiler (starting at 13.0) supports the full set of values.
+ With GCC and MSVC, "runtime" maps to "always".
+
+ \defaultvalue \c "always"
+*/
+
+/*!
+ \qmlproperty bool Sanitizers.address::detectUseAfterScope
+
+ Controls whether to detect bugs relating the use of variables after they've gone out of scope.
+
+ \note This property has no effect when building with with GCC and MSVC.
+
+ \defaultvalue \c true
+*/
+
+/*!
+ \qmlproperty bool Sanitizers.address::enabled
+
+ Controls whether to enable AddressSanitizer.
+
+ \note You do not need to check if the current toolchain supports AddressSanitizer:
+ If \QBS detects that it doesn't, this property has no effect.
+
+ \defaultvalue \c true
+*/
diff --git a/doc/reference/modules/autotest-module.qdoc b/doc/reference/modules/autotest-module.qdoc
index ddd9e0078..730f2c3bf 100644
--- a/doc/reference/modules/autotest-module.qdoc
+++ b/doc/reference/modules/autotest-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype autotest
\inqmlmodule QbsModules
\since Qbs 1.13
@@ -67,3 +66,14 @@
\nodefaultvalue
*/
+/*!
+ \qmlproperty int autotest::timeout
+
+ The time limit for the execution of the autotest. If not specified, the
+ \l{AutotestRunner::timeout}{timeout} property of the \l AutotestRunner
+ that invokes the autotest is used.
+
+ \nodefaultvalue
+ \since Qbs 1.15
+*/
+
diff --git a/doc/reference/modules/bundle-module.qdoc b/doc/reference/modules/bundle-module.qdoc
index ec0e1083d..fe9bf1354 100644
--- a/doc/reference/modules/bundle-module.qdoc
+++ b/doc/reference/modules/bundle-module.qdoc
@@ -27,7 +27,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype bundle
\inqmlmodule QbsModules
\since Qbs 1.4
@@ -97,8 +96,9 @@
A prefix for the product's bundle identifier. If \l{bundle::}{identifier}
is left unset, the bundle identifier will be a concatenation of this value
- and the \l{bundle::}{identifier} property, separated by a period (.). This
- corresponds to the organization identifier in Xcode.
+ and the \l{Product::targetName}{Product.targetName} property formatted as
+ an RFC-1034 identifier, separated by a period (.). This corresponds to the
+ organization identifier in Xcode.
\defaultvalue \c{org.example}
*/
@@ -107,8 +107,9 @@
\qmlproperty string bundle::identifier
The bundle's identifier. If left unset, the bundle identifier will be a
- concatenation of this value and the \l{bundle::}{identifierPrefix} property,
- separated by a period (.).
+ concatenation of the \l{bundle::}{identifierPrefix} value and the
+ \l{Product::targetName}{Product.targetName} propertyy formatted as an
+ RFC-1034 identifier, separated by a period (.).
\defaultvalue A combination of \l{bundle::}{identifierPrefix} and the
product's target name formatted as an RFC-1034 identifier.
@@ -205,7 +206,7 @@
*/
/*!
- \qmlproperty bool bundle::resources
+ \qmlproperty pathList bundle::resources
A list of resources to copy to a bundle's \c Resources subdirectory. Files
will automatically be copied into \c lproj subdirectories corresponding to
@@ -464,6 +465,17 @@
*/
/*!
+ \qmlproperty bool bundle::useBuiltinXcodeBuildSpecs
+
+ Set this property to \c true to use Xcode \c .xcspec files shipped with \QBS.
+
+ This property can be used as a workaround when using a new Xcode version that is not supported
+ by \QBS yet.
+
+ \default false
+*/
+
+/*!
\qmlproperty string bundle::versionsFolderPath
\readonly
\since Qbs 1.5
diff --git a/doc/reference/modules/capnprotocpp-module.qdoc b/doc/reference/modules/capnprotocpp-module.qdoc
new file mode 100644
index 000000000..7635edd9e
--- /dev/null
+++ b/doc/reference/modules/capnprotocpp-module.qdoc
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype capnproto.cpp
+ \inqmlmodule QbsModules
+ \since Qbs 1.17
+
+ \brief Provides support for Cap'n Proto for the C++ language.
+
+ The \c capnproto.cpp module provides support for generating C++ headers
+ and sources from proto definition files using the \c capnpc tool.
+
+ A simple qbs file that uses Cap'n Proto can be written as follows:
+ \code
+ CppApplication {
+ Depends { name: "capnproto.cpp" }
+ files: ["foo.capnp", "main.cpp"]
+ }
+ \endcode
+ A generated header now can be included in the C++ sources:
+ \code
+ #include <foo.capnp.h>
+
+ int main(int argc, char* argv[]) {
+ ::capnp::MallocMessageBuilder message;
+
+ auto foo = message.initRoot<Foo>();
+ foo.setAnswer(42);
+ return 0;
+ }
+ \endcode
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"capnproto.input"}
+ \li \c{*.capnp}
+ \li 1.17.0
+ \li Source files with this tag are considered inputs to the \c capnpc compiler.
+ \endtable
+
+ \section2 Dependencies
+ This module depends on the \c capnp module and on the \c capnp-rpc module if
+ \l{capnproto.cpp::useRpc}{useRpc} property is \c true. These modules are created by the
+ \l{Module Providers} via the \c pkg-config tool.
+*/
+
+/*!
+ \qmlproperty string capnproto.cpp::compilerName
+
+ The name of the capnp binary.
+
+ \defaultvalue \c "capnpc"
+*/
+
+/*!
+ \qmlproperty string capnproto.cpp::compilerPath
+
+ The path to the protoc binary.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList capnproto.cpp::importPaths
+
+ The list of import paths that are passed to the \c capnpc tool via the \c --import-path option.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string capnproto.cpp::outputDir
+
+ The directory where the \c capnpc compiler generated files are placed.
+
+ \defaultvalue \c product.buildDirectory + "/capnp"
+*/
+
+/*!
+ \qmlproperty bool capnproto.cpp::useRpc
+
+ Use this property to enable support for the RPC framework.
+
+ A simple qbs file that uses rpc can be written as follows:
+
+ \quotefile ../examples/capnproto/calculator_cpp/calculator_cpp.qbs
+
+ \defaultvalue \c false
+*/
diff --git a/doc/reference/modules/codesign-module.qdoc b/doc/reference/modules/codesign-module.qdoc
new file mode 100644
index 000000000..45e247a6a
--- /dev/null
+++ b/doc/reference/modules/codesign-module.qdoc
@@ -0,0 +1,395 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Copyright (C) 2021 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype codesign
+ \inqmlmodule QbsModules
+ \since Qbs 1.19
+
+ \brief Provides code signing support.
+
+ The \c codesign module contains properties and rules for code signing on Apple and Android
+ platforms.
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"codesign.entitlements"}
+ \li \c{*.entitlements}
+ \li 1.19.0
+ \li \l{https://developer.apple.com/documentation/bundleresources/entitlements}{Xcode entitlements}
+ \row
+ \li \c{"codesign.provisioningprofile"}
+ \li \c{*.mobileprovision, *.provisionprofile}
+ \li 1.19.0
+ \li Xcode provisioning profiles
+ \row
+ \li \c{"codesign.signed_artifact"}
+ \li n/a
+ \li 1.19.0
+ \li This tag is attached to all signed artifacts such as applications or libraries
+ \endtable
+*/
+
+/*!
+ \qmlproperty string codesign::signingTimestamp
+
+ URL of the timestamp authority RFC 3161 server to be contacted to authenticate code signing.
+ \c undefined or \c empty indicates that a system-specific default should be used;
+ \c{"none"} explicitly disables the use of timestamp services on Apple platforms.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c "none" on Apple, \c undefined otherwise
+*/
+
+/*!
+ \qmlproperty stringList codesign::codesignFlags
+
+ Additional flags passed to the \c{codesign} tool.
+
+ \since Qbs 1.19
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string codesign::codesignName
+
+ The name of the \c{codesign} binary.
+
+ \since Qbs 1.19
+
+ \defaultvalue Determined automatically
+*/
+
+/*!
+ \qmlproperty string codesign::codesignPath
+
+ Path to the \c{codesign} tool.
+
+ \since Qbs 1.19
+
+ \defaultvalue Determined automatically
+*/
+
+/*!
+ \qmlproperty bool codesign::enableCodeSigning
+
+ Whether to actually perform code signing.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c false
+*/
+
+/*!
+ \qmlproperty string codesign::provisioningProfile
+
+ Name or UUID of the provisioning profile to embed in the product.
+ Typically this should be left blank to allow \QBS to use automatic provisioning.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \appleproperty
+*/
+
+/*!
+ \qmlproperty path codesign::provisioningProfilesPath
+
+ Path to directory containing provisioning profiles installed on the system.
+ This should not normally need to be changed.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c{"~/Library/MobileDevice/Provisioning Profiles"}
+
+ \appleproperty
+*/
+
+/*!
+ \qmlproperty string codesign::signingIdentity
+
+ Search string used to find the certificate to sign the product. This does not have to be
+ a full certificate name like "Mac Developer: John Doe (XXXXXXXXXX)", and can instead be
+ a partial string like "Mac Developer" or the certificate's SHA1 fingerprint.
+ The search string should generally be one of the following:
+ \list
+ \li 3rd Party Mac Developer Application
+ \li 3rd Party Mac Developer Installer
+ \li Developer ID Application
+ \li Developer ID Installer
+ \li iPhone Developer
+ \li iPhone Distribution
+ \li Mac Developer
+ \endlist
+
+ It is also possible to use the special \c "-" value to use the ad-hoc signing.
+
+ See \l{https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW41}{Maintaining Your Signing Identities and Certificates}
+ for complete documentation on the existing certificate types.
+ In general you should use \l{codesign::signingType}{signingType} instead.
+
+ \since Qbs 1.19
+
+ \defaultvalue Determined by \l{codesign::signingType}{signingType}
+
+ \appleproperty
+*/
+
+/*!
+ \qmlproperty string codesign::signingType
+
+ Type of code signing to use. This should generally be used in preference to an explicit
+ signing identity like "Mac Developer: John Doe (XXXXXXXXXX)" since it is not user
+ specific and can be set in a project file.
+ Possible values include: \c{"app-store"}, \c{"apple-id"}, \c{"ad-hoc"}, which sign for
+ the App Store or Mac App Store, Developer ID, and Ad-hoc code signing, respectively.
+
+ \section1 Relation between the signingType and signingIdentity
+
+ The following table shows how the signingIdentity's default value is calculated.
+
+ \table
+ \header
+ \li \c qbs.targetOS
+ \li \c codesign.signingType
+ \li \c qbs.buildVariant
+ \li \c codesign.signingIdentity
+ \row
+ \li {1, 4} \c "macos"
+ \li \c "ad-hoc"
+ \li any
+ \li \c "-"
+ \row
+ \li {1, 2} \c "app-store"
+ \li \c "debug", \c "profiling"
+ \li \c "Mac Developer"
+ \row
+ \li \c "release"
+ \li \c "3rd Party Mac Developer Application"
+ \row
+ \li \c "apple-id"
+ \li any
+ \li \c "Developer ID Application"
+ \row
+ \li {1, 2} \c "ios", \c "tvos", \c "watchos"
+ \li {1, 2} \c "app-store"
+ \li \c "debug", \c "profiling"
+ \li \c "iPhone Developer"
+ \row
+ \li \c "release"
+ \li \c "iPhone Distribution"
+ \endtable
+
+ \since Qbs 1.19
+
+ \defaultvalue Determined automatically
+
+ \appleproperty
+*/
+
+/*!
+ \qmlproperty string codesign::teamIdentifier
+
+ Human readable name or 10-digit identifier of the Apple development team that the
+ signing identity belongs to. This is used to disambiguate between multiple certificates
+ of the same type in different teams. Typically this can be left blank if the development
+ machine is only signed in to a single development team, and should be set in a profile
+ otherwise.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \appleproperty
+*/
+
+/*!
+ \qmlproperty bool codesign::useApksigner
+
+ If \c true, the package is signed using apksignerFilePath binary.
+ Set this property to \c false to use the jarsignerFilePath one.
+ Set by the Android.sdk module.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c true
+
+ \androidproperty
+*/
+
+/*!
+ \qmlproperty string codesign::keystorePath
+
+ The absolute path to the keystore file.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c "${HOME}/.android/debug.keystore"
+
+ \androidproperty
+*/
+
+/*!
+ \qmlproperty string codesign::keystorePassword
+
+ The keystore password.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c "android"
+
+ \androidproperty
+*/
+
+/*!
+ \qmlproperty string codesign::keyPassword
+
+ The key password.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c "android"
+
+ \androidproperty
+*/
+
+/*!
+ \qmlproperty string codesign::keyAlias
+
+ The key alias.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c "androiddebugkey"
+
+ \androidproperty
+*/
+
+/*!
+ \qmlproperty string codesign::subjectName
+
+ Specifies the name of the subject of the signing certificate.
+ This value can be a substring of the entire subject name.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::rootSubjectName
+
+ Specifies the name of the subject of the root certificate that
+ the signing certificate must chain to. This value may be a substring
+ of the entire subject name of the root certificate.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::hashAlgorithm
+
+ Specifies the default hash algorithm used on the signing certificate.
+ The possible values are \c sha1, \c sha256, \c sha384, and \c sha512.
+
+ \note Only available in Windows 10 kit builds 20236 and later.
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::timestampAlgorithm
+
+ Specifies the default timestamp algorithm used together with the
+ \c signingTimestamp property. The possible values are \c sha1, \c sha256.
+
+ \note If this value is not set, then the default sha1 algorithm
+ will be used.
+
+ \since Qbs 1.19.2
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::certificatePath
+
+ Specifies the full path to the signing certificate file (*.pfx).
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::certificatePassword
+
+ Specifies the password to use when opening a signing certificate file (*.pfx).
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
+
+/*!
+ \qmlproperty string codesign::crossCertificatePath
+
+ Specifies the full path to the additional certificate file (*.cer).
+
+ \since Qbs 1.19
+
+ \defaultvalue \c undefined
+
+ \windowsproperty
+*/
diff --git a/doc/reference/modules/cpp-module.qdoc b/doc/reference/modules/cpp-module.qdoc
index 19575a0f8..2b344aac2 100644
--- a/doc/reference/modules/cpp-module.qdoc
+++ b/doc/reference/modules/cpp-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype cpp
\inqmlmodule QbsModules
\since Qbs 1.0
@@ -81,6 +80,7 @@
May contain the values: "weak", "lazy", "reexport", and "upward"; refer to the Apple
ld64 man page for full details. \c{undefined} uses normal linking.
Currently only applies when linking for Apple platforms.
+ Note that \c "lazy" mode is deprecated and doesn't work with Xcode 15 and above.
\endtable
\section2 Relevant File Tags
@@ -144,6 +144,14 @@
and Objective-C++, respectively. There can be only one such file per product and
language.
\row
+ \li \c{"def"}
+ \li -
+ \li 1.17.0
+ \li This tag is used for a module-definition file (.def) to be passed to the linker.
+ Such a file provides the linker with information about exports, attributes,
+ and other information about the program to be linked. This file tag only has
+ an effect with the MSVC toolchain.
+ \row
\li \c{"dynamiclibrary"}
\li n/a
\li 1.0.1
@@ -357,6 +365,15 @@
*/
/*!
+ \qmlproperty bool cpp::createSymlinks
+ \unixproperty
+
+ Whether to create version alias symlinks when building a dynamic library.
+
+ \defaultvalue \c true
+*/
+
+/*!
\qmlproperty bool cpp::discardUnusedData
\since Qbs 1.10
@@ -390,6 +407,8 @@
\defaultvalue \c{true} for MSVC and with GCC or Clang on Apple platforms,
otherwise \c{false}.
+
+ \sa debugInformation, {How do I separate and install debugging symbols?}
*/
/*!
@@ -506,6 +525,132 @@
*/
/*!
+ \qmlproperty string cpp::executablePrefix
+
+ A string to prepend to the executable file \l{Product::targetName}{name}.
+
+ \defaultvalue \c ""
+*/
+
+/*!
+ \qmlproperty string cpp::dynamicLibraryPrefix
+
+ A string to prepend to the dynamic library file \l{Product::targetName}{name}.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c "" or \c "lib"
+*/
+
+/*!
+ \qmlproperty string cpp::loadableModulePrefix
+ \appleproperty
+
+ A string to prepend to the Darwin loadable module file \l{Product::targetName}{name}.
+
+ \defaultvalue \c ""
+*/
+
+/*!
+ \qmlproperty string cpp::staticLibraryPrefix
+
+ A string to prepend to the static library file \l{Product::targetName}{name}.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c "" or \c "lib"
+*/
+
+/*!
+ \qmlproperty string cpp::executableSuffix
+
+ A string to append to the executable file \l{Product::targetName}{name}.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c "" or \c ".exe"
+*/
+
+/*!
+ \qmlproperty string cpp::dynamicLibrarySuffix
+
+ A string to append to the dynamic library file \l{Product::targetName}{name}.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c ".so", \c ".dll"
+ or \c "dylib"
+*/
+
+/*!
+ \qmlproperty string cpp::dynamicLibraryImportSuffix
+ \windowsproperty
+
+ A string to append to the dynamic library import file \l{Product::targetName}{name}.
+
+ \defaultvalue \c ".lib"
+*/
+
+/*!
+ \qmlproperty string cpp::loadableModuleSuffix
+ \appleproperty
+
+ A string to append to the Darwin loadable module file \l{Product::targetName}{name}.
+
+ \defaultvalue \c ".bundle"
+*/
+
+/*!
+ \qmlproperty string cpp::staticLibrarySuffix
+
+ A string to append to the executable file \l{Product::targetName}{name}.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c ".a" or \c ".lib"
+*/
+
+/*!
+ \qmlproperty string cpp::debugInfoSuffix
+
+ A string to append to the debug information file name.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c ".debug",
+ \c ".pdb" or \c ".dwarf"
+*/
+
+/*!
+ \qmlproperty string cpp::debugInfoBundleSuffix
+ \appleproperty
+
+ A string to append to the debug information bundle name.
+
+ \defaultvalue \c ".dSYM"
+*/
+
+/*!
+ \qmlproperty string cpp::objectSuffix
+
+ A string to append to the generated object files.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c ".o" or \c ".obj"
+*/
+
+/*!
+ \qmlproperty string cpp::linkerMapSuffix
+
+ A string to append to the generated linker memory map files.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical value is \c ".map"
+*/
+
+/*!
+ \qmlproperty string cpp::compilerListingSuffix
+
+ A string to append to the generated compiler listing files.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical value is \c ".lst"
+*/
+
+/*!
+ \qmlproperty string cpp::assemblerListingSuffix
+
+ A string to append to the generated assembler listing files.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical value is \c ".lst"
+*/
+
+/*!
\qmlproperty pathList cpp::prefixHeaders
\since Qbs 1.0.1
@@ -613,6 +758,15 @@
*/
/*!
+ \qmlproperty string cpp::compilerVersion
+
+ Compiler version string consisting of major, minor and patch numbers,
+ separated by a dot.
+
+ \nodefaultvalue
+*/
+
+/*!
\qmlproperty int cpp::compilerVersionMajor
\since Qbs 1.4
@@ -684,7 +838,7 @@
If the value is left undefined, the compiler default will be used.
If the list contains more than one value, the highest version is chosen.
- Possible values include: \c{"c89"}, \c{"c99"}, \c{"c11"}.
+ Possible values include: \c{"c89"}, \c{"c99"}, \c{"c11"}, \c{"c17"}, \c{"c2x"}.
\nodefaultvalue
*/
@@ -701,7 +855,8 @@
If the value is left undefined, the compiler default will be used.
If the list contains more than one value, the highest version is chosen.
- Possible values include: \c{"c++98"}, \c{"c++11"}, \c{"c++14"}, \c{"c++17"}.
+ Possible values include: \c{"c++98"}, \c{"c++11"}, \c{"c++14"}, \c{"c++17"}, \c{"c++20"},
+ \c{"c++23"}.
\nodefaultvalue
*/
@@ -915,9 +1070,9 @@
If this property is set to \c{undefined}, the default runtime library of the
toolchain is used.
- \note This property is only functional for MSVC.
+ \note This property is only functional for MSVC and MinGW.
- \defaultvalue \c{"dynamic"} for MSVC, \c{undefined} for other compilers.
+ \defaultvalue \c{"dynamic"} for MSVC and MinGW, \c{undefined} for other compilers.
*/
/*!
@@ -930,6 +1085,15 @@
*/
/*!
+ \qmlproperty bool cpp::enableSuspiciousLinkerFlagWarnings
+ \since Qbs 1.8
+
+ Whether to print warnings about escaped linker flags (such as \c -Xlinker and \c -Wl).
+
+ \defaultvalue \c{true}
+*/
+
+/*!
\qmlproperty string cpp::exceptionHandlingModel
\since Qbs 1.5
@@ -1217,8 +1381,6 @@
\qmlproperty string cpp::linkerMode
\since Qbs 1.6
- \unixproperty
-
Controls whether to automatically use an appropriate compiler frontend
instead of the system linker when linking binaries.
@@ -1237,12 +1399,25 @@
\qmlproperty string cpp::linkerVariant
\since Qbs 1.13
- \unixproperty
+ Set this property to force the use of a specific linker. A non-empty value
+ will result in the \c {-fuse-ld} option being emitted when linking with \c gcc,
+ \c clang or \c clang-cl. Other toolchains do not support this property.
+
+ The possible values for \c clang and \c gcc are \c "bfd", \c "gold", \c "lld"
+ and \c "mold", the possible values for \c clang-cl are \c "link" and \c "lld".
- Set this property to force the use of a specific \c ld implementation. A non-empty value
- will result in the \c {-fuse-ld} option being emitted when linking with \c gcc or \c clang.
+ The following example demonstrates how to change the linker for different toolchains:
- The possible values are \c "bfd", \c "gold" and \c "lld".
+ \code
+ Properties {
+ condition: qbs.toolchain.includes("gcc")
+ cpp.linkerVariant: "gold"
+ }
+ Properties {
+ condition: qbs.toolchain.includes("clang-cl")
+ cpp.linkerVariant: "lld"
+ }
+ \endcode
\nodefaultvalue
*/
@@ -1353,6 +1528,8 @@
\l{cpp::}{systemRunPaths} are ignored.
\nodefaultvalue
+
+ \sa{How do I make use of rpaths?}
*/
/*!
@@ -1389,6 +1566,8 @@
install names.
\nodefaultvalue
+
+ \sa{How do I make use of rpaths?}
*/
/*!
@@ -1428,6 +1607,16 @@
*/
/*!
+ \qmlproperty string cpp::rpathLinkFlag
+ \since Qbs 1.9
+
+ The rpath link flag used by the linker.
+
+ \defaultvalue \l{qbs::toolchain}{toolchain}-dependent, typical values are \c "-rpath-link="
+ or \c "-L"
+*/
+
+/*!
\qmlproperty string cpp::variantSuffix
\since Qbs 1.10
@@ -1702,9 +1891,7 @@
\qmlproperty bool cpp::generateCompilerListingFiles
\since Qbs 1.15
- \baremetalproperty
-
- Whether to auto-generate a compiler listing files.
+ Whether to auto-generate compiler listing files.
\defaultvalue \c{false}
*/
@@ -1729,3 +1916,28 @@
\defaultvalue \c{true}
*/
+
+/*!
+ \qmlproperty string cpp::windowsSdkVersion
+ \since Qbs 1.19
+
+ Which Windows SDK version should be used with MSVC toolchain. By default,
+ the latest SDK is used.
+
+ \windowsproperty
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string cpp::enableCxxLanguageMacro
+ \since Qbs 1.20
+
+ Whether to set the \c{/Zc:__cplusplus} macro
+ (\l{https://docs.microsoft.com/en-us/cpp/build/reference/zc-cplusplus})
+
+ This property only applies to MSVC toolchain. clang-cl also supports
+ this option, but it has no effect.
+
+ \windowsproperty
+ \defaultvalue \c{true} for MSVC, \c{false} for clang-cl
+*/
diff --git a/doc/reference/modules/cpufeatures-module.qdoc b/doc/reference/modules/cpufeatures-module.qdoc
index 8dcd117f1..c2358e388 100644
--- a/doc/reference/modules/cpufeatures-module.qdoc
+++ b/doc/reference/modules/cpufeatures-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype cpufeatures
\inqmlmodule QbsModules
\since Qbs 1.10
diff --git a/doc/reference/modules/dmg-module.qdoc b/doc/reference/modules/dmg-module.qdoc
index 56fd65960..5d18621ab 100644
--- a/doc/reference/modules/dmg-module.qdoc
+++ b/doc/reference/modules/dmg-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype dmg
\inqmlmodule QbsModules
\since Qbs 1.9
diff --git a/doc/reference/modules/exporter-cmake.qdoc b/doc/reference/modules/exporter-cmake.qdoc
new file mode 100644
index 000000000..2f4191a76
--- /dev/null
+++ b/doc/reference/modules/exporter-cmake.qdoc
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2024 Raphael Cotty (raphael.cotty@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype Exporter.cmake
+ \inqmlmodule QbsModules
+ \since Qbs 2.3
+
+ \brief Provides support for generating \CMAKE packages from dynamic, static and header library
+ products.
+
+ The Exporter.cmake module contains the properties and rules to create a \CMAKE config
+ \l{https://cmake.org/cmake/help/v3.29/manual/cmake-packages.7.html#config-file-packages}{files}
+ from the \l Export item of a \l Product.
+
+ For instance, suppose you are creating a library. To allow exporting to \CMAKE, you would write
+ something like the following:
+ \code
+ DynamicLibrary {
+ name: "mylibrary"
+ qbs.installPrefix: "/opt/mylibrary"
+ Depends { name: "Exporter.cmake" }
+ Exporter.cmake.packageName: "MyLibrary"
+ property string headersInstallDir: "include"
+ // ...
+ Group {
+ name: "API headers"
+ files: ["mylib.h"]
+ qbs.install: true
+ qbs.installDir: headersInstallDir
+ }
+ Group {
+ fileTagsFilter: ["Exporter.cmake.package"]
+ qbs.installDir: "lib/cmake/MyLibrary"
+ }
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: FileInfo.joinPaths(
+ exportingProduct.qbs.installRoot,
+ exportingProduct.qbs.installPrefix,
+ exportingProduct.headersInstallDir)
+ }
+ }
+ \endcode
+ To build against this library, from within your \CMAKE project, you simply
+ use \l{https://cmake.org/cmake/help/v3.29/command/find_package.html}{find_package}:
+ \code
+ find_package(MyLibrary PATHS REQUIRED)
+ add_executable(Consumer main.cpp)
+ target_link_libraries(Consumer MyLibrary)
+ \endcode
+
+ \section2 Relevant File Tags
+ \target filetags-exporter-qbs
+
+ \table
+ \header
+ \li Tag
+ \li Since
+ \li Description
+ \row
+ \li \c{"Exporter.cmake.package"}
+ \li 2.3.0
+ \li This tag is attached to all generated module files.
+ \row
+ \li \c{"Exporter.cmake.configFile"}
+ \li 2.3.0
+ \li This tag is attached to the generated config file.
+ \row
+ \li \c{"Exporter.cmake.versionFile"}
+ \li 2.3.0
+ \li This tag is attached to the generated version file.
+ \endtable
+*/
+
+/*!
+ \qmlproperty string Exporter.cmake::configFileName
+
+ The name of the generated config file.
+
+ \defaultvalue \c{packageName + "Config.cmake"}
+*/
+
+/*!
+ \qmlproperty string Exporter.cmake::versionFileName
+
+ The name of the generated version file.
+
+ \defaultvalue \c{packageName + "ConfigVersion.cmake"}
+*/
+
+/*!
+ \qmlproperty string Exporter.cmake::packageName
+
+ The name of the \CMAKE package.
+
+ \defaultvalue \l{Product::targetName}{Product.targetName}
+*/
+
diff --git a/doc/reference/modules/exporter-pkgconfig-module.qdoc b/doc/reference/modules/exporter-pkgconfig-module.qdoc
index 9489b4622..1dce5ffd5 100644
--- a/doc/reference/modules/exporter-pkgconfig-module.qdoc
+++ b/doc/reference/modules/exporter-pkgconfig-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Exporter.pkgconfig
\inqmlmodule QbsModules
\since Qbs 1.12
diff --git a/doc/reference/modules/exporter-qbs-module.qdoc b/doc/reference/modules/exporter-qbs-module.qdoc
index 610b02dab..cea5aad70 100644
--- a/doc/reference/modules/exporter-qbs-module.qdoc
+++ b/doc/reference/modules/exporter-qbs-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Exporter.qbs
\inqmlmodule QbsModules
\since Qbs 1.12
@@ -58,10 +57,11 @@
}
Export {
Depends { name: "cpp" }
- cpp.includePaths: [product.sourceDirectory]
+ cpp.includePaths: [exportingProduct.sourceDirectory]
prefixMapping: [{
- prefix: product.sourceDirectory,
- replacement: FileInfo.joinPaths(qbs.installPrefix, product.headersInstallDir)
+ prefix: exportingProduct.sourceDirectory,
+ replacement: FileInfo.joinPaths(exportingProduct.qbs.installPrefix,
+ exportingProduct.headersInstallDir)
}]
}
}
diff --git a/doc/reference/modules/flatbuf-c-module.qdoc b/doc/reference/modules/flatbuf-c-module.qdoc
new file mode 100644
index 000000000..d486ab3bf
--- /dev/null
+++ b/doc/reference/modules/flatbuf-c-module.qdoc
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2024 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype flatbuf.c
+ \inqmlmodule QbsModules
+ \since Qbs 2.4
+
+ \brief Provides support for \l{https://google.github.io/flatbuffers/}{FlatBuffers} for the
+ C language.
+
+ The \c flatbuf.c module provides support for generating C headers
+ and sources from flatbuffers definition files using the \c flatcc tool.
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"flatbuffers.input"}
+ \li \c{*.fbs}
+ \li 2.4.0
+ \li Source files with this tag are considered inputs to the \c flatcc compiler.
+ \endtable
+
+ \section2 Dependencies
+ This module depends on the \c flatcc module which can be created via the \l{conan}{Conan}
+ module provider.
+*/
+
+/*!
+ \qmlproperty string flatbuf.c::compilerName
+
+ The name of the \c flatcc binary.
+
+ \defaultvalue \c "flatcc"
+*/
+
+/*!
+ \qmlproperty string flatbuf.c::compilerPath
+
+ The path to the \c flatcc binary.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList flatbuf.c::importPaths
+
+ The list of import paths that are passed to the \c flatcc tool via the \c -I option.
+
+ \defaultvalue \c []
+*/
diff --git a/doc/reference/modules/flatbuf-cpp-module.qdoc b/doc/reference/modules/flatbuf-cpp-module.qdoc
new file mode 100644
index 000000000..a4b6915ab
--- /dev/null
+++ b/doc/reference/modules/flatbuf-cpp-module.qdoc
@@ -0,0 +1,144 @@
+/****************************************************************************
+**
+** Copyright (C) 2024 Ivan Komissarov (abbapoh@gmail.com)
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype flatbuf.cpp
+ \inqmlmodule QbsModules
+ \since Qbs 2.4
+
+ \brief Provides support for \l{https://google.github.io/flatbuf/}{flatbuf} for the
+ C++ language.
+
+ The \c flatbuf.cpp module provides support for generating C++ headers
+ and sources from flatbuf definition files using the \c flatc tool.
+
+ A simple qbs file that uses flatbuf can be written as follows:
+ \code
+ CppApplication {
+ Depends { name: "flatbuf.cpp" }
+ files: ["foo.fbs", "main.cpp"]
+ }
+ \endcode
+ A generated header now can be included in the C++ sources:
+ \code
+ #include <foo_generated.h>
+
+ int main(int argc, char* argv[]) {
+ flatbuf::FlatBufferBuilder builder;
+
+ auto foo = QbsTest::CreateFoo(builder, 42);
+ return 0;
+ }
+ \endcode
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"flatbuf.input"}
+ \li \c{*.fbs}
+ \li 2.4.0
+ \li Source files with this tag are considered inputs to the \c flatc compiler.
+ \endtable
+
+ \section2 Dependencies
+ This module depends on the \c flatbuffers module which can be created via the \l{conan}{Conan}
+ module provider.
+*/
+
+/*!
+ \qmlproperty string flatbuf.cpp::compilerName
+
+ The name of the \c flatc binary.
+
+ \defaultvalue \c "flatc"
+*/
+
+/*!
+ \qmlproperty string flatbuf.cpp::compilerPath
+
+ The path to the \c flatc binary.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string flatbuf.cpp::filenameExtension
+
+ The extension appended to the generated file names. If not specified, the default extension
+ (\c ".h") is used.
+
+ This property corresponds to the \c --filename-ext option of the \c flatc tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string flatbuf.cpp::filenameSuffix
+
+ The suffix appended to the generated file names. If not specified, the default suffix
+ (\c "_generated") is used.
+
+ This property corresponds to the \c --filename-suffix option of the \c flatc tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty pathList flatbuf.cpp::importPaths
+
+ The list of import paths that are passed to the \c flatc tool via the \c -I option.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string flatbuf.cpp::includePrefix
+
+ Prefix path prepended to any generated include statements.
+
+ This property corresponds to the \c --include-prefix option of the \c flatc tool.
+
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty bool flatbuf.cpp::keepPrefix
+
+ Whether to keep original prefix of schema include statement.
+
+ This property corresponds to the \c --keep-prefix option of the \c flatc tool.
+
+ \defaultvalue \c false
+*/
diff --git a/doc/reference/modules/freedesktop-module.qdoc b/doc/reference/modules/freedesktop-module.qdoc
new file mode 100644
index 000000000..5b6b14d0f
--- /dev/null
+++ b/doc/reference/modules/freedesktop-module.qdoc
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2019 Alberto Mardegan
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype freedesktop
+ \inqmlmodule QbsModules
+ \since Qbs 1.16
+
+ \brief Provides support for some freedesktop.org specifications.
+
+ The \c freedesktop module contains properties and rules for building and working with
+ applications compliant to freedesktop.org specifications on UNIX platforms.
+ The areas in which this module can be of use include:
+
+ \list
+ \li Creation or post-processing of
+ \l{https://specifications.freedesktop.org/desktop-entry-spec/latest/}{\c{.desktop}
+ files}
+ \li Installation of \l{https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html}{AppStream} metadata
+ \li Defining the location for
+ \l{https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout}
+ {application icons}
+ \endlist
+
+ This module is available on all platforms but is currently only useful on UNIX platforms.
+
+ \section2 Example usage
+ \target example-freedesktop
+
+ \code
+ Application {
+ ...
+ Depends { name: "freedesktop" }
+
+ Group {
+ files: [
+ ...
+
+ // Declare the desktop and appstream files
+ "data/my-app.desktop",
+ "data/my-app.metainfo.xml",
+ ]
+ }
+
+ // Add/change some fields in the desktop file
+ freedesktop.desktopKeys: ({
+ 'Exec': FileInfo.joinPaths(qbs.installPrefix,
+ product.installDir,
+ product.targetName) + ' --argument',
+ 'X-Application-Version': product.version,
+ })
+
+ // Declare the application icon
+ Group {
+ files: "icons/my-application.svg"
+ fileTags: "freedesktop.appIcon"
+ }
+ }
+ \endcode
+
+ \section2 Relevant File Tags
+ \target filetags-freedesktop
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"freedesktop.desktopfile_source"}
+ \li \c{*.desktop}
+ \li 1.16
+ \li A source file with this tag is a \c{.desktop} file or fragment that
+ will be merged into the application's final \c{.desktop} file.
+ \row
+ \li \c{"freedesktop.desktopfile"}
+ \li -
+ \li 1.16
+ \li Attached to the output artifacts of the rule that produces the
+ merged \c{.desktop} file.
+ \row
+ \li \c{"freedesktop.appstream"}
+ \li \c{*.metainfo.xml}, \c{*.appdata.xml}
+ \li 1.16
+ \li Source files with this tag are AppStream metadata files which will
+ be installed under \l{qbs::}{installPrefix}\c{/share/metainfo}
+ \row
+ \li \c{"freedesktop.appIcon"}
+ \li -
+ \li 1.16
+ \li Source files with this tag are application icons and will be
+ installed under \l{qbs::}{installPrefix}\c{/share/icons/hicolor/scalable/apps}
+ \endtable
+*/
+
+/*!
+ \qmlproperty string freedesktop::appName
+
+ The display name of the application which will be stored in the \c{.desktop} file.
+
+ \defaultvalue \l{Product::name}{product.name}
+*/
+
+/*!
+ \qmlproperty var freedesktop::desktopKeys
+
+ A dictionary of key-value pairs to add to the application's \c{.desktop}
+ file.
+
+ The contents of this property will be aggregated with the values from any
+ \c{.desktop} file. If this property and any \c{.desktop} files contain the
+ same key, this property will take precedence.
+
+ \nodefaultvalue
+*/
diff --git a/doc/reference/modules/ib-module.qdoc b/doc/reference/modules/ib-module.qdoc
index d6f8d3248..b85f87c71 100644
--- a/doc/reference/modules/ib-module.qdoc
+++ b/doc/reference/modules/ib-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype ib
\inqmlmodule QbsModules
\since Qbs 1.1
diff --git a/doc/reference/modules/ico-module.qdoc b/doc/reference/modules/ico-module.qdoc
index ccff608ef..60e4e2958 100644
--- a/doc/reference/modules/ico-module.qdoc
+++ b/doc/reference/modules/ico-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype ico
\inqmlmodule QbsModules
\since Qbs 1.11
diff --git a/doc/reference/modules/innosetup-module.qdoc b/doc/reference/modules/innosetup-module.qdoc
index 0f61275fc..fe75ecf0d 100644
--- a/doc/reference/modules/innosetup-module.qdoc
+++ b/doc/reference/modules/innosetup-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype innosetup
\inqmlmodule QbsModules
\since Qbs 1.7
diff --git a/doc/reference/modules/java-module.qdoc b/doc/reference/modules/java-module.qdoc
index 28057e089..02ad3227a 100644
--- a/doc/reference/modules/java-module.qdoc
+++ b/doc/reference/modules/java-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype java
\inqmlmodule QbsModules
\since Qbs 1.4
diff --git a/doc/reference/modules/lexyacc-module.qdoc b/doc/reference/modules/lexyacc-module.qdoc
index 2d5117641..002e90f05 100644
--- a/doc/reference/modules/lexyacc-module.qdoc
+++ b/doc/reference/modules/lexyacc-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype lex_yacc
\inqmlmodule QbsModules
\since Qbs 1.6
diff --git a/doc/reference/modules/nodejs-module.qdoc b/doc/reference/modules/nodejs-module.qdoc
index 0b56ba636..8b3166a81 100644
--- a/doc/reference/modules/nodejs-module.qdoc
+++ b/doc/reference/modules/nodejs-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype nodejs
\inqmlmodule QbsModules
\since Qbs 1.3
diff --git a/doc/reference/modules/nsis-module.qdoc b/doc/reference/modules/nsis-module.qdoc
index 359fec46c..d2b979eaa 100644
--- a/doc/reference/modules/nsis-module.qdoc
+++ b/doc/reference/modules/nsis-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype nsis
\inqmlmodule QbsModules
\since Qbs 1.2
diff --git a/doc/reference/modules/pkgconfig-module.qdoc b/doc/reference/modules/pkgconfig-module.qdoc
index f30308895..cd24257fc 100644
--- a/doc/reference/modules/pkgconfig-module.qdoc
+++ b/doc/reference/modules/pkgconfig-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype pkgconfig
\inqmlmodule QbsModules
\since 1.13
diff --git a/doc/reference/modules/protobufcpp-module.qdoc b/doc/reference/modules/protobufcpp-module.qdoc
index b82ccc9f7..2c96eaeef 100644
--- a/doc/reference/modules/protobufcpp-module.qdoc
+++ b/doc/reference/modules/protobufcpp-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype protobuf.cpp
\inqmlmodule QbsModules
\since Qbs 1.13
@@ -73,32 +72,38 @@
\li
\li 1.14.0
\li Source files with this tag are considered as gRPC files.
+ \row
+ \li \c{"protobuf.hpp"}
+ \li
+ \li 1.18.0
+ \li This tag is attached to the header files generated by \c protoc compiler.
\endtable
-*/
-
-/*!
- \qmlproperty string protobuf.cpp::grpcIncludePath
- The path where grpc++ headers are located. Set this property to override the
- default location.
+ \section2 Dependencies
- \defaultvalue \c auto-detected
+ The \l protobuf.cpp module requires runtime libraries to be operational. It depends on the
+ \c "protobuflib" module which can be created by the \l qbspkgconfig or fallback module
+ providers (the corresponding packages are \c protobuf or \c protobuf-lite). If \l useGrpc is
+ set to true, the \l protobuf.cpp module also depends on the \c "grpc++" module.
*/
/*!
- \qmlproperty string protobuf.cpp::grpcLibraryPath
+ \qmlproperty string protobuf.cpp::compilerName
- The path where the grpc++ library is located. Set this property to override the
- default location.
+ The name of the protoc binary.
- \defaultvalue \c auto-detected
+ \since Qbs 1.17
+ \defaultvalue \c "protoc"
*/
/*!
- \qmlproperty string protobuf.cpp::protocBinary
+ \qmlproperty string protobuf.cpp::compilerPath
+
+ The path to the protoc binary.
- The command to invoke when compiling proto definition files.
+ Use this property to override the auto-detected location.
+ \since Qbs 1.17
\defaultvalue \c auto-detected
*/
@@ -115,21 +120,13 @@
*/
/*!
- \qmlproperty string protobuf.cpp::includePath
+ \qmlproperty string protobuf.cpp::outputDir
+ \readonly
- The path where protobuf C++ headers are located. Set this property to override the
- default location.
+ The directory where the \c protoc compiler generated files are placed.
- \defaultvalue \c auto-detected
-*/
-
-/*!
- \qmlproperty string protobuf.cpp::libraryPath
-
- The path where the protobuf C++ library is located. Set this property to override the
- default location.
-
- \defaultvalue \c auto-detected
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
*/
/*!
diff --git a/doc/reference/modules/protobufnanopb-module.qdoc b/doc/reference/modules/protobufnanopb-module.qdoc
new file mode 100644
index 000000000..75c87ba57
--- /dev/null
+++ b/doc/reference/modules/protobufnanopb-module.qdoc
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \qmltype protobuf.nanopb
+ \inqmlmodule QbsModules
+ \since Qbs 1.18
+
+ \brief Provides support for protocol buffers for embedded systems.
+
+ The \c protobuf.nanopb module provides support for generating nanopb C headers
+ and sources from proto definition files using the \l nanopb plugin for the
+ \l protoc tool suitable for embedded systems.
+
+ A simple qbs file that uses protobuf can be written as follows:
+ \code
+ CppApplication {
+ Depends { name: "protobuf.nanopb" }
+ files: ["foo.proto", "main.cpp"]
+ }
+ \endcode
+ A generated header now can be included in the C++ sources:
+ \code
+ #include <foo.pb.h>
+
+ int main(int argc, char* argv[]) {
+ Foo bar;
+ bar.has_answer = true;
+ bar.answer = 42;
+ return 0;
+ }
+ \endcode
+
+ Nanopb .options files to define nanopb specific proto options are supported.
+
+ \section2 Relevant File Tags
+
+ \table
+ \header
+ \li Tag
+ \li Auto-tagged File Names
+ \li Since
+ \li Description
+ \row
+ \li \c{"protobuf.input"}
+ \li \c{*.proto}
+ \li 1.13.0
+ \li Source files with this tag are considered inputs to the \c protoc compiler.
+ \row
+ \li \c{"protobuf.hpp"}
+ \li
+ \li 1.18.0
+ \li This tag is attached to the header files generated by \c protoc compiler.
+ \endtable
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::compilerName
+
+ The name of the protoc binary.
+
+ \defaultvalue \c "protoc"
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::compilerPath
+
+ The path to the protoc binary.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty pathList protobuf.nanopb::importPaths
+
+ The list of imports that are passed to the \c protoc tool via the \c --proto_path option.
+ These imports should contain the proto files. They are used to determine
+ the relative structure of the generated files.
+ \note The paths are passed to \c protoc in the same order as specified in this property and
+ \c protoc output may differ depending on that order.
+
+ \defaultvalue \c []
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::includePath
+
+ The path where protobuf nanopb C headers are located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::libraryPath
+
+ The path where the protobuf nanopb runtime library is located. Set this property to override the
+ default location.
+
+ \defaultvalue \c auto-detected
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::outputDir
+ \readonly
+
+ The directory where the \c protoc compiler generated files are placed.
+
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::pluginName
+
+ The name of the nanopb protoc plugin.
+
+ \defaultvalue \c "protoc-gen-nanopb"
+*/
+
+/*!
+ \qmlproperty string protobuf.nanopb::pluginPath
+
+ The path to the nanopb protoc plugin.
+
+ Use this property to override the auto-detected location.
+
+ \defaultvalue \c auto-detected
+*/
diff --git a/doc/reference/modules/protobufobjc-module.qdoc b/doc/reference/modules/protobufobjc-module.qdoc
index 07e6db759..3666cdb8a 100644
--- a/doc/reference/modules/protobufobjc-module.qdoc
+++ b/doc/reference/modules/protobufobjc-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype protobuf.objc
\inqmlmodule QbsModules
\since Qbs 1.13
@@ -49,14 +48,31 @@
\li \c{*.proto}
\li 1.13.0
\li Source files with this tag are considered inputs to the \c protoc compiler.
+ \row
+ \li \c{"protobuf.hpp"}
+ \li
+ \li 1.18.0
+ \li This tag is attached to the header files generated by \c protoc compiler.
\endtable
*/
/*!
- \qmlproperty string protobuf.objc::protocBinary
+ \qmlproperty string protobuf.objc::compilerName
+
+ The name of the protoc binary.
+
+ \since Qbs 1.17
+ \defaultvalue \c "protoc"
+*/
+
+/*!
+ \qmlproperty string protobuf.objc::compilerPath
- The command to invoke when compiling proto definition files.
+ The path to the protoc binary.
+ Use this property to override the auto-detected location.
+
+ \since Qbs 1.17
\defaultvalue \c auto-detected
*/
@@ -99,3 +115,13 @@
\defaultvalue \c auto-detected
*/
+
+/*!
+ \qmlproperty string protobuf.objc::outputDir
+ \readonly
+
+ The directory where the \c protoc compiler generated files are placed.
+
+ The value of this property is automatically set by \QBS and cannot be
+ changed by the user.
+*/
diff --git a/doc/reference/modules/qbs-module.qdoc b/doc/reference/modules/qbs-module.qdoc
index c1a0b2532..7fc1479d4 100644
--- a/doc/reference/modules/qbs-module.qdoc
+++ b/doc/reference/modules/qbs-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage list-of-modules.html
\qmltype qbs
\inqmlmodule QbsModules
\since Qbs 1.0
@@ -56,7 +55,7 @@
name: "Runtime resources"
files: "*.qml"
qbs.install: true
- qbs.installDir: condition: qbs.targetOS.contains("unix")
+ qbs.installDir: condition: qbs.targetOS.includes("unix")
? "share/myapp" : "resources"
}
Group {
@@ -65,7 +64,7 @@
qbs.install: true
qbs.installDir: "bin"
}
- qbs.installPrefix: condition: qbs.targetOS.contains("unix")
+ qbs.installPrefix: condition: qbs.targetOS.includes("unix")
? "usr/local" : "MyApp"
}
\endcode
@@ -113,11 +112,13 @@
The name of the build variant for the current build.
- Possible values are \c{"debug"} and \c{"release"}. A debug build usually
- contains additional debug symbols that are needed for debugging the
- application but that can be left out from the release version. Debug builds
- are used for testing and release builds for creating the final installation
- file.
+ Possible values are \c{"debug"}, \c{"release"} and \c{"profiling"}.
+ A debug build usually contains additional debug symbols that are needed for
+ debugging the application and has optimizations turned off. A profiling
+ build usually contains debug symbols and has optimizations turned on. This
+ is useful for profiling tools or when you need to retain debug symbols
+ in a release build. A release build is a build without debug information and
+ with optimizations enabled.
\defaultvalue \c{"release"} if
\l{qbs::configurationName}{qbs.configurationName} is \c{"release"}. Otherwise
@@ -129,7 +130,8 @@
Whether to generate debug information.
- \defaultvalue \c{true} for debug builds, \c{false} otherwise.
+ \defaultvalue \c{true} if \l{qbs::buildVariant}{qbs.buildVariant} is \c{"debug"} or
+ \c{"profiling"}. Otherwise \c{false}.
*/
/*!
@@ -151,7 +153,7 @@
\endlist
Typically, this property is enabled for debug builds and disabled for
- release builds.
+ release or profiling builds.
\defaultvalue \c{true} for debug builds, \c{false} otherwise.
*/
@@ -169,11 +171,12 @@
\li \c{"small"}
\endlist
- \defaultvalue \c{"none"} for debug builds, \c{"fast"} for release builds.
+ \defaultvalue \c{"none"} if \l{qbs::buildVariant}{qbs.buildVariant} is \c{"debug"}.
+ Otherwise \c{"fast"}.
*/
/*!
- \qmlproperty stringList qbs::targetPlatform
+ \qmlproperty string qbs::targetPlatform
\since 1.11
The OS you want to build the project for.
@@ -207,6 +210,9 @@
\li \c{"android"}
\li \c{["android", "linux", "unix"]}
\row
+ \li \c{"dos"}
+ \li \c{["dos"]}
+ \row
\li \c{"freebsd"}
\li \c{["freebsd", "bsd", "unix"]}
\row
@@ -243,6 +249,9 @@
\li \c{"openbsd"}
\li \c{["openbsd", "bsd", "unix"]}
\row
+ \li \c{"os2"}
+ \li \c{["os2"]}
+ \row
\li \c{"qnx"}
\li \c{["qnx", "unix"]}
\row
@@ -255,6 +264,9 @@
\li \c{"tvos-simulator"}
\li \c{["tvos-simulator", "tvos", "darwin", "bsd", "unix"]}
\row
+ \li \c{"unix"}
+ \li \c{["unix"]}
+ \row
\li \c{"vxworks"}
\li \c{["vxworks"]}
\row
@@ -266,11 +278,19 @@
\row
\li \c{"windows"}
\li \c{["windows"]}
+ \row
+ \li \c{"none"}
+ \li \c{["none"]}
+ \row
+ \li \c{undefined}
+ \li \c{[]}
\endtable
+ \note The "none" value is usually used for a bare-metal platforms.
+
\sa {Target Platforms}
- \nodefaultvalue
+ \defaultvalue \l{platform}{Host.platform()}
*/
/*!
@@ -285,77 +305,317 @@
Commonly used values are: \c{"x86"}, \c{"x86_64"}, and \c{"arm"}.
+ \section2 Supported Processor Architectures
+
+ This table describes the possible values of the \l{qbs::}{architecture} property:
+ \table
+ \header
+ \li Architecture
+ \li Description
+ \row
+ \li \c{"78k"}
+ \li 16- and 8-bit accumulator-based register-bank CISC architecture
+ microcontroller family manufactured by Renesas Electronics
+ \row
+ \li \c{"arm"}
+ \li 32-bit RISC architecture for computer processors
+ developed by Acorn RISC Machine
+ \note There are a lot of sub-variants of the ARM architecture.
+ Some specialized \QBS modules differentiate between them,
+ making use of values such as \c "armv7a". Please consult the
+ respective module-specific documentation for information
+ on what kind of value to use.
+ \row
+ \li \c{"arm64"}
+ \li 64-bit RISC architecture for computer processors
+ developed by Acorn RISC Machine
+ \row
+ \li \c{"avr"}
+ \li 8-bit modified Harvard RISC architecture microcontroller
+ family manufactured by Microchip Technology
+ \row
+ \li \c{"avr32"}
+ \li 32-bit RISC architecture microcontroller family developed by Atmel
+ \row
+ \li \c{"c166"}
+ \li 16-bit architecture microcontroller family developed by Infineon
+ \row
+ \li \c{"cr16"}
+ \li 16-bit compact RISC architecture microcontroller family
+ developed by National Semiconductor
+ \row
+ \li \c{"e2k"}
+ \li 512-bit Russian wide VLIW microprocessor developed by Moscow Center
+ of SPARC Technologies (MCST) and fabricated by TSMC
+ \row
+ \li \c{"hcs8"}
+ \li 8-bit HC08 and S08 microcontroller family from Freescale Semiconductor
+ \row
+ \li \c{"hcs12"}
+ \li 16-bit HC12 and S12 microcontroller family from Freescale Semiconductor
+ \row
+ \li \c{"hppa"}
+ \li 64-bit PA-RISC processor architecture developed by Hewlett-Packard
+ \row
+ \li \c{"ia64"}
+ \li 64-bit ISA architecture of the Itanium family processors
+ developed by Intel
+ \row
+ \li \c{"m16c"}
+ \li 16-bit CISC microcontrollers featuring high ROM code
+ efficiency manufactured by Renesas Electronics
+ \row
+ \li \c{"m32c"}
+ \li 32- and 16-bit CISC microcontrollers featuring high ROM code
+ efficiency manufactured by Renesas Electronics
+ \row
+ \li \c{"m32r"}
+ \li 32-bit RISC microcontrollers for general industrial and
+ car-mounted systems, digital AV equipment, digital imaging
+ equipment manufactured by Renesas Electronics
+ \row
+ \li \c{"m68k"}
+ \li 16- and 32-bit CISC microprocessor, developed by Motorola
+ Semiconductor Products Sector, and further improved as ColdFire
+ architecture developed by NXP
+ \row
+ \li \c{"mcs251"}
+ \li 8-, 16-, and 32-bit microcontroller family which is a next binary
+ compatible generation for the \c "mcs51" family
+ \row
+ \li \c{"mcs51"}
+ \li 8-bit Harvard architecture microcontroller family developed by Intel
+ \row
+ \li \c{"mips"}
+ \li 32-bit RISC microprocessor without interlocked pipelined stages
+ architecture developed by MIPS Computer Systems
+ \row
+ \li \c{"mips64"}
+ \li 64-bit RISC microprocessor without interlocked pipelined stages
+ architecture developed by MIPS Computer Systems
+ \row
+ \li \c{"msp430"}
+ \li 16-bit mixed-signal microcontroller family manufactured
+ by Texas Instruments
+ \row
+ \li \c{"ppc"}
+ \li 32-bit RISC architecture processor family developed by
+ Apple–IBM–Motorola alliance
+ \row
+ \li \c{"ppc64"}
+ \li 64-bit RISC architecture processor family developed by
+ Apple–IBM–Motorola alliance
+ \row
+ \li \c{"r32c"}
+ \li 32-bit CISC microcontrollers with improved code efficiency
+ and processing performance manufactured by Renesas Electronics
+ \row
+ \li \c{"rh850"}
+ \li 32-bit automotive microcontroller family manufactured
+ by Renesas Electronics
+ \row
+ \li \c{"riscv"}
+ \li Open and free standard instruction set architecture based on established
+ RISC principles
+ \row
+ \li \c{"rl78"}
+ \li 16- and 8-bit accumulator-based register-bank CISC architecture
+ with 3-stage instruction pipelining microcontroller family manufactured
+ by Renesas Electronics
+ \row
+ \li \c{"rx"}
+ \li High performance 32-bit CISC microcontroller family manufactured
+ by Renesas Electronics
+ \row
+ \li \c{"s390x"}
+ \li 64- and 32-bit System/390 processor architecture developed by IBM
+ \row
+ \li \c{"sh"}
+ \li 32-bit RISC architecture processor family developed by Hitachi and
+ currently manufactured by Renesas Electronics
+ \row
+ \li \c{"sparc"}
+ \li 32-bit RISC architecture processor family developed by
+ Sun Microsystems and Fujitsu
+ \row
+ \li \c{"sparc64"}
+ \li 64-bit RISC architecture processor family developed by
+ Sun Microsystems and Fujitsu
+ \row
+ \li \c{"stm8"}
+ \li 8-bit microcontroller family manufactured by STMicroelectronics
+ \row
+ \li \c{"v850"}
+ \li 32-bit RISC microcontroller family manufactured by Renesas Electronics
+ \row
+ \li \c{"x86"}
+ \li 32-bit ISA architecture processor family developed by Intel
+ \row
+ \li \c{"x86_16"}
+ \li 16-bit ISA architecture processor family developed by Intel
+ \row
+ \li \c{"x86_64"}
+ \li 64-bit ISA architecture processor family developed by AMD
+ \row
+ \li \c{"xtensa"}
+ \li 32-bit architecture with a compact 16- and 24-bit instruction set
+ developed by Tensilica
+ \endtable
+
\nodefaultvalue
*/
/*!
- \qmlproperty string qbs::toolchainType
- \since Qbs 1.11
+ \qmlproperty stringList qbs::toolchain
- The toolchain that is going to be used for this build.
+ Contains the list of string values describing the toolchain and toolchain
+ family that is used to build a project.
- You should generally treat this property as \e{write-only} and avoid using
- it to test for the current toolchain. Instead, use the \l{qbs::}{toolchain}
- property for conditionals.
-
- For example, instead of:
+ This property is deduced from the \l{qbs::}{toolchainType} property and is typically
+ used to test for a particular toolchain or toolchain family in conditionals:
\code
- (qbs.toolchainType === "xcode" || qbs.toolchainType === "clang" || qbs.toolchainType === "gcc")
+ Properties {
+ // flags for GCC
+ condition: qbs.toolchain.includes("gcc")
+ cpp.commonCompilerFlags: ...
+ }
+ Properties {
+ // flags for MSVC
+ condition: qbs.toolchain.includes("msvc")
+ cpp.commonCompilerFlags: ...
+ }
\endcode
- use:
+ Unlike \l{qbs::}{toolchainType}, which contains a single value, \c qbs.toolchain
+ is a string list which also contains the toolchain family. This allows to make
+ conditions and checks simpler. For example, instead of:
\code
- qbs.toolchain.contains("gcc")
+ (qbs.toolchainType === "xcode" || qbs.toolchainType === "clang" || qbs.toolchainType === "gcc")
\endcode
- However, there are some cases when using \c toolchainType would be
- acceptable, such as when the resulting condition would be simpler while
- still being correct:
+ use:
\code
- (qbs.toolchainType === "gcc")
+ qbs.toolchain.includes("gcc")
\endcode
- versus:
+ since XCode, GCC and Clang belong to the \c "gcc" family.
- \code
- (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang"))
- \endcode
+ \section2 Relation between toolchainType and toolchain
- Typical values include: \c{"gcc"}, \c{"clang"}, \c{"mingw"}, \c{"msvc"}, and
- \c{"xcode"}.
+ This table describes the possible values and matching between the \l{qbs::}{toolchainType}
+ and the \c toolchain properties:
+ \table
+ \header
+ \li Toolchain Type
+ \li Toolchain
+ \row
+ \li \c{"clang"}
+ \li \c{["clang", "llvm", "gcc"]}
+ \row
+ \li \c{"clang-cl"}
+ \li \c{["clang-cl", "msvc"]}
+ \row
+ \li \c{"cosmic"}
+ \li \c{["cosmic"]}
+ \row
+ \li \c{"dmc"}
+ \li \c{["dmc"]}
+ \row
+ \li \c{"gcc"}
+ \li \c{["gcc"]}
+ \row
+ \li \c{"iar"}
+ \li \c{["iar"]}
+ \row
+ \li \c{"keil"}
+ \li \c{["keil"]}
+ \row
+ \li \c{"llvm"}
+ \li \c{["llvm", "gcc"]}
+ \row
+ \li \c{"mingw"}
+ \li \c{["mingw", "gcc"]}
+ \row
+ \li \c{"msvc"}
+ \li \c{["msvc"]}
+ \row
+ \li \c{"qcc"}
+ \li \c{["qcc"]}
+ \row
+ \li \c{"sdcc"}
+ \li \c{["sdcc"]}
+ \row
+ \li \c{"watcom"}
+ \li \c{["watcom"]}
+ \row
+ \li \c{"xcode"}
+ \li \c{["xcode", "clang", "llvm", "gcc"]}
+ \endtable
- \defaultvalue Determined automatically.
+ \nodefaultvalue
*/
/*!
- \qmlproperty string qbs::sysroot
+ \qmlproperty string qbs::toolchainType
+ \since Qbs 1.11
- The \c sysroot of the target platform.
+ The toolchain that is going to be used for this build.
- This property is typically set in a profile for cross-compiling.
+ For example, to build a project using the \c "clang" toolchain, simply do
+ \code
+ qbs build qbs.toolchainType:clang
+ \endcode
- \nodefaultvalue
-*/
+ You should generally treat this property as \e{write-only} and avoid using
+ it to test for the current toolchain. Instead, use the \l{qbs::}{toolchain}
+ property for conditionals.
-/*!
- \qmlproperty string qbs::pathListSeparator
+ Typical values include: \c{"gcc"}, \c{"clang"}, \c{"clang-cl"}, \c{"mingw"},
+ \c{"msvc"}, and \c{"xcode"}. Also see \l{Relation between toolchainType and toolchain}.
- The platform-specific separator for a path list that is used in environment
- variables or other contexts.
+ By default, \c qbs.toolchainType is automatically detected based on the
+ \l{qbs::}{targetOS} property:
+ \table
+ \header
+ \li Target OS
+ \li Toolchain
+ \row
+ \li \c{"darwin"}
+ \li \c{"xcode"}
+ \row
+ \li \c{"freebsd"}
+ \li \c{"clang"}
+ \row
+ \li \c{"haiku"}
+ \li \c{"gcc"}
+ \row
+ \li \c{"qnx"}
+ \li \c{"qcc"}
+ \row
+ \li \c{"unix"}
+ \li \c{"gcc"}
+ \row
+ \li \c{"vxworks"}
+ \li \c{"gcc"}
+ \row
+ \li \c{"windows"}
+ \li \c{"msvc"}
+ \endtable
- \defaultvalue \c{";"} on Windows, \c{":"} on Unix.
+ \defaultvalue Determined automatically.
*/
/*!
- \qmlproperty string qbs::nullDevice
- \since Qbs 1.4.2
+ \qmlproperty string qbs::sysroot
- The platform-specific file path corresponding to the null device.
+ The \c sysroot of the target platform.
+
+ This property is typically set in a profile for cross-compiling.
- \defaultvalue \c{"NUL"} on Windows, \c{"/dev/null"} on Unix.
+ \nodefaultvalue
*/
/*!
@@ -374,98 +634,6 @@
*/
/*!
- \qmlproperty stringList qbs::hostOS
-
- This property is set by \QBS internally and specifies the OS \QBS is running
- on.
-
- The possible values for this property are the values of \l{qbs::}{targetOS},
- even though some of them may not be supported.
-
- \nodefaultvalue
-*/
-
-/*!
- \qmlproperty string qbs::hostOSVersion
- \readonly
- \since Qbs 1.2
-
- The host operating system version. Currently, only defined for Windows and
- Apple platforms.
-
- Consists of two or three numbers separated by dots. For example, \c "10.9"
- or \c "6.3.9600".
-
- \nodefaultvalue
-*/
-
-/*!
- \qmlproperty string qbs::hostOSBuildVersion
- \readonly
- \since Qbs 1.2
-
- The host operating system's build version. Currently, only defined for
- Windows and Apple platforms.
-
- On Windows, this is the 4 or 5 digit Windows build number and is equivalent
- to \l{qbs::}{versionPatch}. On Apple platforms, this is a standard build
- number in the Apple versioning scheme. For example, \c "13C64".
-
- \nodefaultvalue
-*/
-
-/*!
- \qmlproperty int qbs::hostOSVersionMajor
- \readonly
- \since Qbs 1.2
-
- The host operating system major version.
-
- \defaultvalue \c{hostOSVersionParts[0]}
-*/
-
-/*!
- \qmlproperty int qbs::hostOSVersionMinor
- \since Qbs 1.2
-
- The host operating system minor version.
-
- \defaultvalue \c{hostOSVersionParts[1]}
-*/
-
-/*!
- \qmlproperty list qbs::hostOSVersionParts
- \readonly
- \since Qbs 1.2
-
- The host operating system version as a list.
-
- For example, Windows 8.1 (version 6.3.9600) would correspond to a value of
- \c[6, 3, 9600].
-
- \defaultvalue \c []
-*/
-
-/*!
- \qmlproperty int qbs::hostOSVersionPatch
- \readonly
- \since Qbs 1.2
-
- The host operating system patch level.
-
- \defaultvalue \c{hostOSVersionParts[2]}
-*/
-
-/*!
- \qmlproperty string qbs::hostPlatform
- \since Qbs 1.11
-
- Do not use this property.
-
- \defaultvalue Determined automatically.
-*/
-
-/*!
\qmlproperty stringList qbs::targetOS
\readonly
@@ -477,17 +645,17 @@
\code
Group {
// Includes all Unix-like platforms, such as: Linux, BSD, Apple platforms and others.
- condition: qbs.targetOS.contains("unix")
+ condition: qbs.targetOS.includes("unix")
files: ...
}
Group {
// Includes all Apple platforms, such as macOS, iOS, and iOS Simulator.
- condition: qbs.targetOS.contains("darwin")
+ condition: qbs.targetOS.includes("darwin")
files: ...
}
Group {
// Includes only macOS
- condition: qbs.targetOS.contains("macos")
+ condition: qbs.targetOS.includes("macos")
files: ...
}
\endcode
@@ -500,7 +668,7 @@
use
\code
- qbs.targetOS.contains("darwin")
+ qbs.targetOS.includes("darwin")
\endcode
@@ -513,7 +681,7 @@
versus
\code
- qbs.targetOS.contains("linux") && !qbs.targetOS.contains("android")
+ qbs.targetOS.includes("linux") && !qbs.targetOS.includes("android")
\endcode
For the complete list of possible values, see
@@ -523,17 +691,6 @@
*/
/*!
- \qmlproperty stringList qbs::toolchain
-
- The attributes of the toolchain that is going to be used for this build.
-
- Typical values include \c{"llvm"}, in addition to the possible values of
- \l{qbs::}{toolchainType}.
-
- \nodefaultvalue
-*/
-
-/*!
\qmlproperty string qbs::version
\readonly
\since Qbs 1.4.1
diff --git a/doc/reference/modules/qnx-module.qdoc b/doc/reference/modules/qnx-module.qdoc
index d14f44b8f..a8ba75717 100644
--- a/doc/reference/modules/qnx-module.qdoc
+++ b/doc/reference/modules/qnx-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype qnx
\inqmlmodule QbsModules
\since Qbs 1.8
diff --git a/doc/reference/modules/qt-android_support-module.qdoc b/doc/reference/modules/qt-android_support-module.qdoc
index 995f73ba5..01d43ab98 100644
--- a/doc/reference/modules/qt-android_support-module.qdoc
+++ b/doc/reference/modules/qt-android_support-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.android_support
\inqmlmodule QbsModules
\brief Provides Qt support for the Android platform.
@@ -39,17 +38,6 @@
*/
/*!
- \qmlproperty bool Qt.android_support::useMinistro
-
- Whether or not to use the Ministro service. If this property is enabled, then
- the Qt libraries required by your application as well as some other resources
- will not be packaged into the APK file, but are expected to be present on the
- device at run time.
-
- \defaultvalue \c false
-*/
-
-/*!
\qmlproperty string Qt.android_support::qmlRootDir
The root directory of the product's QML files. This information is passed to
@@ -86,6 +74,15 @@
*/
/*!
+ \qmlproperty stringList Qt.android_support::qmlImportPaths
+
+ Additional directories to search for QML imports.
+
+ \defaultvalue \c undefined
+ \since 1.22
+*/
+
+/*!
\qmlproperty bool Qt.android_support::verboseAndroidDeployQt
Enable this property if you want verbose output from the
diff --git a/doc/reference/modules/qt-core-module.qdoc b/doc/reference/modules/qt-core-module.qdoc
index c8c3dc7de..6aedf2a69 100644
--- a/doc/reference/modules/qt-core-module.qdoc
+++ b/doc/reference/modules/qt-core-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.core
\inqmlmodule QbsModules
\brief Provides Qt Core support.
@@ -100,6 +99,12 @@
\li Source files with this tag trigger a re-execution of the rule running the \c moc
tool when their timestamp changes.
\row
+ \li \c{"qt.core.metatypes"}
+ \li n/a
+ \li 1.16
+ \li This tag is attached to the JSON files that are potentially created if
+ \l{Qt.core::generateMetaTypesFile}{generateMetaTypesFile} is enabled.
+ \row
\li \c{"qt.core.resource_data"}
\li -
\li 1.7
@@ -196,6 +201,54 @@
*/
/*!
+ \qmlproperty bool Qt.core::generateMetaTypesFile
+
+ If this property is enabled, a JSON file tagged as \c "qt.core.metatypes" will potentially
+ be generated from metatype information collected by \c moc.
+
+ \nodefaultvalue
+ \since Qbs 1.16
+*/
+
+/*!
+ \qmlproperty string Qt.core::generatedHeadersDir
+
+ The directory where tools that generate headers (such as \c moc or \c uic) put resulting
+ files.
+
+ Normally, you don't need to change this property. The one use-case is when there are several
+ files with the same file name in the Product. The file name produced by \c moc is based
+ only on the source file's base file name (without the directory path) which leads to a conflict
+ in the mentioned case. You can resolve the conflict by setting this property to a non-default
+ value for one of the files. For example:
+
+ \code
+ QtApplication {
+ files: ["my_cool_header.h", "main.cpp"]
+ Group {
+ name: "legacy"
+ files: "legacy/my_cool_header.h"
+ Qt.core.generatedHeadersDir: "qt.legacy.headers"
+ }
+ }
+ \endcode
+
+ \defaultvalue \c product.buildDirectory + "/qt.headers"
+*/
+
+/*!
+ \qmlproperty bool Qt.core::metaTypesInstallDir
+
+ The directory to install the metatypes file into. If this property is empty or undefined,
+ the metatypes file will not be installed. If the
+ \l{Qt.core::generateMetaTypesFile}{generateMetaTypesFile} property is not \c true, then
+ this property has no effect.
+
+ \nodefaultvalue
+ \since Qbs 1.16
+*/
+
+/*!
\qmlproperty path Qt.core::incPath
The base path of the Qt headers.
@@ -325,6 +378,14 @@
*/
/*!
+ \qmlproperty string Qt.core::qdocOutputDir
+
+ The directory name where the \c qdoc tool writes its output.
+
+ \defaultvalue \c{product.buildDirectory + "/qdoc_html"}
+*/
+
+/*!
\qmlproperty string Qt.core::qmBaseName
The base name of the \c .qm file to be built from the \c .ts files in the
@@ -336,6 +397,14 @@
*/
/*!
+ \qmlproperty string Qt.core::qmDir
+
+ The directory name where to put the \c .qm file to be built.
+
+ \defaultvalue \l{Product::destinationDirectory}{product.destinationDirectory}
+*/
+
+/*!
\qmlproperty string Qt.core::qtBuildVariant
Specifies the type of Qt libraries to build against: \c "debug" or
@@ -441,3 +510,11 @@
\defaultvalue \c{versionParts[2]}
*/
+
+/*!
+ \qmlproperty bool Qt.core::useRPaths
+
+ Whether to add \l{Qt.core::libPath}{Qt.core.libPath} to \l{cpp::rpaths}{cpp.rpaths}.
+
+ \defaultvalue \c true on Linux, \c false everywhere else.
+*/
diff --git a/doc/reference/modules/qt-dbus-module.qdoc b/doc/reference/modules/qt-dbus-module.qdoc
index dacf3f095..32e84f950 100644
--- a/doc/reference/modules/qt-dbus-module.qdoc
+++ b/doc/reference/modules/qt-dbus-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.dbus
\inqmlmodule QbsModules
\brief Provides Qt D-Bus support.
diff --git a/doc/reference/modules/qt-declarative-module.qdoc b/doc/reference/modules/qt-declarative-module.qdoc
index f7996257f..f247f3347 100644
--- a/doc/reference/modules/qt-declarative-module.qdoc
+++ b/doc/reference/modules/qt-declarative-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.declarative
\inqmlmodule QbsModules
\brief Provides Qt Quick 1 support.
diff --git a/doc/reference/modules/qt-gui-module.qdoc b/doc/reference/modules/qt-gui-module.qdoc
index 16d8cf344..ace3cce08 100644
--- a/doc/reference/modules/qt-gui-module.qdoc
+++ b/doc/reference/modules/qt-gui-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.gui
\inqmlmodule QbsModules
\brief Provides Qt GUI support.
diff --git a/doc/reference/modules/qt-modules.qdoc b/doc/reference/modules/qt-modules.qdoc
index 099f4e3ce..e3fee3c72 100644
--- a/doc/reference/modules/qt-modules.qdoc
+++ b/doc/reference/modules/qt-modules.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\page qt-modules.html
\inmodule qbs-modules
@@ -36,6 +35,8 @@
The \c{Qt.*} modules contain properties and rules for Qt.
+ Qt modules are generated by the \l[QML]{Qt} module provider.
+
\section1 Creating Dependencies to Qt Modules
The Qt modules are grouped using the prefix \c Qt. If your product depends
@@ -55,22 +56,6 @@
The Qt modules that have properties and relevant file tags are described in
separate topics.
- \section1 Qt-specific Module Provider Properties
-
- Looking up a Qt installation happens via a \l{Module Providers}{module provider}.
- By default, if a dependency to a Qt module is encountered, \QBS collects all Qt installations
- it can find. This lookup happens by searching for \c qmake executables in the \c PATH
- environment variable. Alternatively, you can explicitly tell \QBS which Qt
- installations it should consider by setting the \c Qt.qmakeFilePaths
- \l{Parameterizing Module Providers}{module provider property}. In that case,
- the environment will be ignored. For instance, with the following Linux command line,
- \QBS will build the project against a custom Qt instead of the standard one in \c{/usr/bin}:
- \code
- $ qbs moduleProviders.Qt.qmakeFilePaths:/opt/myqt/bin/qmake
- \endcode
- You can also set the module provider property in a profile. The simplest way to do
- this is via the \l setup-qt tool.
-
\section1 List of Submodules
\table
diff --git a/doc/reference/modules/qt-plugin_support-module.qdoc b/doc/reference/modules/qt-plugin_support-module.qdoc
index 2f41e1cc0..057291820 100644
--- a/doc/reference/modules/qt-plugin_support-module.qdoc
+++ b/doc/reference/modules/qt-plugin_support-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.plugin_support
\inqmlmodule QbsModules
\since Qbs 1.13.0
diff --git a/doc/reference/modules/qt-qml-module.qdoc b/doc/reference/modules/qt-qml-module.qdoc
index 722a2eb41..57b3661f0 100644
--- a/doc/reference/modules/qt-qml-module.qdoc
+++ b/doc/reference/modules/qt-qml-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.qml
\inqmlmodule QbsModules
\brief Provides Qt QML support.
@@ -60,10 +59,81 @@
\li 1.8
\li Source files with this tag serve as inputs to the QML plugin
scanner.
+ \row
+ \li \c{"qt.qml.types"}
+ \li n/a
+ \li 1.16
+ \li This tag is attached to the files created by the \c qmltyperegistrar
+ tool if the \l importName property is set.
\endtable
*/
/*!
+ \qmlproperty string Qt.qml::importName
+
+ Setting this value triggers QML type registration via the \c qmltyperegistrar tool,
+ which results in the creation of a file with the tag \c{"qt.qml.types"}.
+ The given string is the name under which the registered types can be imported
+ by QML code that wants to use them.
+
+ \note This functionality is only available with Qt 5.15 or later.
+
+ \since Qbs 1.16
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty string Qt.qml::importVersion
+
+ Specifies the version of the types to be registered.
+ Values consist of a major and an optional minor number, separated by dots.
+ This property has no effect if \l importName is not set.
+
+ \since Qbs 1.16
+ \defaultvalue \l {Product::version}{The product version}
+*/
+
+/*!
+ \qmlproperty string Qt.qml::typesFileName
+
+ Specifies the name of the file that declares the types registered for this product.
+ For applications, the default value is \c{<name>.qmltypes},
+ where \c{<name>} is the product's \l{Product::targetName}{target name}.
+ Otherwise, the default value is "plugins.qmltypes".
+ \note The naming conventions are still in flux.
+ When in doubt, consult the Qt documentation.
+
+ This property has no effect if \l importName is not set.
+
+ \since Qbs 1.16
+*/
+
+/*!
+ \qmlproperty string Qt.qml::typesInstallDir
+
+ The directory to install the qmltypes file into. If this property is empty or undefined,
+ the file will not be installed.
+ This property has no effect if \l importName is not set.
+
+ \since Qbs 1.16
+ \nodefaultvalue
+*/
+
+/*!
+ \qmlproperty stringList Qt.qml::extraMetaTypesFiles
+
+ Specifies extra metatypes files to pass to the \c qmltyperegistrar tool
+ via the \c{--foreign-types} option when registering QML types.
+ \note This property is only needed for external libraries, not products or modules
+ pulled via \c Depends items. In particular, you don't need to (and should not)
+ use it to collect the metatypes files of Qt modules. These are found automatically.
+ This property has no effect if \l importName is not set.
+
+ \since Qbs 1.16
+ \nodefaultvalue
+*/
+
+/*!
\qmlproperty string Qt.qml::qmlImportScannerName
The base name of the QML import scanner.
diff --git a/doc/reference/modules/qt-quick-module.qdoc b/doc/reference/modules/qt-quick-module.qdoc
index 8a39b92fc..5e6fa694b 100644
--- a/doc/reference/modules/qt-quick-module.qdoc
+++ b/doc/reference/modules/qt-quick-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.quick
\inqmlmodule QbsModules
\brief Provides Qt Quick 2 support.
diff --git a/doc/reference/modules/qt-scxml-module.qdoc b/doc/reference/modules/qt-scxml-module.qdoc
index 34f0461d6..b0092ae6e 100644
--- a/doc/reference/modules/qt-scxml-module.qdoc
+++ b/doc/reference/modules/qt-scxml-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype Qt.scxml
\inqmlmodule QbsModules
\brief Provides Qt SCXML support.
diff --git a/doc/reference/modules/texttemplate-module.qdoc b/doc/reference/modules/texttemplate-module.qdoc
index 652b92863..4c354b261 100644
--- a/doc/reference/modules/texttemplate-module.qdoc
+++ b/doc/reference/modules/texttemplate-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype texttemplate
\inqmlmodule QbsModules
\since Qbs 1.13
diff --git a/doc/reference/modules/typescript-module.qdoc b/doc/reference/modules/typescript-module.qdoc
index 4c65c2279..f0f967747 100644
--- a/doc/reference/modules/typescript-module.qdoc
+++ b/doc/reference/modules/typescript-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype typescript
\inqmlmodule QbsModules
\since Qbs 1.3
diff --git a/doc/reference/modules/vcs-module.qdoc b/doc/reference/modules/vcs-module.qdoc
index d8ae45b80..fac0979ae 100644
--- a/doc/reference/modules/vcs-module.qdoc
+++ b/doc/reference/modules/vcs-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype vcs
\inqmlmodule QbsModules
\since Qbs 1.10
diff --git a/doc/reference/modules/wix-module.qdoc b/doc/reference/modules/wix-module.qdoc
index a09119698..ab6a7497f 100644
--- a/doc/reference/modules/wix-module.qdoc
+++ b/doc/reference/modules/wix-module.qdoc
@@ -26,7 +26,6 @@
****************************************************************************/
/*!
- \contentspage index.html
\qmltype wix
\inqmlmodule QbsModules
\since Qbs 1.2
diff --git a/doc/reference/modules/xcode-module.qdoc b/doc/reference/modules/xcode-module.qdoc
index bf38feea1..748226c06 100644
--- a/doc/reference/modules/xcode-module.qdoc
+++ b/doc/reference/modules/xcode-module.qdoc
@@ -26,7 +26,6 @@
**
****************************************************************************/
/*!
- \contentspage index.html
\qmltype xcode
\inqmlmodule QbsModules
\since Qbs 1.5
diff --git a/doc/reference/reference.qdoc b/doc/reference/reference.qdoc
index f1975bf3a..f2992b287 100644
--- a/doc/reference/reference.qdoc
+++ b/doc/reference/reference.qdoc
@@ -25,7 +25,6 @@
**
****************************************************************************/
/*!
- \contentspage index.html
\previouspage howtos.html
\page reference.html
\nextpage building-qbs.html
@@ -47,7 +46,6 @@
*/
/*!
- \contentspage reference.html
\group list-of-builtin-services
\title List of Built-in Services
\QBS provides the following built-in JavaScript extensions to simplify operations that
@@ -67,7 +65,6 @@
*/
/*!
- \contentspage reference.html
\qmlmodule QbsModules
\title List of Modules
These are the modules shipped with \QBS.
@@ -78,7 +75,12 @@
*/
/*!
- \contentspage reference.html
+ \qmlmodule QbsModuleProviders
+ \title List of Module Providers
+ These are the module providers shipped with \QBS.
+*/
+
+/*!
\group list-of-items
\title List of All Items
@@ -88,7 +90,6 @@
*/
/*!
- \contentspage reference.html
\qmlmodule QbsLanguageItems
\title List of Language Items
@@ -97,7 +98,6 @@
*/
/*!
- \contentspage reference.html
\qmlmodule QbsConvenienceItems
\title List of Convenience Items
@@ -105,8 +105,7 @@
*/
/*!
- \contentspage reference.html
- \group list-of-probes
+ \qmlmodule QbsProbes
\title List of Probes
These are the probes shipped with \QBS.