Browse Source

Add `ODIN_PLATFORM_SUBTARGET`

gingerBill 2 years ago
parent
commit
cad3a50e4e
2 changed files with 20 additions and 0 deletions
  1. 10 0
      core/runtime/core.odin
  2. 10 0
      src/checker.cpp

+ 10 - 0
core/runtime/core.odin

@@ -499,6 +499,16 @@ Odin_Build_Mode_Type :: type_of(ODIN_BUILD_MODE)
 Odin_Endian_Type :: type_of(ODIN_ENDIAN)
 
 
+/*
+	// Defined internally by the compiler
+	Odin_Platform_Subtarget_Type :: enum int {
+		Default,
+		iOS,
+	}
+*/
+Odin_Platform_Subtarget_Type :: type_of(ODIN_PLATFORM_TARGET)
+
+
 /////////////////////////////
 // Init Startup Procedures //
 /////////////////////////////

+ 10 - 0
src/checker.cpp

@@ -1031,6 +1031,16 @@ gb_internal void init_universal(void) {
 		add_global_string_constant("ODIN_ENDIAN_STRING", target_endian_names[target_endians[bc->metrics.arch]]);
 	}
 
+	{
+		GlobalEnumValue values[Subtarget_COUNT] = {
+			{"Default", Subtarget_Default},
+			{"iOS",     Subtarget_iOS},
+		};
+
+		auto fields = add_global_enum_type(str_lit("Odin_Platform_Subtarget_Type"), values, gb_count_of(values));
+		add_global_enum_constant(fields, "ODIN_PLATFORM_SUBTARGET", selected_subtarget);
+	}
+
 	{
 		GlobalEnumValue values[ErrorPosStyle_COUNT] = {
 			{"Default", ErrorPosStyle_Default},