nob.c 842 B

1234567891011121314151617181920212223242526272829303132
  1. #define NOB_IMPLEMENTATION
  2. #include "nob.h"
  3. int main(int argc, char **argv)
  4. {
  5. NOB_GO_REBUILD_URSELF(argc, argv);
  6. const char *program = nob_shift_args(&argc, &argv);
  7. Nob_Cmd cmd = {0};
  8. nob_cmd_append(&cmd, "cc");
  9. nob_cmd_append(&cmd, "-Wall", "-Wextra", "-ggdb", "-pedantic");
  10. nob_cmd_append(&cmd, "-o", "ht");
  11. nob_cmd_append(&cmd, "ht.c");
  12. if (!nob_cmd_run_sync(cmd)) return 1;
  13. if (argc > 0) {
  14. const char *subcmd = nob_shift_args(&argc, &argv);
  15. if (strcmp(subcmd, "run") == 0) {
  16. cmd.count = 0;
  17. nob_cmd_append(&cmd, "./ht");
  18. nob_da_append_many(&cmd, argv, argc);
  19. if (!nob_cmd_run_sync(cmd)) return 1;
  20. } else {
  21. nob_log(NOB_ERROR, "Unknown subcommand %s", subcmd);
  22. return 1;
  23. }
  24. }
  25. return 0;
  26. }