diff options
author | Armin Krezović <krezovic.armin@gmail.com> | 2016-05-05 17:27:57 +0200 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2016-05-06 15:37:33 +0300 |
commit | 721c91c54a705fc3e971e94d8afe46993af953f8 (patch) | |
tree | e6b750cfdd482eb77f6489650c85416d09f2be2d | |
parent | 08bda63ac4aa483c046fcbf8dd62a1103ffe9683 (diff) | |
download | wayland-721c91c54a705fc3e971e94d8afe46993af953f8.tar.gz |
scanner: Add version argument to wayland-scanner
This adds a command line argument to print wayland-scanner version.
It also makes wayland-scanner emit a comment with wayland library
version to every file it generates.
v2: separate variable definitions into their own lines and remove
old style "version" argument
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Yong Bakos <ybakos@humanoriented.com>
Tested-by: Yong Bakos <ybakos@humanoriented.com>
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | src/scanner.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/scanner.c b/src/scanner.c index 1317a06..037ebdb 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -26,6 +26,7 @@ */ #include "config.h" +#include "wayland-version.h" #include <stdbool.h> #include <stdio.h> @@ -64,12 +65,21 @@ usage(int ret) "headers, server headers, or protocol marshalling code.\n\n"); fprintf(stderr, "options:\n"); fprintf(stderr, " -h, --help display this help and exit.\n" + " -v, --version print the wayland library version that\n" + " 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"); exit(ret); } +static int +scanner_version(int ret) +{ + fprintf(stderr, "wayland-scanner %s\n", WAYLAND_VERSION); + exit(ret); +} + static bool is_dtd_valid(FILE *input, const char *filename) { @@ -1457,6 +1467,8 @@ emit_header(struct protocol *protocol, enum side side) const char *s = (side == SERVER) ? "SERVER" : "CLIENT"; char **p, *prev; + printf("/* Generated by wayland-scanner %s */\n\n", WAYLAND_VERSION); + printf("#ifndef %s_%s_PROTOCOL_H\n" "#define %s_%s_PROTOCOL_H\n" "\n" @@ -1658,6 +1670,8 @@ emit_code(struct protocol *protocol) struct wl_array types; char **p, *prev; + printf("/* Generated by wayland-scanner %s */\n\n", WAYLAND_VERSION); + if (protocol->copyright) format_text_to_comment(protocol->copyright, true); @@ -1735,7 +1749,9 @@ int main(int argc, char *argv[]) char *input_filename = NULL; int len; void *buf; - bool help = false, core_headers = false; + bool help = false; + bool core_headers = false; + bool version = false; bool fail = false; int opt; enum { @@ -1746,12 +1762,13 @@ int main(int argc, char *argv[]) static const struct option options[] = { { "help", no_argument, NULL, 'h' }, + { "version", no_argument, NULL, 'v' }, { "include-core-only", no_argument, NULL, 'c' }, { 0, 0, NULL, 0 } }; while (1) { - opt = getopt_long(argc, argv, "hc", options, NULL); + opt = getopt_long(argc, argv, "hvc", options, NULL); if (opt == -1) break; @@ -1760,6 +1777,9 @@ int main(int argc, char *argv[]) case 'h': help = true; break; + case 'v': + version = true; + break; case 'c': core_headers = true; break; @@ -1774,6 +1794,8 @@ int main(int argc, char *argv[]) if (help) usage(EXIT_SUCCESS); + else if (version) + scanner_version(EXIT_SUCCESS); else if ((argc != 1 && argc != 3) || fail) usage(EXIT_FAILURE); else if (strcmp(argv[0], "help") == 0) |