1 #ifndef CCAN_TOOLS_MANIFEST_H
2 #define CCAN_TOOLS_MANIFEST_H
4 #include "ccanlint/licenses.h"
5 #include <ccan/list/list.h>
16 /* The name of the module, ie. elements of dir name after ccan/. */
18 /* The final element of dir name */
20 struct ccan_file *info_file;
22 /* Linked off deps. */
23 struct list_node list;
24 /* Where our final compiled output is */
25 char *compiled[COMPILE_TYPES];
27 struct list_head c_files;
28 struct list_head h_files;
30 struct list_head run_tests;
31 struct list_head api_tests;
32 struct list_head compile_ok_tests;
33 struct list_head compile_fail_tests;
34 struct list_head other_test_c_files;
35 struct list_head other_test_files;
37 struct list_head other_files;
38 struct list_head examples;
39 struct list_head mangled_examples;
41 /* From tests/check_depends_exist.c */
42 struct list_head deps;
43 struct list_head test_deps;
45 /* From tests/license_exists.c */
49 /* Get the manifest for a given directory. */
50 struct manifest *get_manifest(const void *ctx, const char *dir);
53 struct list_node list;
55 /* Name (usually, within m->dir). */
61 /* Pristine version of the original file.
62 * Use get_ccan_file_contents to fill this. */
66 /* Use get_ccan_file_lines / get_ccan_line_info to fill these. */
68 struct line_info *line_info;
70 struct list_head *doc_sections;
72 /* If this file gets compiled (eg. .C file to .o file), result here. */
73 char *compiled[COMPILE_TYPES];
75 /* Filename containing output from valgrind. */
78 /* Leak output from valgrind. */
81 /* Simplified stream (lowercase letters and single spaces) */
84 /* Condition for idempotent wrapper (filled by headers_idempotent) */
85 struct pp_conditions *idempotent_cond;
88 /* A new ccan_file, with the given dir and name (either can be take()). */
89 struct ccan_file *new_ccan_file(const void *ctx,
90 const char *dir, const char *name);
92 /* Use this rather than accessing f->contents directly: loads on demand. */
93 const char *get_ccan_file_contents(struct ccan_file *f);
95 /* Use this rather than accessing f->lines directly: loads on demand. */
96 char **get_ccan_file_lines(struct ccan_file *f);
98 #endif /* CCAN_TOOLS_MANIFEST_H */