Selaa lähdekoodia

Add WINDOWS_SUBSYSTEM constant bool

true when -subsystem:windows for Windows targets, false otherwise.
Jeroen van Rijn 1 vuosi sitten
vanhempi
commit
ae52e245ea
2 muutettua tiedostoa jossa 11 lisäystä ja 10 poistoa
  1. 9 10
      src/build_settings.cpp
  2. 2 0
      src/checker.cpp

+ 9 - 10
src/build_settings.cpp

@@ -298,6 +298,7 @@ struct BuildContext {
 	bool   ODIN_DEFAULT_TO_NIL_ALLOCATOR; // Whether the default allocator is a "nil" allocator or not (i.e. it does nothing)
 	bool   ODIN_FOREIGN_ERROR_PROCEDURES;
 	bool   ODIN_VALGRIND_SUPPORT;
+	bool   WINDOWS_SUBSYSTEM; // True only for Windows targets with -subsystem:windows
 
 	ErrorPosStyle ODIN_ERROR_POS_STYLE;
 
@@ -1282,8 +1283,6 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
 		GB_ASSERT(metrics->int_size == 2*metrics->ptr_size);
 	}
 
-
-
 	bc->metrics = *metrics;
 	switch (subtarget) {
 	case Subtarget_Default:
@@ -1300,14 +1299,14 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
 		break;
 	}
 
-	bc->ODIN_OS        = target_os_names[metrics->os];
-	bc->ODIN_ARCH      = target_arch_names[metrics->arch];
-	bc->endian_kind    = target_endians[metrics->arch];
-	bc->ptr_size       = metrics->ptr_size;
-	bc->int_size       = metrics->int_size;
-	bc->max_align      = metrics->max_align;
-	bc->max_simd_align = metrics->max_simd_align;
-	bc->link_flags  = str_lit(" ");
+	bc->ODIN_OS           = target_os_names[metrics->os];
+	bc->ODIN_ARCH         = target_arch_names[metrics->arch];
+	bc->endian_kind       = target_endians[metrics->arch];
+	bc->ptr_size          = metrics->ptr_size;
+	bc->int_size          = metrics->int_size;
+	bc->max_align         = metrics->max_align;
+	bc->max_simd_align    = metrics->max_simd_align;
+	bc->link_flags        = str_lit(" ");
 
 	#if defined(DEFAULT_TO_THREADED_CHECKER)
 	bc->threaded_checker = true;

+ 2 - 0
src/checker.cpp

@@ -973,6 +973,8 @@ gb_internal void init_universal(void) {
 	add_global_string_constant("ODIN_ROOT",    bc->ODIN_ROOT);
 	add_global_string_constant("ODIN_BUILD_PROJECT_NAME", bc->ODIN_BUILD_PROJECT_NAME);
 
+	add_global_bool_constant("WINDOWS_SUBSYSTEM", bc->use_subsystem_windows);
+
 	{
 		GlobalEnumValue values[TargetOs_COUNT] = {
 			{"Unknown",      TargetOs_Invalid},