diff options
| author | gingerBill <bill@gingerbill.org> | 2021-11-04 12:49:39 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-11-04 12:49:39 +0000 |
| commit | b2a2aa15c25a93f22c3c22810ade7bfb5651b6da (patch) | |
| tree | 4e0a99d01c01a42c062e48a624bf830f37b2e655 /src/build_settings.cpp | |
| parent | 1ec2f8d53720f45a2026572bcdefdef760f9bc61 (diff) | |
Add `ODIN_BUILD_MODE`
Diffstat (limited to 'src/build_settings.cpp')
| -rw-r--r-- | src/build_settings.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 63752ce68..fa8922f61 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -166,6 +166,7 @@ struct BuildContext { String ODIN_VENDOR; // compiler vendor String ODIN_VERSION; // compiler version String ODIN_ROOT; // Odin ROOT + String ODIN_BUILD_MODE; bool ODIN_DEBUG; // Odin in debug mode bool ODIN_DISABLE_ASSERT; // Whether the default 'assert' et al is disabled in code or not bool ODIN_DEFAULT_TO_NIL_ALLOCATOR; // Whether the default allocator is a "nil" allocator or not (i.e. it does nothing) @@ -815,6 +816,24 @@ void init_build_context(TargetMetrics *cross_target) { bc->ODIN_VENDOR = str_lit("odin"); bc->ODIN_VERSION = ODIN_VERSION; bc->ODIN_ROOT = odin_root_dir(); + switch (bc->build_mode) { + default: + case BuildMode_Executable: + bc->ODIN_BUILD_MODE = str_lit("executable"); + break; + case BuildMode_DynamicLibrary: + bc->ODIN_BUILD_MODE = str_lit("dynamic"); + break; + case BuildMode_Object: + bc->ODIN_BUILD_MODE = str_lit("object"); + break; + case BuildMode_Assembly: + bc->ODIN_BUILD_MODE = str_lit("assembly"); + break; + case BuildMode_LLVM_IR: + bc->ODIN_BUILD_MODE = str_lit("llvm-ir"); + break; + } bc->copy_file_contents = true; |