alias BuildOptions(string action, string pastAction, bool showBuildActions = true) =
TypeTuple!(
Switch!(
hiddenOption, 0, "64"),
Option!(
string,
showBuildActions ? "Select models (32, 64, or, on Windows, 32mscoff). You can specify multiple models by comma-separating them.\nOn this system, the default is " ~
DManager.Config.Build.components.common.defaultModel ~ " [build.components.common.models]" :
hiddenOption, null, 0, "model"),
Option!(
string[], "Do not " ~
action ~ " a component (that would otherwise be " ~
pastAction ~ " by default). List of default components: " ~
DManager.defaultComponents.join(", ") ~ " [build.components.enable.COMPONENT=false]", "COMPONENT", 0, "without"),
Option!(
string[], "Specify an additional D component to " ~
action ~ ". List of available additional components: " ~
DManager.additionalComponents.join(", ") ~ " [build.components.enable.COMPONENT=true]", "COMPONENT", 0, "with"),
Option!(
string[],
showBuildActions ? `Additional make parameters, e.g. "HOST_CC=g++48" [build.components.common.makeArgs]` :
hiddenOption, "ARG", 0, "makeArgs"),
Switch!(
showBuildActions ? "Bootstrap the compiler (build from C++ source code) instead of downloading a pre-built binary package [build.components.dmd.bootstrap.fromSource]" :
hiddenOption, 0, "bootstrap"),
Switch!(
hiddenOption, 0, "use-vc"),
Switch!(
hiddenOption, 0, "clobber-local-changes"))