nobuild2.c 994 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #define NOBUILD_IMPLEMENTATION
  2. #include "./nobuild2.h"
  3. #define CFLAGS "-Wall", "-Wextra", "-std=c11", "-pedantic"
  4. void build_tool(const char *tool)
  5. {
  6. Cstr tool_path = PATH("tools", tool);
  7. #ifndef _WIN32
  8. CMD("cc", CFLAGS, "-o", NOEXT(tool_path), tool_path);
  9. #else
  10. CMD("cl.exe", "/Fe.\\tools\\", tool_path);
  11. #endif
  12. }
  13. void build_tools(void)
  14. {
  15. FOREACH_FILE_IN_DIR(tool, "tools", {
  16. if (ENDS_WITH(tool, ".c")) {
  17. build_tool(tool);
  18. }
  19. });
  20. }
  21. void run_example(const char *example)
  22. {
  23. Cstr example_path = PATH("examples", example);
  24. #ifndef _WIN32
  25. CMD("cc", CFLAGS, "-o", NOEXT(example_path), example_path);
  26. #else
  27. CMD("cl.exe", "/Fe.\\examples\\", example_path);
  28. #endif
  29. CMD(NOEXT(example_path));
  30. }
  31. void run_examples(void)
  32. {
  33. FOREACH_FILE_IN_DIR(example, "examples", {
  34. if (ENDS_WITH(example, ".c")) {
  35. run_example(example);
  36. }
  37. });
  38. }
  39. int main(void)
  40. {
  41. build_tools();
  42. run_examples();
  43. return 0;
  44. }