Resolves feature selections and optional dependency enablement.
Types
FeatureSelection = object requested*: seq[string] ## Feature names explicitly requested by the caller. enabled*: seq[string] ## Non-default feature names enabled after expansion. enabledDeps*: seq[string] ## Optional dependency names enabled by features.
- Result of resolving requested and default features.
Procs
proc compilerFeatureFlags(selection: FeatureSelection): seq[string] {. ...raises: [], tags: [], forbids: [].}
- Build Nim compiler -d: flags for enabled features.
proc dependencyEnabled(cfg: BauConfig; depName: string; dep: DepInfo; features: FeatureSelection): bool {....raises: [], tags: [], forbids: [].}
- Return whether a dependency is active under a feature selection.
proc enabledFeatureEnv(selection: FeatureSelection): Table[string, string] {. ...raises: [], tags: [], forbids: [].}
- Build environment variables that expose enabled features to tasks.
proc featureExists(cfg: BauConfig; name: string): bool {....raises: [], tags: [], forbids: [].}
- Return true when name is declared in the project's feature table.
proc normalizeFeatureDefine(name: string): string {....raises: [], tags: [], forbids: [].}
- Convert a feature name into a Nim -d: compatible define suffix.
proc parseFeatureList(value: string): seq[string] {....raises: [], tags: [], forbids: [].}
- Split a comma-separated feature option into normalized feature names.
proc resolveFeatures(cfg: BauConfig; requested: openArray[string]; allFeatures = false; noDefaultFeatures = false): FeatureSelection {. ...raises: [ValueError, KeyError], tags: [], forbids: [].}
-
Resolve requested, default, and transitive feature enablement.
Raises ValueError when a requested feature or referenced feature item is unknown.