aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-11-04 12:49:39 +0000
committergingerBill <bill@gingerbill.org>2021-11-04 12:49:39 +0000
commitb2a2aa15c25a93f22c3c22810ade7bfb5651b6da (patch)
tree4e0a99d01c01a42c062e48a624bf830f37b2e655 /src/build_settings.cpp
parent1ec2f8d53720f45a2026572bcdefdef760f9bc61 (diff)
Add `ODIN_BUILD_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;