- Qbs Manual
- Depends Item
- Qbs 1.6.0

CppApplication Item DynamicLibrary Item

# Depends Item

A `Depends` item can appear inside a Product Item or Module Item.

For example, the following product will load the `cpp` module. In addition, it will try to load modules that may or may not exist, and in the latter case use a fallback.

    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
        }

        // ...
    }

## Depends Properties

Property | Type | Default | Description
--- | --- | --- | ---
condition | bool | true | Determines whether the dependency will actually be applied.
versionAtLeast | string | undefined | The minimum value that the dependency's `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.
versionBelow | string | undefined | A value that the dependency's `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.
productTypes | stringList | undefined | A list of product types. Any enabled product in the project that has a matching type will become a dependency of the product containing the `Depends` item. This property is mutually exclusive with the `name` and `submodules` properties. The `required` and `profiles` properties are ignored if `productTypes` is set.
required | bool | `true` | Setting this property to `false` creates a 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 `present` property will be available for querying, and it will be set to `false`.
name | string | undefined | The name of the dependent product or module.
profiles | stringList | `[product.profile]` | 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 `profiles` property of the `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.
limitToSubProject | bool | `false` | If `productTypes` is set and this property is `true`, then only products that are in the same sub-project as the product containing the `Depends` item are considered.
submodules | stringList | undefined | The submodules of `module` to depend on, if applicable.

CppApplication Item DynamicLibrary Item