mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 21:38:40 +00:00
generation folder output override in metaprogram
This commit is contained in:
@@ -213,6 +213,7 @@ struct MG_Layer
|
|||||||
{
|
{
|
||||||
String8 key;
|
String8 key;
|
||||||
B32 is_library;
|
B32 is_library;
|
||||||
|
String8 gen_folder_name;
|
||||||
String8 h_name_override;
|
String8 h_name_override;
|
||||||
String8 c_name_override;
|
String8 c_name_override;
|
||||||
String8List enums;
|
String8List enums;
|
||||||
|
|||||||
+10
-14
@@ -166,19 +166,10 @@ int main(int argument_count, char **arguments)
|
|||||||
layer->is_library = 1;
|
layer->is_library = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if(md_node_has_tag(node, str8_lit("gen_folder"), 0))
|
||||||
}
|
{
|
||||||
|
layer->gen_folder_name = node->string;
|
||||||
//////////////////////////////
|
}
|
||||||
//- 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("h_name"), 0))
|
if(md_node_has_tag(node, str8_lit("h_name"), 0))
|
||||||
{
|
{
|
||||||
layer->h_name_override = node->string;
|
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)
|
for(MG_LayerNode *n = slot->first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
MG_Layer *layer = &n->v;
|
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))
|
if(os_make_directory(layer_generated_folder))
|
||||||
{
|
{
|
||||||
String8List layer_key_parts = str8_split_path(mg_arena, layer->key);
|
String8List layer_key_parts = str8_split_path(mg_arena, layer->key);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
//~ rjf: Generated File Format
|
//~ rjf: Generated File Format
|
||||||
|
|
||||||
@option library
|
@option library
|
||||||
|
@gen_folder "lib"
|
||||||
@h_name "rdi_format.h"
|
@h_name "rdi_format.h"
|
||||||
@c_name "rdi_format.c"
|
@c_name "rdi_format.c"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user