Re: [RFC PATCH v2 1/1] Add support for meson building

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

 



Hi Eze,

On 4/10/20 8:49 PM, Ezequiel Garcia wrote:
[...]
> On Wed, 8 Apr 2020 at 16:56, Ariel D'Alessandro
> <ariel@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> Currently supports building libraries and tools found in lib/ and
>> utils/ directories.
>>
>> Co-developed-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
>> Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
>> Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
>> ---
>>  .gitignore                                    |   1 +
>>  gen-version.sh                                |  36 +++++
>>  lib/libdvbv5/meson.build                      | 142 +++++++++++++++++
>>  lib/libv4l-mplane/meson.build                 |  16 ++
>>  lib/libv4l1/meson.build                       |  53 +++++++
>>  lib/libv4l2/meson.build                       |  65 ++++++++
>>  lib/libv4l2rds/meson.build                    |  28 ++++
>>  lib/libv4lconvert/meson.build                 | 105 +++++++++++++
>>  lib/meson.build                               |  14 ++
>>  meson.build                                   | 132 ++++++++++++++++
>>  meson_options.txt                             |  39 +++++
>>  utils/cec-compliance/meson.build              |  24 +++
>>  utils/cec-ctl/meson.build                     |  18 +++
>>  utils/cec-follower/meson.build                |  21 +++
>>  utils/cx18-ctl/meson.build                    |   7 +
>>  utils/dvb/meson.build                         |  69 ++++++++
>>  utils/gen_media_bus_format_codes.sh           |   7 +
>>  utils/gen_media_bus_format_names.sh           |   7 +
>>  utils/ir-ctl/meson.build                      |  17 ++
>>  utils/ivtv-ctl/meson.build                    |  13 ++
>>  .../bpf_protocols/clang_sys_includes.sh       |   9 ++
>>  utils/keytable/bpf_protocols/meson.build      |  31 ++++
>>  utils/keytable/meson.build                    |  70 +++++++++
>>  utils/keytable/rc_keymaps/meson.build         | 147 ++++++++++++++++++
>>  utils/libcecutil/meson.build                  |  45 ++++++
>>  utils/libmedia_dev/meson.build                |  14 ++
>>  utils/libv4l2util/meson.build                 |  16 ++
>>  utils/media-ctl/meson.build                   |  46 ++++++
>>  utils/meson.build                             |  50 ++++++
>>  utils/qv4l2/meson.build                       |  75 +++++++++
>>  utils/qvidcap/meson.build                     |  75 +++++++++
>>  utils/rds-ctl/meson.build                     |  13 ++
>>  utils/v4l2-compliance/meson.build             |  60 +++++++
>>  utils/v4l2-ctl/meson.build                    |  75 +++++++++
>>  utils/v4l2-dbg/meson.build                    |  16 ++
>>  utils/v4l2-sysfs-path/meson.build             |  13 ++
>>  version.h.in                                  |   1 +
>>  37 files changed, 1570 insertions(+)
>>  create mode 100755 gen-version.sh
>>  create mode 100644 lib/libdvbv5/meson.build
>>  create mode 100644 lib/libv4l-mplane/meson.build
>>  create mode 100644 lib/libv4l1/meson.build
>>  create mode 100644 lib/libv4l2/meson.build
>>  create mode 100644 lib/libv4l2rds/meson.build
>>  create mode 100644 lib/libv4lconvert/meson.build
>>  create mode 100644 lib/meson.build
>>  create mode 100644 meson.build
>>  create mode 100644 meson_options.txt
>>  create mode 100644 utils/cec-compliance/meson.build
>>  create mode 100644 utils/cec-ctl/meson.build
>>  create mode 100644 utils/cec-follower/meson.build
>>  create mode 100644 utils/cx18-ctl/meson.build
>>  create mode 100644 utils/dvb/meson.build
>>  create mode 100755 utils/gen_media_bus_format_codes.sh
>>  create mode 100755 utils/gen_media_bus_format_names.sh
>>  create mode 100644 utils/ir-ctl/meson.build
>>  create mode 100644 utils/ivtv-ctl/meson.build
>>  create mode 100755 utils/keytable/bpf_protocols/clang_sys_includes.sh
>>  create mode 100644 utils/keytable/bpf_protocols/meson.build
>>  create mode 100644 utils/keytable/meson.build
>>  create mode 100644 utils/keytable/rc_keymaps/meson.build
>>  create mode 100644 utils/libcecutil/meson.build
>>  create mode 100644 utils/libmedia_dev/meson.build
>>  create mode 100644 utils/libv4l2util/meson.build
>>  create mode 100644 utils/media-ctl/meson.build
>>  create mode 100644 utils/meson.build
>>  create mode 100644 utils/qv4l2/meson.build
>>  create mode 100644 utils/qvidcap/meson.build
>>  create mode 100644 utils/rds-ctl/meson.build
>>  create mode 100644 utils/v4l2-compliance/meson.build
>>  create mode 100644 utils/v4l2-ctl/meson.build
>>  create mode 100644 utils/v4l2-dbg/meson.build
>>  create mode 100644 utils/v4l2-sysfs-path/meson.build
>>  create mode 100644 version.h.in
>>
> [..]
>> diff --git a/meson_options.txt b/meson_options.txt
>> new file mode 100644
>> index 00000000..c46eed32
>> --- /dev/null
>> +++ b/meson_options.txt
>> @@ -0,0 +1,39 @@
>> +# Features
>> +option('jpeg', type : 'feature', value : 'auto')
>> +option('udev', type : 'feature', value : 'auto')
>> +
>> +# Options
>> +option('bpf', type : 'boolean',
>> +       description : 'Enable IR BPF decoders')
> 
> I think BPF and the Qt tools should be auto features.

