diff options
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; |