ccan_depends.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "tools.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <ccan/err/err.h>
  5. #include <ccan/str/str.h>
  6. int main(int argc, char *argv[])
  7. {
  8. char **deps;
  9. unsigned int i;
  10. bool compile = false;
  11. bool recurse = true;
  12. bool ccan = true;
  13. const char *style = "depends";
  14. if (argv[1] && streq(argv[1], "--direct")) {
  15. argv++;
  16. argc--;
  17. recurse = false;
  18. }
  19. if (argv[1] && streq(argv[1], "--compile")) {
  20. argv++;
  21. argc--;
  22. compile = true;
  23. }
  24. if (argv[1] && streq(argv[1], "--non-ccan")) {
  25. argv++;
  26. argc--;
  27. ccan = false;
  28. }
  29. if (argv[1] && streq(argv[1], "--tests")) {
  30. argv++;
  31. argc--;
  32. style = "testdepends";
  33. }
  34. if (argc != 2)
  35. errx(1, "Usage: ccan_depends [--direct] [--compile] [--non-ccan] [--tests] <dir>\n"
  36. "Spits out all the ccan dependencies (recursively unless --direct)");
  37. /* We find depends without compiling by looking for ccan/ */
  38. if (!ccan && !compile)
  39. errx(1, "--non-ccan needs --compile");
  40. if (compile)
  41. deps = get_deps(NULL, argv[1], style, recurse, compile_info);
  42. else
  43. deps = get_safe_ccan_deps(NULL, argv[1], style, recurse);
  44. if (deps)
  45. for (i = 0; deps[i]; i++)
  46. if (strstarts(deps[i], "ccan/") == ccan)
  47. printf("%s\n", deps[i]);
  48. return 0;
  49. }