aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp19
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;