Browse Source

-compact flag for 'odin query'

gingerBill 6 years ago
parent
commit
426c1ed6f4
2 changed files with 13 additions and 1 deletions
  1. 1 0
      src/build_settings.cpp
  2. 12 1
      src/main.cpp

+ 1 - 0
src/build_settings.cpp

@@ -106,6 +106,7 @@ struct BuildContext {
 	bool   no_bounds_check;
 	bool   no_output_files;
 	bool   print_query_data;
+	bool   print_query_data_compact;
 	bool   no_crt;
 	bool   use_lld;
 	bool   vet;

+ 12 - 1
src/main.cpp

@@ -218,6 +218,7 @@ enum BuildFlagKind {
 	BuildFlag_UseLLD,
 	BuildFlag_Vet,
 	BuildFlag_IgnoreUnknownAttributes,
+	BuildFlag_Compact,
 
 #if defined(GB_SYSTEM_WINDOWS)
 	BuildFlag_ResourceFile,
@@ -302,6 +303,7 @@ bool parse_build_flags(Array<String> args) {
 	add_flag(&build_flags, BuildFlag_UseLLD,            str_lit("lld"),             BuildFlagParam_None);
 	add_flag(&build_flags, BuildFlag_Vet,               str_lit("vet"),             BuildFlagParam_None);
 	add_flag(&build_flags, BuildFlag_IgnoreUnknownAttributes, str_lit("ignore-unknown-attributes"), BuildFlagParam_None);
+	add_flag(&build_flags, BuildFlag_Compact, str_lit("compact"), BuildFlagParam_None);
 
 #if defined(GB_SYSTEM_WINDOWS)
 	add_flag(&build_flags, BuildFlag_ResourceFile,   str_lit("resource"), BuildFlagParam_String);
@@ -664,6 +666,15 @@ bool parse_build_flags(Array<String> args) {
 							build_context.ignore_unknown_attributes = true;
 							break;
 
+						case BuildFlag_Compact:
+							if (!build_context.print_query_data) {
+								gb_printf_err("Invalid use of -compact flag, only allowed with 'odin query'\n");
+								bad_flags = true;
+							} else {
+								build_context.print_query_data_compact = true;
+							}
+							break;
+
 					#if defined(GB_SYSTEM_WINDOWS)
 						case BuildFlag_ResourceFile: {
 							GB_ASSERT(value.kind == ExactValue_String);
@@ -1239,7 +1250,7 @@ void generate_and_print_query_data(Checker *c, Timings *timings) {
 	}
 
 
-	print_query_data_as_json(root, true);
+	print_query_data_as_json(root, !build_context.print_query_data_compact);
 	gb_printf("\n");
 }