Changes between Version 19 and Version 20 of BuildSystem


Ignore:
Timestamp:
Mar 11, 2010, 8:12:09 PM (14 years ago)
Author:
becoulet
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildSystem

    v19 v20  
    237237== The .config constraints files ==
    238238
     239Their are several types of configuration tokens:
     240 * normal features enabling tokens which can be either defined or undefined in build configuration files.
     241 * meta tokens which can only get defined through definition of other tokens.
     242 * value tokens which can have any value.
     243
     244=== Token flags ===
     245
     246Several flags can be attached to tokens, most important ones are:
     247 `value`::
     248   Indicate the token is a value token. Value tokens can not have dependencies but can take value others than `defined` and `undefined`
     249 `meta`::
     250   Indicate the token is a meta token which may only be enable by an other token using the `provide` tag.
     251 `auto`::
     252   Indicate the token should be automatically enabled to satisfy dependencies.
     253
     254Other flags can be attached to tokens:
     255 `harddep`::
     256   Indicate the token can not be safely undefined due to a unsatisfied dependency.
     257 `mandatory`::
     258   Indicate the token can not be undefined. Useful to enforce requirements on other tokens mainly for mandatory modules.
     259 `root`::
     260   Indicate the token has no parent.
     261 `internal`::
     262   Indicate the token is for internal use and can not be defined in build configuration file directly
     263 `noexport`::
     264   Indicate the token should not be written out in generated header file.
     265 `private`::
     266   Indicate the token can not be used with `parent`, `depend` or `provide` tag from an other `.config` file.
     267
     268=== Constraint tags ===
     269
    239270For each configuration token, one may use the following tags:
    240 
    241271 `desc Description string without quotes`::
    242272   Short description about the token
     
    251281
    252282The following tags may be used to specify features constraints:
    253 
    254283 `depend TOKEN […]`::
    255284   Dependencies, at least one of the feature tokens on the line is required, if unsatisfied the current token gets undefined and a notice is emitted. May be used to disable features because of missing prerequisites.
     285 `single TOKEN […]`::
     286   Same as depend with the additional constraint that only one of the given tokens is defined
    256287 `exclude TOKEN`::
    257288   Specify excluded token, the current and specified token must not be defined at the same time.
    258  `single TOKEN […]`::
    259    Only one of the following tokens may be defined at the same time
    260289 `when TOKEN_CONDITION […]`::
    261290   The current feature token will be automatically defined if all specified conditions are met.
     
    264293
    265294 `require TOKEN_CONDITION […]`::
    266    Mandatory requirements, having at least one of the tokens on the line is mandatory, conflict yields error. May be used to enforce definition of some mandatory configuration values.
     295   Requirements on value tokens, having at least one condition met on the line is mandatory if the current token is defined.
    267296 `provide TOKEN=value`::
    268    Defining the current feature token enforce definition of the specified value token with the given value. The `nodefine` flag indicate token is for internal use and can not be defined by the user.
     297   Set a value token to the specified value if the current token is defined.
     298 `provide TOKEN`::
     299   Define a meta token if the current token is defined.
    269300
    270301Some tags can be used to give some configurations advice to the user when building MutekH:
     
    273304   Defining the current feature token suggest the given condition to the user.
    274305 `suggest_when TOKEN_CONDITION […]`::
    275    The current token will suggest being considered to the user if it still has its default value and all condition are met.
     306   The current token will suggest being considered to the user if dependencies are actually satisfied all given conditions are met.
    276307
    277308The `TOKEN_CONDITION` might check different conditions: