The --no-documentation flag sets a static global variable print_doc to `false`. When activated, the flag prevents wayland-scanner to print the documentation comments. The copyright notice is not affected by this flag.
Signed-off-by: Felipe Ferreira da Silva <[email protected]> --- src/scanner.c | 218 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 123 insertions(+), 95 deletions(-) diff --git a/src/scanner.c b/src/scanner.c index c345ed6..a23e371 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -52,6 +52,8 @@ extern int DTD_DATA_len; #define PROGRAM_NAME "wayland-scanner" +static bool print_doc = true; + enum side { CLIENT, SERVER, @@ -72,7 +74,8 @@ usage(int ret) " the scanner was built against.\n" " -c, --include-core-only include the core version of the headers,\n" " that is e.g. wayland-client-core.h instead\n" - " of wayland-client.h.\n"); + " of wayland-client.h.\n" + " --no-documentation don't include the documentation.\n"); exit(ret); } @@ -1004,7 +1007,8 @@ emit_opcode_versions(struct wl_list *message_list, struct interface *interface) struct message *m; wl_list_for_each(m, message_list, link) { - printf("/**\n * @ingroup iface_%s\n */\n", interface->name); + if (print_doc) + printf("/**\n * @ingroup iface_%s\n */\n", interface->name); printf("#define %s_%s_SINCE_VERSION %d\n", interface->uppercase_name, m->uppercase_name, m->since); } @@ -1047,7 +1051,8 @@ emit_stubs(struct wl_list *message_list, struct interface *interface) struct arg *a, *ret; int has_destructor, has_destroy; - printf("/** @ingroup iface_%s */\n", interface->name); + if (print_doc) + printf("/** @ingroup iface_%s */\n", interface->name); printf("static inline void\n" "%s_set_user_data(struct %s *%s, void *user_data)\n" "{\n" @@ -1056,7 +1061,8 @@ emit_stubs(struct wl_list *message_list, struct interface *interface) interface->name, interface->name, interface->name, interface->name); - printf("/** @ingroup iface_%s */\n", interface->name); + if (print_doc) + printf("/** @ingroup iface_%s */\n", interface->name); printf("static inline void *\n" "%s_get_user_data(struct %s *%s)\n" "{\n" @@ -1091,7 +1097,8 @@ emit_stubs(struct wl_list *message_list, struct interface *interface) } if (!has_destroy && strcmp(interface->name, "wl_display") != 0) { - printf("/** @ingroup iface_%s */\n", interface->name); + if (print_doc) + printf("/** @ingroup iface_%s */\n", interface->name); printf("static inline void\n" "%s_destroy(struct %s *%s)\n" "{\n" @@ -1120,11 +1127,13 @@ emit_stubs(struct wl_list *message_list, struct interface *interface) ret = a; } - printf("/**\n" - " * @ingroup iface_%s\n", interface->name); - if (m->description && m->description->text) - format_text_to_comment(m->description->text, false); - printf(" */\n"); + if (print_doc) { + printf("/**\n" + " * @ingroup iface_%s\n", interface->name); + if (m->description && m->description->text) + format_text_to_comment(m->description->text, false); + printf(" */\n"); + } if (ret && ret->interface_name == NULL) printf("static inline void *\n"); else if (ret) @@ -1220,17 +1229,19 @@ emit_event_wrappers(struct wl_list *message_list, struct interface *interface) return; wl_list_for_each(m, message_list, link) { - printf("/**\n" - " * @ingroup iface_%s\n" - " * Sends an %s event to the client owning the resource.\n", - interface->name, - m->name); - printf(" * @param resource_ The client's resource\n"); - wl_list_for_each(a, &m->arg_list, link) { - if (a->summary) - printf(" * @param %s %s\n", a->name, a->summary); + if (print_doc) { + printf("/**\n" + " * @ingroup iface_%s\n" + " * Sends an %s event to the client owning the resource.\n", + interface->name, + m->name); + printf(" * @param resource_ The client's resource\n"); + wl_list_for_each(a, &m->arg_list, link) { + if (a->summary) + printf(" * @param %s %s\n", a->name, a->summary); + } + printf(" */\n"); } - printf(" */\n"); printf("static inline void\n" "%s_send_%s(struct wl_resource *resource_", interface->name, m->name); @@ -1275,7 +1286,7 @@ emit_enumerations(struct interface *interface) printf("#define %s_%s_ENUM\n", interface->uppercase_name, e->uppercase_name); - if (desc) { + if (desc && print_doc) { printf("/**\n"); printf(" * @ingroup iface_%s\n", interface->name); format_text_to_comment(desc->summary, false); @@ -1285,7 +1296,7 @@ emit_enumerations(struct interface *interface) } printf("enum %s_%s {\n", interface->name, e->name); wl_list_for_each(entry, &e->entry_list, link) { - if (entry->summary || entry->since > 1) { + if (print_doc && (entry->summary || entry->since > 1)) { printf("\t/**\n"); if (entry->summary) printf("\t * %s\n", entry->summary); @@ -1304,7 +1315,8 @@ emit_enumerations(struct interface *interface) if (entry->since == 1) continue; - printf("/**\n * @ingroup iface_%s\n */\n", interface->name); + if (print_doc) + printf("/**\n * @ingroup iface_%s\n */\n", interface->name); printf("#define %s_%s_%s_SINCE_VERSION %d\n", interface->uppercase_name, e->uppercase_name, entry->uppercase_name, @@ -1327,38 +1339,42 @@ emit_structs(struct wl_list *message_list, struct interface *interface, enum sid if (wl_list_empty(message_list)) return; - printf("/**\n"); - printf(" * @ingroup iface_%s\n", interface->name); - printf(" * @struct %s_%s\n", interface->name, - (side == SERVER) ? "interface" : "listener"); - printf(" */\n"); + if (print_doc) { + printf("/**\n"); + printf(" * @ingroup iface_%s\n", interface->name); + printf(" * @struct %s_%s\n", interface->name, + (side == SERVER) ? "interface" : "listener"); + printf(" */\n"); + } printf("struct %s_%s {\n", interface->name, (side == SERVER) ? "interface" : "listener"); wl_list_for_each(m, message_list, link) { struct description *mdesc = m->description; - printf("\t/**\n"); - if (mdesc) { - if (mdesc->summary) - printf("\t * %s\n", mdesc->summary); - printf("\t *\n"); - desc_dump(mdesc->text, "\t * "); - } - wl_list_for_each(a, &m->arg_list, link) { - if (side == SERVER && a->type == NEW_ID && - a->interface_name == NULL) - printf("\t * @param interface name of the objects interface\n" - "\t * @param version version of the objects interface\n"); - - if (a->summary) - printf("\t * @param %s %s\n", a->name, - a->summary); - } - if (m->since > 1) { - printf("\t * @since %d\n", m->since); + if (print_doc) { + printf("\t/**\n"); + if (mdesc) { + if (mdesc->summary) + printf("\t * %s\n", mdesc->summary); + printf("\t *\n"); + desc_dump(mdesc->text, "\t * "); + } + wl_list_for_each(a, &m->arg_list, link) { + if (side == SERVER && a->type == NEW_ID && + a->interface_name == NULL) + printf("\t * @param interface name of the objects interface\n" + "\t * @param version version of the objects interface\n"); + + if (a->summary) + printf("\t * @param %s %s\n", a->name, + a->summary); + } + if (m->since > 1) { + printf("\t * @since %d\n", m->since); + } + printf("\t */\n"); } - printf("\t */\n"); printf("\tvoid (*%s)(", m->name); n = strlen(m->name) + 17; @@ -1396,9 +1412,11 @@ emit_structs(struct wl_list *message_list, struct interface *interface, enum sid printf("};\n\n"); if (side == CLIENT) { - printf("/**\n" - " * @ingroup iface_%s\n" - " */\n", interface->name); + if (print_doc) { + printf("/**\n" + " * @ingroup iface_%s\n" + " */\n", interface->name); + } printf("static inline int\n" "%s_add_listener(struct %s *%s,\n" "%sconst struct %s_listener *listener, void *data)\n" @@ -1471,39 +1489,43 @@ emit_mainpage_blurb(const struct protocol *protocol, enum side side) { struct interface *i; - printf("/**\n" - " * @page page_%s The %s protocol\n", - protocol->name, protocol->name); + if (print_doc) { + printf("/**\n" + " * @page page_%s The %s protocol\n", + protocol->name, protocol->name); + + if (protocol->description) { + if (protocol->description->summary) { + printf(" * %s\n" + " *\n", protocol->description->summary); + } - if (protocol->description) { - if (protocol->description->summary) { - printf(" * %s\n" - " *\n", protocol->description->summary); + if (protocol->description->text) { + printf(" * @section page_desc_%s Description\n", protocol->name); + format_text_to_comment(protocol->description->text, false); + printf(" *\n"); + } } - if (protocol->description->text) { - printf(" * @section page_desc_%s Description\n", protocol->name); - format_text_to_comment(protocol->description->text, false); - printf(" *\n"); + printf(" * @section page_ifaces_%s Interfaces\n", protocol->name); + wl_list_for_each(i, &protocol->interface_list, link) { + printf(" * - @subpage page_iface_%s - %s\n", + i->name, + i->description && i->description->summary ? i->description->summary : ""); } - } - printf(" * @section page_ifaces_%s Interfaces\n", protocol->name); - wl_list_for_each(i, &protocol->interface_list, link) { - printf(" * - @subpage page_iface_%s - %s\n", - i->name, - i->description && i->description->summary ? i->description->summary : ""); - } + if (protocol->copyright) { + printf(" * @section page_copyright_%s Copyright\n", + protocol->name); + printf(" * <pre>\n"); + format_text_to_comment(protocol->copyright, false); + printf(" * </pre>\n"); + } - if (protocol->copyright) { - printf(" * @section page_copyright_%s Copyright\n", - protocol->name); - printf(" * <pre>\n"); - format_text_to_comment(protocol->copyright, false); - printf(" * </pre>\n"); + printf(" */\n"); + } else if (protocol->copyright) { + format_text_to_comment(protocol->copyright, true); } - - printf(" */\n"); } static void @@ -1557,24 +1579,26 @@ emit_header(struct protocol *protocol, enum side side) printf("\n"); wl_list_for_each(i, &protocol->interface_list, link) { - printf("/**\n" - " * @page page_iface_%s %s\n", - i->name, i->name); - if (i->description && i->description->text) { - printf(" * @section page_iface_%s_desc Description\n", - i->name); - format_text_to_comment(i->description->text, false); + if (print_doc) { + printf("/**\n" + " * @page page_iface_%s %s\n", + i->name, i->name); + if (i->description && i->description->text) { + printf(" * @section page_iface_%s_desc Description\n", + i->name); + format_text_to_comment(i->description->text, false); + } + printf(" * @section page_iface_%s_api API\n" + " * See @ref iface_%s.\n" + " */\n", + i->name, i->name); + printf("/**\n" + " * @defgroup iface_%s The %s interface\n", + i->name, i->name); + if (i->description && i->description->text) + format_text_to_comment(i->description->text, false); + printf(" */\n"); } - printf(" * @section page_iface_%s_api API\n" - " * See @ref iface_%s.\n" - " */\n", - i->name, i->name); - printf("/**\n" - " * @defgroup iface_%s The %s interface\n", - i->name, i->name); - if (i->description && i->description->text) - format_text_to_comment(i->description->text, false); - printf(" */\n"); printf("extern const struct wl_interface " "%s_interface;\n", i->name); } @@ -1813,11 +1837,12 @@ int main(int argc, char *argv[]) { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'v' }, { "include-core-only", no_argument, NULL, 'c' }, + { "no-documentation", no_argument, NULL, 'n' }, { 0, 0, NULL, 0 } }; while (1) { - opt = getopt_long(argc, argv, "hvc", options, NULL); + opt = getopt_long(argc, argv, "hvcn", options, NULL); if (opt == -1) break; @@ -1832,6 +1857,9 @@ int main(int argc, char *argv[]) case 'c': core_headers = true; break; + case 'n': + print_doc = false; + break; default: fail = true; break; -- 2.15.1 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
