Header guards are no more
This commit is contained in:
parent
f9159abded
commit
64487a873a
@ -11,26 +11,13 @@ typedef struct {
|
||||
} GeneratedHeader;
|
||||
|
||||
NODISCARD GeneratedHeader begin_header(SpanU8 filename) {
|
||||
VecU8 res = VecU8_new();
|
||||
VecU8 guard = VecU8_from_cstr("PROTOTYPE1_GEN_");
|
||||
for (size_t i = 0; i < filename.len; i++) {
|
||||
char ch = (char)*SpanU8_at(filename, i);
|
||||
if (ch == '.' || ch == '/' || ch == '-' || ch == ',')
|
||||
VecU8_append(&guard, '_');
|
||||
else
|
||||
VecU8_append(&guard, ch);
|
||||
}
|
||||
VecU8_append_span(&res, cstr("#ifndef "));
|
||||
VecU8_append_span(&res, VecU8_to_span(&guard));
|
||||
VecU8_append_span(&res, cstr("\n#define "));
|
||||
VecU8_append_vec(&res, guard);
|
||||
VecU8_append_span(&res, cstr("\n/* Automatically generated file. Do not edit it. */\n\n"));
|
||||
VecU8 res = vcstr("#pragma once\n"
|
||||
"/* Automatically generated file. Do not edit it. */\n\n");
|
||||
return (GeneratedHeader){.result = res, .filename = VecU8_from_span(filename) };
|
||||
}
|
||||
|
||||
/* Codegen script's working directory should be `gen` */
|
||||
void finish_header(GeneratedHeader header) {
|
||||
VecU8_append_span(&header.result, cstr("#endif\n"));
|
||||
write_file_by_path(header.filename, VecU8_to_span(&header.result));
|
||||
VecU8_drop(header.result);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user