mirror of
https://github.com/Ed94/metadesk.git
synced 2026-06-12 23:51:37 -07:00
finished inital pass of gen_c11 (singleheader and segeregated)
This commit is contained in:
@@ -72,7 +72,7 @@
|
||||
|
||||
#pragma endregion Build Options
|
||||
|
||||
#pragma region Compiler Vendor
|
||||
#pragma region Vendor
|
||||
|
||||
#if defined( _MSC_VER )
|
||||
# pragma message("Detected MSVC")
|
||||
@@ -128,7 +128,7 @@
|
||||
# define GCC_VERSION_CHECK(major,minor,patch) (0)
|
||||
#endif
|
||||
|
||||
#pragma endregion Compiler Vendor
|
||||
#pragma endregion Vendor
|
||||
|
||||
#pragma region Language
|
||||
|
||||
|
||||
+1
-1
@@ -25,4 +25,4 @@ set_thread_namef(char *fmt, ...)
|
||||
}
|
||||
|
||||
#define thread_namef(...) (set_thread_namef(__VA_ARGS__))
|
||||
#define thraed_name(str) (set_thread_name(str))
|
||||
#define thread_name(str) (set_thread_name(str))
|
||||
|
||||
+1
-5
@@ -4,12 +4,8 @@
|
||||
# include "debug.h"
|
||||
# include "strings.h"
|
||||
# include "thread_context.h"
|
||||
////////////////////////////////
|
||||
//~ rjf: Third Party Includes
|
||||
# define STB_SPRINTF_IMPLEMENTATION
|
||||
# if BUILD_STATIC
|
||||
# #define STB_SPRINTF_STATIC
|
||||
# endif
|
||||
# define STB_SPRINTF_STATIC
|
||||
# include "third_party/stb/stb_sprintf.h"
|
||||
#endif
|
||||
|
||||
|
||||
+12
-12
@@ -7,7 +7,7 @@
|
||||
//~ allen: Time
|
||||
|
||||
typedef enum WeekDay WeekDay;
|
||||
enum Weekday
|
||||
enum WeekDay
|
||||
{
|
||||
WeekDay_Sun,
|
||||
WeekDay_Mon,
|
||||
@@ -101,15 +101,15 @@ date_time_from_dense_time(DenseTime time) {
|
||||
|
||||
inline DateTime
|
||||
date_time_from_micro_seconds(U64 time){
|
||||
DateTime result = {0};
|
||||
result.micro_sec = time % 1000; time /= 1000;
|
||||
result.msec = time % 1000; time /= 1000;
|
||||
result.sec = time % 60; time /= 60;
|
||||
result.min = time % 60; time /= 60;
|
||||
result.hour = time % 24; time /= 24;
|
||||
result.day = time % 31; time /= 31;
|
||||
result.mon = time % 12; time /= 12;
|
||||
assert(time <= MAX_U32);
|
||||
result.year = (U32)time;
|
||||
return(result);
|
||||
DateTime result = {0};
|
||||
result.micro_sec = time % 1000; time /= 1000;
|
||||
result.msec = time % 1000; time /= 1000;
|
||||
result.sec = time % 60; time /= 60;
|
||||
result.min = time % 60; time /= 60;
|
||||
result.hour = time % 24; time /= 24;
|
||||
result.day = time % 31; time /= 31;
|
||||
result.mon = time % 12; time /= 12;
|
||||
assert(time <= MAX_U32);
|
||||
result.year = (U32)time;
|
||||
return(result);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
#if INTELLISENSE_DIRECTIVES
|
||||
#ifdef INTELLISENSE_DIRECTIVES
|
||||
# pragma once
|
||||
# include "os/os.h"
|
||||
#endif
|
||||
|
||||
+94
-15
@@ -48,6 +48,8 @@ word scast, md_scast
|
||||
word enum_underlying, md_enum_underlying
|
||||
word nullptr, md_nullptr
|
||||
|
||||
word PARAM_DEFAULT, MD_PARAM_DEFAULT
|
||||
|
||||
word force_inline, md_force_inline
|
||||
word never_inline, md_never_inline
|
||||
|
||||
@@ -68,6 +70,7 @@ word glue_, md_glue_
|
||||
word do_once, md_do_once
|
||||
word do_once_defer, md_do_once_defer
|
||||
word do_once_start, md_do_once_start
|
||||
word do_once_end, md_do_once_end
|
||||
|
||||
// base/generic_macros.h
|
||||
|
||||
@@ -80,7 +83,8 @@ word resolved_function_call, md_resolved_function_call
|
||||
|
||||
word if_generic_selector_defined_include_slot, md_if_generic_selector_defined_include_slot
|
||||
|
||||
word UNRESOLVED_GENERIC_SELECTION, MD_UNRESOLVED_GENERIC_SELECTION
|
||||
word UNRESOLVED_GENERIC_SELECTION, MD_UNRESOLVED_GENERIC_SELECTION
|
||||
word assert_generic_selection_fail, md_assert_generic_selection_fail
|
||||
|
||||
namespace GENERIC_SLOT_1__, MD_GENERIC_SLOT_1__
|
||||
namespace generic_example_hash_, md_generic_example_hash_
|
||||
@@ -92,6 +96,7 @@ word distinct, md_distinct
|
||||
|
||||
// base/profiling.h
|
||||
|
||||
word PROFILE_TELEMETRY, MD_PROFILE_TELEMETRY
|
||||
word MARKUP_LAYER_COLOR, MD_MARKUP_LAYER_COLOR
|
||||
|
||||
namespace prof_, md_prof_
|
||||
@@ -111,6 +116,8 @@ word S128, MD_S128
|
||||
word USIZE, MD_USIZE
|
||||
word SSIZE, MD_SSIZE
|
||||
|
||||
word sizeo_of, md_size_of
|
||||
|
||||
word SPTR, MD_SPTR
|
||||
word UPTR, MD_UPTR
|
||||
|
||||
@@ -311,7 +318,8 @@ namespace ring_, md_ring_
|
||||
|
||||
word trap, md_trap
|
||||
word assert_always, md_assert_always
|
||||
word assert, md_asert
|
||||
word assert, md_assert
|
||||
word assert_msg, md_assert_msg
|
||||
|
||||
word invalid_path, md_invalid_path
|
||||
word not_implemented, md_not_implemented
|
||||
@@ -342,6 +350,7 @@ word clamp_top, md_clamp_top
|
||||
word clamp_bot, md_clamp_bot
|
||||
word clamp, md_clamp
|
||||
|
||||
word member, md_member
|
||||
word align_of, md_align_of
|
||||
word offset_of, md_offset_of
|
||||
word member_from_offset, md_member_from_offset
|
||||
@@ -358,7 +367,7 @@ word memory_copy_type, md_memory_copy_type
|
||||
|
||||
word memory_zero, md_memory_zero
|
||||
word memory_zero_struct, md_memory_zero_struct
|
||||
word memroy_zero_array, md_memory_zero_array
|
||||
word memory_zero_array, md_memory_zero_array
|
||||
word memory_zero_type, md_memory_zero_type
|
||||
|
||||
word memory_match, md_memory_match
|
||||
@@ -381,7 +390,8 @@ word set_nil, md_set_nil
|
||||
namespace dll_, md_dll_
|
||||
namespace sll_, md_sll_
|
||||
|
||||
word NO_ASAN, MD_NO_ASAN
|
||||
word NO_ASAN, MD_NO_ASAN
|
||||
word ASAN_ENABLED, MD_ASAN_ENABLED
|
||||
|
||||
namespace asan_, md_asan_
|
||||
|
||||
@@ -489,11 +499,13 @@ word mfree, md_mfree
|
||||
|
||||
namespace VARENA_, MD_VARENA_
|
||||
|
||||
word VArenaFlags, MD_VArenaFlags
|
||||
word VArena, MD_VArena
|
||||
word VArenaParams, MD_VArenaParams
|
||||
word VArenaFlags, MD_VArenaFlags
|
||||
word VArena, MD_VArena
|
||||
|
||||
namespace VArenaFlag_, MD_VArenaFlag_
|
||||
|
||||
word varena_alloc, md_varena_alloc
|
||||
word varena__alloc, md_varena__alloc
|
||||
word varena_commit, md_varena_commit
|
||||
word varena_release, md_varena_release
|
||||
@@ -510,6 +522,10 @@ word farena_from_memory, md_farena_from_memory
|
||||
|
||||
// base/arena.h
|
||||
|
||||
namespace ArenaFlag, MD_ArenaFlag
|
||||
|
||||
word ARENA_DEFAULT_BLOCK_SIZE, MD_ARENA_DEFAULT_BLOCK_SIZE
|
||||
|
||||
word ArenaFlags, MD_ArenaFlags
|
||||
word ArenaParams, MD_ArenaParams
|
||||
word Arena, MD_Arena
|
||||
@@ -539,8 +555,8 @@ namespace Axis2_, MD_Axis2_
|
||||
namespace Corner_, MD_Corner_
|
||||
namespace Dir2_, MD_Dir2_
|
||||
|
||||
word axis_from_dir2, md_axis_from_dir2
|
||||
word side_from_dir2, md_side_from_dir2
|
||||
word axis2_from_dir2, md_axis2_from_dir2
|
||||
word side_from_dir2, md_side_from_dir2
|
||||
|
||||
word sign_from_side_f32, md_side_from_side_f32
|
||||
wrod sign_from_side_f64, md_side_from_side_f64
|
||||
@@ -592,9 +608,29 @@ word round_f32, md_round_f32
|
||||
word abs_f32, md_abs_f32
|
||||
|
||||
word radians_from_turns_f32, md_radians_from_turns_f32
|
||||
word turns_from_radians_f32, md_turns_from_radians_f32
|
||||
word degrees_from_turns_f32, md_degrees_from_turns_f32
|
||||
word turns_from_degrees_f32, md_turns_from_degrees_f32
|
||||
|
||||
word degrees_from_radians_f32, md_degrees_from_radians_f32
|
||||
word radians_from_degrees_f32, md_radians_from_degrees_f32
|
||||
|
||||
word sin_f32, md_sin_f32
|
||||
word cos_f32, md_cos_f32
|
||||
word tan_f32, md_tan_f32
|
||||
|
||||
word radians_from_turns_f64, md_radians_from_turns_f64
|
||||
word turns_from_radians_f64, md_turns_from_radians_f64
|
||||
word degrees_from_turns_f64, md_degrees_from_turns_f64
|
||||
word turns_from_degrees_f64, md_turns_from_degrees_f64
|
||||
word degrees_from_turns_f64, md_degrees_from_turns_f64
|
||||
|
||||
word sqrt_f64, md_sqrt_f64
|
||||
word mod_f64, md_mod_f64
|
||||
word pow_f64, md_pow_f64
|
||||
word ceil_f64, md_ceil_f64
|
||||
word floor_f64, md_floor_f64
|
||||
word round_f64, md_round_f64
|
||||
word abs_f64, md_abs_f64
|
||||
|
||||
word degrees_from_radians_f64, md_degrees_from_radians_f64
|
||||
word radians_from_degrees_f64, md_radians_from_degrees_f64
|
||||
@@ -603,6 +639,10 @@ word sin_f64, md_sin_f64
|
||||
word cos_f64, md_cos_f64
|
||||
word tan_f64, md_tan_f64
|
||||
|
||||
word sin_f32, md_sin_f32
|
||||
word cos_f32, md_cos_f32
|
||||
word tan_f32, md_tan_f32
|
||||
|
||||
word mix_1f32, md_mix_1f32
|
||||
word mix_1f64, md_mix_1f64
|
||||
|
||||
@@ -857,7 +897,7 @@ word contains_2s64, md_contains_2s64
|
||||
word dim_2s64, md_dim_2s64
|
||||
word union_2s64, md_union_2s64
|
||||
word intersect_2s64, md_intersect_2s64
|
||||
word clamp_2s32, md_clamp_2s32
|
||||
word clamp_2s64, md_clamp_2s64
|
||||
|
||||
word hsv_from_rgb, md_hsv_from_rgb
|
||||
word rgb_from_hsv, md_rgb_from_hsv
|
||||
@@ -868,11 +908,16 @@ word u32_from_rgba, md_u32_from_rgba
|
||||
|
||||
namespace rgba_from_, md_rgba_from_
|
||||
|
||||
word rng1s64_list_push, md_rng1s64_list_push
|
||||
word rng1s64_array_from_list, md_rng1s64_array_from_list
|
||||
namespace rng1s64_list_push_, md_rng1s64_list_push_
|
||||
namespace rng1s64_array_from_list_, md_rng1s64_array_from_list_
|
||||
|
||||
word rng1s64_list_alloc, md_rng1s64_list_alloc
|
||||
word rng1s64_array_from_list_alloc, md_rng1s64_array_from_list_alloc
|
||||
|
||||
// base/sort.h
|
||||
|
||||
word quick_sort, md_quick_sort
|
||||
|
||||
// base/toolchain.h
|
||||
|
||||
word OperatingSystem, MD_OperatingSystem
|
||||
@@ -893,6 +938,11 @@ word compiler_from_context, md_compiler_from_context
|
||||
|
||||
// base/strings.h
|
||||
|
||||
word integer_symbols, md_integer_symbols
|
||||
word base64, md_base64
|
||||
word base64_reverse, md_base64_reverse
|
||||
word integer_symbol_reverse, md_integer_symbol_reverse
|
||||
|
||||
word String8, MD_String8
|
||||
word String16, MD_String16
|
||||
word String32, MD_String32
|
||||
@@ -912,13 +962,24 @@ namespace StringMatchFlag_, MD_StringMatchFlag_
|
||||
namespace StringSplitFlag_, MD_StringSplitFlag_
|
||||
namespace PathStyle_, MD_PathStyle_
|
||||
|
||||
namepsace char_, md_char_
|
||||
namespace char_, md_char_
|
||||
|
||||
word cstring8_length, md_cstring8_length
|
||||
word cstring16_length, md_cstring16_length
|
||||
word cstring32_length, md_cstring32_length
|
||||
word cstring_length, md_cstring_length
|
||||
|
||||
word str8, md_str8
|
||||
word str16, md_str16
|
||||
|
||||
word str8fv__arena, md_str8fv__arena
|
||||
word str8f__arena, md_str8f__arena
|
||||
word str8fv__ainfo, md_str8fv__ainfo
|
||||
word str8f__ainfo, md_str8f__ainfo
|
||||
|
||||
word str8fv, md_str8fv
|
||||
word str8f, md_str8f
|
||||
|
||||
namespace str8_, md_str8_
|
||||
namespace str16_, md_str16_
|
||||
namespace str32_, md_str32_
|
||||
@@ -944,12 +1005,31 @@ namespace hex_string_, md_hex_string_
|
||||
//namespace rgba_from_, md_rgba_from_ (done by math.h)
|
||||
namespace fuzzy_match_, md_fuzzy_match_
|
||||
|
||||
word path_style_from_str8, md_path_style_from_str8
|
||||
|
||||
namespace utf8_, md_utf8_
|
||||
namespace utf16_, md_utf16_
|
||||
|
||||
word operating_system_from_string, md_operating_system_from_string
|
||||
|
||||
namespace file_name_date_time_string_, md_file_name_date_time_string_
|
||||
|
||||
// base/text.h
|
||||
|
||||
word TxtRng, MD_TxtRng
|
||||
word TxtPt, MD_TxtPt
|
||||
word String8TxtPtPair, MD_String8TxtPtPair
|
||||
|
||||
namespace txt_, md_txt_
|
||||
|
||||
// base/thread_context.h
|
||||
|
||||
word TCTX, MD_TCTX
|
||||
|
||||
namespace tctx, md_tctx
|
||||
|
||||
namespace scratch_begin_, md_scratch_begin_
|
||||
|
||||
word scratch_begin, md_scratch_begin
|
||||
word scratch_begin_alloc, md_scratch_begin_alloc
|
||||
|
||||
@@ -975,8 +1055,7 @@ word LogScope, MD_LogScope
|
||||
word LogScopeResult, MD_LogScopeResult
|
||||
word Log, MD_Log
|
||||
|
||||
namespace LogMsgKind_, MD_LogMsgKind_
|
||||
|
||||
namespace LogMsgKind_, MD_LogMsgKind_
|
||||
namespace LOG_DEFAULT_, MD_LOG_DEFAULT_
|
||||
|
||||
namespace log_, md_log_
|
||||
|
||||
+193
-15
@@ -103,7 +103,7 @@ int main()
|
||||
|
||||
gen_Code mdesk_c = gen_scan_file(path_mdesk "mdesk.c");
|
||||
|
||||
#pragma region Refactored / Formatted
|
||||
#pragma region Refactored / Formatted
|
||||
gen_Code r_tp_stb_sprintf_h = refactor(tp_stb_sprintf_h);
|
||||
|
||||
gen_Code r_base_context_cracking_h = refactor(base_context_cracking_h);
|
||||
@@ -116,9 +116,9 @@ int main()
|
||||
gen_Code r_base_ring_h = refactor(base_ring_h);
|
||||
gen_Code r_base_debug_h = refactor(base_debug_h);
|
||||
gen_Code r_base_memory_h = refactor(base_memory_h);
|
||||
gen_Code r_base_memory_substrate_h = refactor(base_memory_substrate_h);
|
||||
gen_Code r_base_memory_substrate_h = refactor_and_format(base_memory_substrate_h);
|
||||
gen_Code r_base_arena_h = refactor(base_arena_h);
|
||||
gen_Code r_base_space_h = refactor(base_space_h);
|
||||
gen_Code r_base_space_h = refactor_and_format(base_space_h);
|
||||
gen_Code r_base_math_h = refactor_and_format(base_math_h);
|
||||
gen_Code r_base_sort_h = refactor(base_sort_h);
|
||||
gen_Code r_base_toolchain_h = refactor(base_toolchain_h);
|
||||
@@ -128,17 +128,17 @@ int main()
|
||||
gen_Code r_base_thread_context_h = refactor(base_thread_context_h);
|
||||
gen_Code r_base_command_line_h = refactor(base_command_line_h);
|
||||
gen_Code r_base_markup_h = refactor(base_markup_h);
|
||||
gen_Code r_base_logger_h = refactor(base_logger_h);
|
||||
gen_Code r_base_logger_h = refactor_and_format(base_logger_h);
|
||||
gen_Code r_base_entry_point_h = refactor(base_entry_point_h);
|
||||
gen_Code r_base_file_h = refactor(base_file_h);
|
||||
|
||||
gen_Code r_os_h = refactor(os_h);
|
||||
gen_Code r_os_h = refactor_and_format(os_h);
|
||||
gen_Code r_os_win32_includes_h = refactor(os_win32_includes_h);
|
||||
gen_Code r_os_win32_h = refactor(os_win32_h);
|
||||
gen_Code r_os_win32_h = refactor_and_format(os_win32_h);
|
||||
gen_Code r_os_linux_includes_h = refactor(os_linux_includes_h);
|
||||
gen_Code r_os_linux_h = refactor(os_linux_h);
|
||||
gen_Code r_os_linux_h = refactor_and_format(os_linux_h);
|
||||
|
||||
gen_Code r_mdesk_h = refactor(mdesk_h);
|
||||
gen_Code r_mdesk_h = refactor_and_format(mdesk_h);
|
||||
|
||||
gen_Code r_base_platform_c = refactor(base_platfom_c);
|
||||
gen_Code r_base_debug_c = refactor(base_debug_c);
|
||||
@@ -157,14 +157,14 @@ int main()
|
||||
gen_Code r_os_linux_c = refactor(os_linux_c);
|
||||
gen_Code r_os_c = refactor(os_os_c);
|
||||
|
||||
gen_Code r_mdesk_c = refactor(mdesk_c);
|
||||
#pragma endregion Refactored / Formatted
|
||||
gen_Code r_mdesk_c = refactor_and_format(mdesk_c);
|
||||
#pragma endregion Refactored / Formatted
|
||||
|
||||
if (GENERATE_SINGLEHEADER)
|
||||
{
|
||||
#define builder header
|
||||
gen_Builder header_ = gen_builder_open(path_gen "metadesk_singleheader.h");
|
||||
gen_Builder* header = & header_;
|
||||
#define builder header
|
||||
gen_Builder header_ = gen_builder_open(path_gen "metadesk_singleheader.h");
|
||||
gen_Builder* header = & header_;
|
||||
|
||||
gen_Str implementation_guard_start = lit(
|
||||
// "#pragma region METADESK IMPLEMENTATION GUARD\n"
|
||||
@@ -268,7 +268,7 @@ int main()
|
||||
comment("#elif OS_LINUX");
|
||||
preprocess_endif();
|
||||
|
||||
pragma_endregion("Operting System")
|
||||
pragma_endregion("Operating System")
|
||||
new_line();
|
||||
|
||||
pragma_region("MDesk")
|
||||
@@ -339,12 +339,190 @@ int main()
|
||||
new_line();
|
||||
|
||||
gen_builder_write(header);
|
||||
#undef builder
|
||||
#undef builder
|
||||
}
|
||||
|
||||
if (GENERATE_SEGEREGATED)
|
||||
{
|
||||
// Dependencies
|
||||
|
||||
#define builder header_deps
|
||||
gen_Builder header_deps_ = gen_builder_open(path_gen "metadesk_deps.h");
|
||||
gen_Builder* header_deps = & header_deps_;
|
||||
|
||||
// Header files
|
||||
|
||||
print_fmt("%S", generation_notice);
|
||||
print(gen_pragma_once);
|
||||
new_line();
|
||||
|
||||
pragma_region("Base");
|
||||
print(banner_base);
|
||||
new_line();
|
||||
|
||||
print_section(r_base_context_cracking_h, lit("Context Cracking"));
|
||||
print_section(r_base_platform_h, lit("platform"));
|
||||
print_section(r_base_linkage_h, lit("Linkage"));
|
||||
print_section(r_base_macros_h, lit("Macros"));
|
||||
print_section(r_base_generic_macros_h, lit("_Generic Macros"));
|
||||
print_section(r_base_profiling_h, lit("Profiling"));
|
||||
|
||||
define(lit("STB_SPRINTF_DECORATE(name)"), MT_Expression, .content = lit("md_##name"), .flags = MF_Functional);
|
||||
// print();
|
||||
preprocess_if("MD_BUILD_STATIC"); {
|
||||
define(lit("STB_BUILD_STATIC"), MT_Statement);
|
||||
}
|
||||
preprocess_endif();
|
||||
new_line();
|
||||
|
||||
print_section(r_tp_stb_sprintf_h, lit("STB snprintf Header"));
|
||||
new_line();
|
||||
|
||||
print_section(r_base_base_types_h, lit("Types"));
|
||||
print_section(r_base_ring_h, lit("Ring"));
|
||||
print_section(r_base_debug_h, lit("Debug"));
|
||||
print_section(r_base_memory_h, lit("Memory"));
|
||||
print_section(r_base_memory_substrate_h, lit("Memory Substrate"));
|
||||
print_section(r_base_arena_h, lit("Arena"));
|
||||
print_section(r_base_space_h, lit("Space"));
|
||||
print_section(r_base_math_h, lit("Math"));
|
||||
print_section(r_base_sort_h, lit("Sort"));
|
||||
print_section(r_base_toolchain_h, lit("Toolchain"));
|
||||
print_section(r_base_time_h, lit("Time"));
|
||||
print_section(r_base_strings_h, lit("strings"));
|
||||
print_section(r_base_text_h, lit("Text"));
|
||||
print_section(r_base_thread_context_h, lit("Thread Context"));
|
||||
print_section(r_base_command_line_h, lit("Command Line"));
|
||||
print_section(r_base_markup_h, lit("Markup"));
|
||||
print_section(r_base_logger_h, lit("Logger"));
|
||||
print_section(r_base_entry_point_h, lit("Entry Point"));
|
||||
print_section(r_base_file_h, lit("File"));
|
||||
|
||||
pragma_endregion("Base");
|
||||
new_line();
|
||||
|
||||
pragma_region("Operating System");
|
||||
print(banner_os);
|
||||
new_line();
|
||||
|
||||
print_section(r_os_h, lit("OS"));
|
||||
|
||||
preprocess_if("!defined(MD_OS_FEATURE_GRAPHICAL)"); {
|
||||
define(lit("MD_OS_FEATURE_GRAPHICAL"), MT_Expression, .content = lit("0") );
|
||||
}
|
||||
preprocess_endif();
|
||||
new_line();
|
||||
|
||||
preprocess_if("!defined(MD_OS_GFX_STUB)"); {
|
||||
define(lit("MD_OS_GFX_STUB"), MT_Expression, .content = lit("0") );
|
||||
}
|
||||
preprocess_endif();
|
||||
new_line();
|
||||
|
||||
preprocess_if("MD_OS_WINDOWS"); {
|
||||
print_section(r_os_win32_includes_h, lit("Win32 Includes"));
|
||||
print_section(r_os_win32_h, lit("OS Win32"));
|
||||
}
|
||||
comment("#if MD_OS_WINDOWS"); new_line();
|
||||
preprocess_elif("MD_OS_LINUX"); {
|
||||
print_section(r_os_linux_includes_h, lit("Linux Includes"));
|
||||
print_section(r_os_linux_h, lit("OS Linux"));
|
||||
}
|
||||
comment("#elif OS_LINUX");
|
||||
preprocess_endif();
|
||||
|
||||
pragma_endregion("Operating System")
|
||||
new_line();
|
||||
gen_builder_write(header_deps);
|
||||
#undef builder
|
||||
|
||||
#define builder header
|
||||
gen_Builder header_ = gen_builder_open(path_gen "metadesk.h");
|
||||
gen_Builder* header = & header_;
|
||||
|
||||
print(gen_scan_file(path_gen_c11 "banner_segregated.h"));
|
||||
print(gen_pragma_once);
|
||||
new_line();
|
||||
|
||||
include(lit("metadesk_deps.h"));
|
||||
|
||||
print(r_mdesk_h);
|
||||
|
||||
print(banner_mdesk);
|
||||
new_line(); new_line();
|
||||
|
||||
gen_builder_write(header);
|
||||
#undef builder
|
||||
|
||||
// Source files
|
||||
|
||||
#define builder source_deps
|
||||
gen_Builder source_deps_ = gen_builder_open(path_gen "metadesk_deps.c");
|
||||
gen_Builder* source_deps = & source_deps_;
|
||||
|
||||
include(lit("metadesk_deps.h"));
|
||||
new_line();
|
||||
|
||||
pragma_region("Base");
|
||||
print(banner_base);
|
||||
new_line();
|
||||
|
||||
define(lit("STB_SPRINTF_IMPLEMENTATION"), MT_Statement);
|
||||
// print();
|
||||
preprocess_if("MD_BUILD_STATIC"); {
|
||||
define(lit("STB_BUILD_STATIC"), MT_Statement);
|
||||
}
|
||||
preprocess_endif();
|
||||
new_line();
|
||||
|
||||
print_section(r_tp_stb_sprintf_h, lit("STB snprintf Header"));
|
||||
new_line();
|
||||
|
||||
print_section(r_base_platform_c, lit("Platform"));
|
||||
print_section(r_base_memory_substrate_c, lit("Memory Substrate"));
|
||||
print_section(r_base_arena_c, lit("Arena"));
|
||||
print_section(r_base_strings_c, lit("Strings"));
|
||||
print_section(r_base_text_c, lit("Text"));
|
||||
print_section(r_base_thread_context_c, lit("Thread Context"));
|
||||
print_section(r_base_markup_c, lit("Markup"));
|
||||
print_section(r_base_command_line_c, lit("Command Line"));
|
||||
print_section(r_base_logger_c, lit("Logger"));
|
||||
print_section(r_base_entry_point_c, lit("Entry Point"));
|
||||
print_section(r_base_time_c, lit("Time"));
|
||||
|
||||
pragma_endregion("Base");
|
||||
new_line();
|
||||
|
||||
pragma_region("Operating System");
|
||||
print(banner_os);
|
||||
new_line();
|
||||
|
||||
preprocess_if("MD_OS_WINDOWS"); {
|
||||
print(r_os_win32_c)
|
||||
}
|
||||
preprocess_elif("MD_OS_LINUX"); {
|
||||
print(r_os_linux_c);
|
||||
}
|
||||
preprocess_endif();
|
||||
|
||||
print(r_os_c);;
|
||||
|
||||
pragma_endregion("Operating System");
|
||||
new_line();
|
||||
gen_builder_write(source_deps);
|
||||
#undef builder
|
||||
|
||||
#define builder source
|
||||
gen_Builder source_ = gen_builder_open(path_gen "metadesk.c");
|
||||
gen_Builder* source = & source_;
|
||||
|
||||
include(lit("metadesk.h"));
|
||||
|
||||
print(r_mdesk_c);
|
||||
|
||||
new_line();
|
||||
gen_builder_write(source);
|
||||
#undef builder
|
||||
}
|
||||
|
||||
// gen_deinit(& ctx);
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#define path_scratch_file path_gen "scratch.h"
|
||||
#define path_format_style path_bin ".clang-format "
|
||||
|
||||
|
||||
// Codegen DSL
|
||||
|
||||
#define lit gen_txt
|
||||
@@ -41,7 +40,7 @@
|
||||
#define pragma_endregion(label) print(gen_def_pragma(str_fmt("endregion %S", lit(label))))
|
||||
#define define(id, type, ...) print(gen_def__define(id, type, &(gen_Opts_def_define){ __VA_ARGS__ }))
|
||||
#define comment(content) print(gen_def_comment(lit(content)))
|
||||
#define include gen_def_include
|
||||
#define include(content, ...) print(gen_def__include(content, &(gen_Opts_def_include){ __VA_ARGS__}))
|
||||
#define preprocess_cond(type, expr) gen_def_preprocess_cond(type, expr)
|
||||
#define preprocess_if(expr) print(preprocess_cond(PreprocessCond_If, lit(expr))); new_line()
|
||||
#define preprocess_ifndef(expr) print(preprocess_cond(PreprocessCond_IfNotDef, lit(expr))); new_line()
|
||||
@@ -667,7 +666,7 @@ void register_library_macros()
|
||||
// base/markup.h
|
||||
gen_register_macros(args(
|
||||
((gen_Macro) { lit("thread_namef"), MT_Expression, MF_Functional }),
|
||||
((gen_Macro) { lit("thraed_name"), MT_Expression, MF_Functional })
|
||||
((gen_Macro) { lit("thread_name"), MT_Expression, MF_Functional })
|
||||
));
|
||||
// base/logger.h
|
||||
gen_register_macros(args(
|
||||
|
||||
Vendored
+5
-3
@@ -9697,8 +9697,8 @@ struct gen_Opts_def_namespace
|
||||
};
|
||||
typedef struct gen_Opts_def_namespace gen_Opts_def_namespace;
|
||||
|
||||
GEN_API gen_CodeInclude gen_def__include(gen_Str content, gen_Opts_def_include opts GEN_PARAM_DEFAULT);
|
||||
#define gen_def_include(content, ...) gen_def__include(content, (gen_Opts_def_include) { __VA_ARGS__ })
|
||||
GEN_API gen_CodeInclude gen_def__include(gen_Str content, gen_Opts_def_include* opts GEN_PARAM_DEFAULT);
|
||||
#define gen_def_include(content, ...) gen_def__include(content, &(gen_Opts_def_include) { __VA_ARGS__ })
|
||||
|
||||
GEN_API gen_CodeModule gen_def__module(gen_Str name, gen_Opts_def_module opts GEN_PARAM_DEFAULT);
|
||||
#define gen_def_module(name, ...) gen_def__module(name, (gen_Opts_def_module) { __VA_ARGS__ })
|
||||
@@ -18830,8 +18830,10 @@ gen_CodeFn gen_def__function(gen_Str name, gen_Opts_def_function p)
|
||||
return result;
|
||||
}
|
||||
|
||||
gen_CodeInclude gen_def__include(gen_Str path, gen_Opts_def_include p)
|
||||
gen_CodeInclude gen_def__include(gen_Str path, gen_Opts_def_include* opts)
|
||||
{
|
||||
gen_Opts_def_include p = opts ? *opts : (gen_Opts_def_include){0};
|
||||
|
||||
if (path.Len <= 0 || path.Ptr == gen_nullptr)
|
||||
{
|
||||
gen_log_failure("gen::gen_def_include: Invalid path provided - %d");
|
||||
|
||||
Reference in New Issue
Block a user