Re: [v4l-utils] [PATCH v9 1/7] utils: Allow choosing v4l2-tracer-gen.pl output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/21/23 15:31, Laurent Pinchart wrote:
> From: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> 
> In v4l2-tracer-gen.pl, add support for setting the output directory for
> the generated files and choosing which ones to generate (common, trace or
> retrace). The default is to generate them all in the current directory,
> i.e. what the script used to do.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> [Append a '/' automatically between $outdir and $fname]
> Tested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Tested-by: Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx>
> ---
>  utils/v4l2-tracer/v4l2-tracer-gen.pl | 36 ++++++++++++++++++++++++----
>  1 file changed, 31 insertions(+), 5 deletions(-)
> 
> diff --git a/utils/v4l2-tracer/v4l2-tracer-gen.pl b/utils/v4l2-tracer/v4l2-tracer-gen.pl
> index fe648182ac34..f7454e7f0bab 100755
> --- a/utils/v4l2-tracer/v4l2-tracer-gen.pl
> +++ b/utils/v4l2-tracer/v4l2-tracer-gen.pl
> @@ -2,6 +2,16 @@
>  # SPDX-License-Identifier: GPL-2.0-only */
>  # Copyright 2022 Collabora Ltd.
>  
> +my $outdir = ".";
> +my %outtype = ( "common" => 1, "trace" => 1, "retrace" => 1 );
> +
> +while ($ARGV[0] =~ /^-/) {
> +	my $arg = shift @ARGV;
> +
> +	$outdir = shift @ARGV if $arg eq "-o";
> +	%outtype = (shift @ARGV => 1) if $arg eq '-t';
> +}

Can you add a help message as well? At minimum as a comment, even better
by adding a -h option.

It's currently only documented in the commit log, which nobody will read :-)

Regards,

	Hans

> +
>  sub convert_type_to_json_type {
>  	my $type = shift;
>  	if ($type eq __u8 || $type eq char || $type eq __u16 || $type eq __s8 || $type eq __s16 || $type eq __s32 || $type eq 'int') {
> @@ -696,29 +706,45 @@ sub struct_gen_ctrl {
>  	printf $fh_retrace_cpp "}\n\n";
>  }
>  
> -open($fh_trace_cpp, '>', 'trace-gen.cpp') or die "Could not open trace-gen.cpp for writing";
> +sub do_open($$) {
> +	my ($type, $fname) = @_;
> +	my $fh;
> +
> +	if (defined $outtype{$type}) {
> +		$fname = "$outdir/$fname";
> +	} else {
> +		$fname = "/dev/null";
> +	}
> +
> +	open($fh, "> $fname") or die "Could not open $fname for writing";
> +
> +	return $fh;
> +}
> +
> +
> +$fh_trace_cpp = do_open("trace", "trace-gen.cpp");
>  printf $fh_trace_cpp "/* SPDX-License-Identifier: GPL-2.0-only */\n/*\n * Copyright 2022 Collabora Ltd.\n";
>  printf $fh_trace_cpp " *\n * AUTOMATICALLY GENERATED BY \'%s\' DO NOT EDIT\n */\n\n", __FILE__;
>  printf $fh_trace_cpp "#include \"v4l2-tracer-common.h\"\n\n";
>  
> -open($fh_trace_h, '>', 'trace-gen.h') or die "Could not open trace-gen.h for writing";
> +$fh_trace_h = do_open("trace", "trace-gen.h");
>  printf $fh_trace_h "/* SPDX-License-Identifier: GPL-2.0-only */\n/*\n * Copyright 2022 Collabora Ltd.\n";
>  printf $fh_trace_h " *\n * AUTOMATICALLY GENERATED BY \'%s\' DO NOT EDIT\n */\n\n", __FILE__;
>  printf $fh_trace_h "\#ifndef TRACE_GEN_H\n";
>  printf $fh_trace_h "\#define TRACE_GEN_H\n\n";
>  
> -open($fh_retrace_cpp, '>', 'retrace-gen.cpp') or die "Could not open retrace-gen.cpp for writing";
> +$fh_retrace_cpp = do_open("retrace", "retrace-gen.cpp");
>  printf $fh_retrace_cpp "/* SPDX-License-Identifier: GPL-2.0-only */\n/*\n * Copyright 2022 Collabora Ltd.\n";
>  printf $fh_retrace_cpp " *\n * AUTOMATICALLY GENERATED BY \'%s\' DO NOT EDIT\n */\n\n", __FILE__;
>  printf $fh_retrace_cpp "#include \"v4l2-tracer-common.h\"\n\n";
>  
> -open($fh_retrace_h, '>', 'retrace-gen.h') or die "Could not open retrace-gen.h for writing";
> +$fh_retrace_h = do_open("retrace", "retrace-gen.h");
>  printf $fh_retrace_h "/* SPDX-License-Identifier: GPL-2.0-only */\n/*\n * Copyright 2022 Collabora Ltd.\n";
>  printf $fh_retrace_h " *\n * AUTOMATICALLY GENERATED BY \'%s\' DO NOT EDIT\n */\n\n", __FILE__;
>  printf $fh_retrace_h "\#ifndef RETRACE_GEN_H\n";
>  printf $fh_retrace_h "\#define RETRACE_GEN_H\n\n";
>  
> -open($fh_common_info_h, '>', 'v4l2-tracer-info-gen.h') or die "Could not open v4l2-tracer-info-gen.h for writing";
> +$fh_common_info_h = do_open("common", "v4l2-tracer-info-gen.h");
>  printf $fh_common_info_h "/* SPDX-License-Identifier: GPL-2.0-only */\n/*\n * Copyright 2022 Collabora Ltd.\n";
>  printf $fh_common_info_h " *\n * AUTOMATICALLY GENERATED BY \'%s\' DO NOT EDIT\n */\n\n", __FILE__;
>  printf $fh_common_info_h "\#ifndef V4L2_TRACER_INFO_GEN_H\n";




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux