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

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

 



Hi Sakari,

Thank you for the patch.

On Sun, Feb 12, 2023 at 02:16:57AM +0200, Sakari Ailus wrote:
> 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>
> ---
>  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 fe648182..8192a5bf 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';
> +}
> +
>  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;

It would be nice to add a directory separator if outdir doesn't end with
'/'. I'll do so here with

                $fname = "$outdir/$fname";

and with outdir initialized to "." instead of "" above.

I'll include the updated version in my meson patch series.

Tested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

Thanks a lot for your help.

> +	} 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";

-- 
Regards,

Laurent Pinchart



[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