| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #define NOBUILD_IMPLEMENTATION
- #include "./nobuild.h"
- #define CFLAGS "-Wall", "-Wextra", "-std=c99", "-pedantic"
- void build_tool(const char *tool)
- {
- Cstr tool_path = PATH("tools", tool);
- #ifndef _WIN32
- CMD("cc", CFLAGS, "-o", NOEXT(tool_path), tool_path);
- #else
- CMD("cl.exe", "/Fe.\\tools\\", tool_path);
- #endif
- }
- void build_tools(void)
- {
- FOREACH_FILE_IN_DIR(tool, "tools", {
- if (ENDS_WITH(tool, ".c")) {
- build_tool(tool);
- }
- });
- }
- void run_example(const char *example)
- {
- Cstr example_path = PATH("examples", example);
- #ifndef _WIN32
- CMD("cc", CFLAGS, "-o", NOEXT(example_path), example_path);
- #else
- CMD("cl.exe", "/Fe.\\examples\\", example_path);
- #endif
- CMD(NOEXT(example_path));
- }
- void run_examples(void)
- {
- FOREACH_FILE_IN_DIR(example, "examples", {
- if (ENDS_WITH(example, ".c")) {
- run_example(example);
- }
- });
- }
- void print_chain(const Chain *chain)
- {
- INFO("input: %s", chain->input_filepath);
- INFO("output: %s", chain->output_filepath);
- FOREACH_ARRAY(Cmd, cmd, chain->cmds, {
- INFO("cmd: %s", cmd_show(*cmd));
- });
- }
- int main(int argc, char **argv)
- {
- GO_REBUILD_URSELF(argc, argv);
- build_tools();
- run_examples();
- return 0;
- }
|