A Module item is a collection of properties and language items that are used for building a product if the product depends on (or loads) the module.
A Module can be loaded by adding a dependency to it in a product. 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" required: false } Depends { name: "adequate_module" condition: !awesome_module.present required: false } Depends { name: "crappy_module" condition: !awesome_module.present && !adequate_module.present } // ... }
Property | Type | Default | Description |
---|---|---|---|
present | bool | true | This property is read-only. Its value is false if and only if the respective Depends item had its required property set to false and the module was not found. |
setupBuildEnvironment | script | undefined | Script for setting up the environment in which the project is built. Use the putEnv and getEnv functions to alter the environment. The return value of this script is ignored. |
setupRunEnvironment | script | setupBuildEnvironment | Script for setting up the environment in which the project is run. |
validate | script | undefined | Script that is run after the module is loaded. It can be used to check property values and throw errors in unexpected cases. The return value is ignored. |