aboutsummaryrefslogtreecommitdiffstats
path: root/doc/reference/items/language/depends.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/reference/items/language/depends.qdoc')
-rw-r--r--doc/reference/items/language/depends.qdoc136
1 files changed, 136 insertions, 0 deletions
diff --git a/doc/reference/items/language/depends.qdoc b/doc/reference/items/language/depends.qdoc
new file mode 100644
index 000000000..5d944cba6
--- /dev/null
+++ b/doc/reference/items/language/depends.qdoc
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qbs.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+/*!
+ \contentspage list-of-language-items.html
+ \previouspage artifact-item.html
+ \page depends-item.html
+ \nextpage export-item.html
+ \ingroup list-of-language-items
+ \ingroup list-of-items
+
+ \title Depends Item
+ \brief Represents dependencies between products and modules.
+
+ A \c Depends item can appear inside a \l{Product Item} or \l{Module Item}.
+
+ For example, the following product will load the \c cpp module. In addition, it will try
+ to load modules that may or may not exist, and in the latter case use a fallback.
+ \code
+ Product {
+ Depends { name: "cpp" }
+ Depends {
+ name: "awesome_module"
+ versionAtLeast: "2.0"
+ required: false
+ }
+ Depends {
+ name: "adequate_module"
+ condition: !awesome_module.present
+ required: false
+ }
+ Depends {
+ name: "crappy_module"
+ condition: !awesome_module.present && !adequate_module.present
+ }
+
+ // ...
+ }
+ \endcode
+
+
+ \section1 Depends Properties
+
+ \table
+ \header
+ \li Property
+ \li Type
+ \li Default
+ \li Description
+ \row
+ \li condition
+ \li bool
+ \li true
+ \li Determines whether the dependency will actually be applied.
+ \row
+ \li versionAtLeast
+ \li string
+ \li undefined
+ \li The minimum value that the dependency's \c version property needs to have. If the
+ actual version is lower than that, loading the dependency will fail.
+ The value consists of integers separated by dots.
+ \row
+ \li versionBelow
+ \li string
+ \li undefined
+ \li A value that the dependency's \c version property must be lower than. If the
+ actual version is equal to or higher than that, loading the dependency will fail.
+ The value consists of integers separated by dots.
+ \row
+ \li productTypes
+ \li stringList
+ \li undefined
+ \li A list of product types. Any enabled product in the project that has a matching type
+ will become a dependency of the product containing the \c Depends item.
+ This property is mutually exclusive with the \c name and \c submodules properties.
+ The \c required and \c profiles properties are ignored if \c productTypes is set.
+ \row
+ \li required
+ \li bool
+ \li \c true
+ \li Setting this property to \c false creates a \e{soft dependency}, meaning that it is not
+ considered an error if the given module cannot be found. In such a case, an instance of
+ the respective module will be created, but only the \c present property will be
+ available for querying, and it will be set to \c false.
+ \row
+ \li name
+ \li string
+ \li undefined
+ \li The name of the dependent product or module.
+ \row
+ \li profiles
+ \li stringList
+ \li \c{[product.profile]}
+ \li If the dependency is on a product and that product is going to be built for more than
+ one profile, then you can specify here which instance of the product the dependency is on.
+ See the \c profiles property of the \c Product item for more information.
+ An empty list means a dependency on all instances of the product with the given name,
+ regardless of their profile.
+ \row
+ \li limitToSubProject
+ \li bool
+ \li \c false
+ \li If \c productTypes is set and this property is \c true, then only products that
+ are in the same sub-project as the product containing the \c Depends item are
+ considered.
+ \row
+ \li submodules
+ \li stringList
+ \li undefined
+ \li The submodules of \c module to depend on, if applicable.
+ \endtable
+
+*/