generation folder output override in metaprogram

This commit is contained in:
Ryan Fleury
2024-05-31 17:29:25 -07:00
parent 35c1c463c8
commit de56231f4a
5 changed files with 12 additions and 15 deletions
+1
View File
@@ -213,6 +213,7 @@ struct MG_Layer
{
String8 key;
B32 is_library;
String8 gen_folder_name;
String8 h_name_override;
String8 c_name_override;
String8List enums;
+10 -14
View File
@@ -166,19 +166,10 @@ int main(int argument_count, char **arguments)
layer->is_library = 1;
}
}
}
}
//////////////////////////////
//- rjf: gather hand-written h/c names & decorations
//
for(MG_FileParseNode *n = parses.first; n != 0; n = n->next)
{
MD_Node *file = n->v.root;
String8 layer_key = mg_layer_key_from_path(file->string);
MG_Layer *layer = mg_layer_from_key(layer_key);
for(MD_EachNode(node, file->first))
{
if(md_node_has_tag(node, str8_lit("gen_folder"), 0))
{
layer->gen_folder_name = node->string;
}
if(md_node_has_tag(node, str8_lit("h_name"), 0))
{
layer->h_name_override = node->string;
@@ -499,7 +490,12 @@ int main(int argument_count, char **arguments)
for(MG_LayerNode *n = slot->first; n != 0; n = n->next)
{
MG_Layer *layer = &n->v;
String8 layer_generated_folder = push_str8f(mg_arena, "%S/%S/generated", code_dir_path, layer->key);
String8 gen_folder = str8_lit("generated");
if(layer->gen_folder_name.size != 0)
{
gen_folder = layer->gen_folder_name;
}
String8 layer_generated_folder = push_str8f(mg_arena, "%S/%S/%S", code_dir_path, layer->key, gen_folder);
if(os_make_directory(layer_generated_folder))
{
String8List layer_key_parts = str8_split_path(mg_arena, layer->key);
+1 -1
View File
@@ -5,7 +5,7 @@
//~ rjf: Generated File Format
@option library
@gen_folder "lib"
@h_name "rdi_format.h"
@c_name "rdi_format.c"