Contians the per build configuration.
Code Map
//! Contians the per build configuration.
module battery.configuration;
public import battery.defines;
public import battery.commonInterfaces;
//! A build configuration for one or more builds.
class Configuration
{
public:
//! Used when launching commands.
env: Environment;
//! Is this, native, host or cross-compile?
kind: ConfigKind;
//! Architecture for this configuration.
arch: Arch;
//! Platform for this configuration.
platform: Platform;
//! Is the build release or debug.
isRelease: bool;
//! Link-time-optimizations, implemented via LLVM's ThinLTO.
isLTO: bool;
//! Should we generate vdoc json files.
shouldJSON: bool;
//! The llvmConf path, given by --llvmconf.
llvmConf: string;
//! The battery config file that might be loaded.
batConf: BatteryConfig;
//! LLVM version.
llvmVersion: semver.Release;
//! Base clang command.
clangCmd: Command;
//! Linker command.
linkerCmd: Command;
//! Linker command.
linkerKind: LinkerKind;
//! C-compiler.
ccCmd: Command;
//! C-compiler.
ccKind: CCKind;
//! NASM used for rt assembly files.
nasmCmd: Command;
//! Rdmd for bootstrapping.
rdmdCmd: Command;
//! Gdc for bootstrapping.
gdcCmd: Command;
//! All added tools.
tools: Command[string];
public:
this() { }
//! Get a tool that has been added.
fn getTool(name: string) Command { }
//! Adds a tool to this configuration, a given tool can only be added once.
fn addTool(name: string, cmd: string, args: string[]) Command { }
//! Helper properties.
fn isBootstrap() bool { }
//! Helper properties.
fn isNative() bool { }
//! Helper properties.
fn isCross() bool { }
}
A build configuration for one or more builds.
This can be shared between multiple builds. When cross-compiling there will be multiple configurations, one for the target and another for the host.
Used when launching commands.
Is this, native, host or cross-compile?
Architecture for this configuration.
Platform for this configuration.
Is the build release or debug.
Link-time-optimizations, implemented via LLVM's ThinLTO.
Should we generate vdoc json files.
The llvmConf path, given by --llvmconf.
The battery config file that might be loaded.
LLVM version.
Base clang command.
Linker command.
Linker command.
C-compiler.
C-compiler.
NASM used for rt assembly files.
Rdmd for bootstrapping.
Gdc for bootstrapping.
All added tools.
Get a tool that has been added.
Adds a tool to this configuration, a given tool can only be added once.
Helper properties.
Helper properties.
Helper properties.