version(2);
project_name = "4coder";

patterns = {
 "*.c",
 "*.cpp",
 "*.h",
 "*.m",
 "*.mm",
 "*.bat",
 "*.sh",
 "*.4coder",
 "*.txt",
};
blacklist_patterns = {
 ".*",
};

load_paths = {
 .win = {
  { .path = ".", .recursive = true, .relative = true, },
 },
 .linux = {
  { .path = ".", .recursive = true, .relative = true, },
 },
 .mac = {
  { .path = ".", .recursive = true, .relative = true, },
 },
};

commands = {
 .build_x64 = {
  .win = "echo build: x64 & bin\build.bat",
  .linux = "echo build: x64 & bin/build-linux.sh",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_x86 = {
  .win = "echo build: x86 & bin\build.bat /DDEV_BUILD_X86",
  .linux = "echo build: x86 & bin/build-linux.sh /DDEV_BUILD_X86",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .package = {
  .win = "echo package & bin\package.bat",
  .linux = "echo package & bin/package.sh",
  .out = "*compilation*",
  .footer_panel = false,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .run_one_time = {
  .win = "pushd ..\build & one_time",
  .linux = "pushd ../build & one_time",
  .out = "*run*",
  .footer_panel = false,
  .save_dirty_files = false,
  .cursor_at_end = false,
 },
 .build_custom_api_docs = {
  .win = "custom\bin\build_one_time docs\4ed_doc_custom_api_main.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_C___lexer_generator = {
  .win = "custom\bin\build_one_time custom\languages\4coder_cpp_lexer_gen.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_token_tester = {
  .win = "custom\bin\build_one_time custom\languages\4coder_cpp_lexer_test.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_system_api = {
  .win = "custom\bin\build_one_time 4ed_system_api.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_font_api = {
  .win = "custom\bin\build_one_time 4ed_font_api.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_graphics_api = {
  .win = "custom\bin\build_one_time 4ed_graphics_api.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_api_parser = {
  .win = "custom\bin\build_one_time 4ed_api_parser_main.cpp ..\build & copy /B ..\build\one_time.exe ..\build\api_parser.exe",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_api_checker = {
  .win = "custom\bin\build_one_time 4ed_api_check.cpp ..\build & copy /B ..\build\one_time.exe ..\build\api_checker.exe",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_keycode_generator = {
  .win = "custom\bin\build_one_time 4ed_generate_keycodes.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .build_site_render = {
  .win = "custom\bin\build_one_time site/4ed_site_render_main.cpp ..\build",
  .out = "*compilation*",
  .footer_panel = true,
  .save_dirty_files = true,
  .cursor_at_end = false,
 },
 .generate_custom_api_master_list = {
  .win = "..\build\api_parser 4ed_api_implementation.cpp",
  .out = "*run*",
  .footer_panel = false,
  .save_dirty_files = false,
  .cursor_at_end = false,
 },
};

fkey_command = {
 .F1 = "build_x64",
 .F3 = "build_site_render",
 .F4 = "run_one_time",
 .F5 = "build_C___lexer_generator",
 .F6 = "build_token_tester",
 .F11 = "package",
};
