ccan_depends.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. for (i = 0; deps[i]; i++)
  45. if (strstarts(deps[i], "ccan/") == ccan)
  46. printf("%s\n", deps[i]);
  47. return 0;
  48. }