Agreed.

> Something along these lines seems to work here:
> 
> diff --git a/meson.build b/meson.build
> index 428fd403bee6..328a68c83768 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -37,7 +37,7 @@ v4l2_utils_incdir = include_directories(
>  )
> 
>  prog_bash = find_program('bash')
> -prog_clang = find_program('clang')
> +prog_clang = find_program('clang', required : get_option('bpf'))

I agree, build shouldn't fail in case clang is not found, so clang
shouldn't be required by default.

However, I think this is not the place to put the bpf-clang dependency.
Instead of tying it up to the bpf option, it should be checked from the
bpf meson scripts, only when bpf is enabled. This way, other lib/tools
could require and use prog_clang, in spite of the bpf option configuration.

>  prog_grep = find_program('grep')
>  prog_perl = find_program('perl')
> 
> diff --git a/meson_options.txt b/meson_options.txt
> index c46eed327781..4b5d1f4613b7 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -1,10 +1,10 @@
>  # Features
>  option('jpeg', type : 'feature', value : 'auto')
>  option('udev', type : 'feature', value : 'auto')
> +option('bpf', type : 'feature', value : 'auto',
> +       description : 'Enable IR BPF decoders')
> 
>  # Options
> -option('bpf', type : 'boolean',
> -       description : 'Enable IR BPF decoders')
>  option('libdvbv5', type : 'boolean',
>         description : 'Enable libdvbv5 compilation')
>  option('qv4l2', type : 'boolean',
> diff --git a/utils/keytable/meson.build b/utils/keytable/meson.build
> index e1e5b3851e95..2630b02aa164 100644
> --- a/utils/keytable/meson.build
> +++ b/utils/keytable/meson.build
> @@ -11,7 +11,7 @@ ir_keytable_sources = files(
> 
>  ir_keytable_deps = []
> 
> -if get_option('bpf')
> +if get_option('bpf').enabled()
>      ir_keytable_sources += files(
>          'bpf.c',
>          'bpf.h',
> 
> I guess there could be something similar to do for Qt tools.
> This way, we won't fail the build if that's not present.

-- 
Ariel D'Alessandro, VanguardiaSur
www.vanguardiasur.com.ar



[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