[PATCH wayland v2] scanner: Add version argument to wayland-scanner

Yong Bakos junk at humanoriented.com
Thu May 5 23:34:54 UTC 2016


On May 5, 2016, at 10:27 AM, Armin Krezović <krezovic.armin at gmail.com> wrote:
> 
> 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 at osg.samsung.com>
> Reviewed-by: Yong Bakos <ybakos at humanoriented.com>
> Tested-by: Yong Bakos <ybakos at humanoriented.com>
> Signed-off-by: Armin Krezović <krezovic.armin at gmail.com>

Hi Armin,
Looks good to me, and I also re-tested.
(Just a thought: should this be two separate patches, since we're
adding both the version arg _and_ adding a version comment in the
generated files? I know that it's "just a comment" so it's trivial,
and I'm not suggesting that it be broken apart.)

yong


> ---
> src/scanner.c | 26 ++++++++++++++++++++++++--
> 1 file 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)
> -- 
> 2.8.2
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list