raise ValueError('Substitution {} is not in the config.'.format(substitution))
def configure(parameters, features, config, lit_config):
+ note = lambda s: lit_config.note("({}) {}".format(config.name, s))
+
# Apply the actions supplied by parameters to the configuration first, since
# parameters are things that we request explicitly and which might influence
# what features are implicitly made available next.
actions = param.getActions(config, lit_config.params)
for action in actions:
action.applyTo(config)
- lit_config.note("Applied '{}' as a result of parameter '{}'".format(
- action.pretty(config, lit_config.params),
- param.pretty(config, lit_config.params)))
+ if lit_config.debug:
+ note("Applied '{}' as a result of parameter '{}'".format(
+ action.pretty(config, lit_config.params),
+ param.pretty(config, lit_config.params)))
# Then, apply the automatically-detected features.
for feature in features:
actions = feature.getActions(config)
for action in actions:
action.applyTo(config)
- lit_config.note("Applied '{}' as a result of implicitly detected feature '{}'".format(
- action.pretty(config, lit_config.params),
- feature.pretty(config)))
+ if lit_config.debug:
+ note("Applied '{}' as a result of implicitly detected feature '{}'".format(
+ action.pretty(config, lit_config.params),
+ feature.pretty(config)))
# Print the basic substitutions
for sub in ('%{cxx}', '%{flags}', '%{compile_flags}', '%{link_flags}', '%{exec}'):
- lit_config.note("Using {} substitution: '{}'".format(sub, _getSubstitution(sub, config)))
+ note("Using {} substitution: '{}'".format(sub, _getSubstitution(sub, config)))
+
+ # Print all available features
+ note("All available features: {}".format(', '.join(config.available_features)))