[Spice-devel] [PATCH spice-common] fixup! meson: Fix dependency of generated files

Frediano Ziglio fziglio at redhat.com
Thu Apr 4 14:57:37 UTC 2019


> 
> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
> ---
>  common/meson.build | 78 +++++++++++++++++++++++-----------------------
>  1 file changed, 39 insertions(+), 39 deletions(-)
> 
> diff --git a/common/meson.build b/common/meson.build
> index 2b7bef00..e5629af4 100644
> --- a/common/meson.build
> +++ b/common/meson.build
> @@ -59,57 +59,54 @@ spice_common_dep = declare_dependency(link_with :
> spice_common_lib,
>                                        include_directories :
>                                        spice_common_include,
>                                        dependencies : spice_common_deps)
>  
> -targets = [
> -  ['client_demarshallers', spice_proto,
> -    ['generated_client_demarshallers.c', 'generated_messages.h'],
> -    ['--generate-demarshallers',
> -      '--client',
> -      '--include', 'common/messages.h',
> -      '--generated-declaration-file', '@OUTPUT1@',
> -      '@INPUT@', '@OUTPUT0@'
> -    ]
> -  ]
> -]
>  
> -foreach t : targets
> -  cmd = [python, spice_codegen] + t[3]
> -  common_generated = custom_target(t[0], input : t[1], output : t[2],
> install : false, command : cmd,
> -                                   depend_files : spice_codegen_files +
> ['messages.h'])
> -endforeach
> +# client_demarshallers

maybe

# client_demarshallers and message declarations (which is common to
# all other generated targets)

> +codegen_cmd = [python, spice_codegen]

that helps

> +codegen_args = ['--generate-demarshallers',
> +                '--client',
> +                '--include', 'common/messages.h',
> +                '--generated-declaration-file', '@OUTPUT1@',
> +                '@INPUT@', '@OUTPUT0@']
> +
> +client_demarshallers = custom_target('client_demarshallers',
> +                                     input : [spice_proto],
> +                                     output :
> ['generated_client_demarshallers.c', 'generated_messages.h'],
> +                                     install : false,
> +                                     command : [codegen_cmd, codegen_args],

maybe more clear "codegen_cmd + codegen_args".
Sometimes [array, array] is the same as array+array sometimes not.

> +                                     depend_files : [spice_codegen_files,
> 'messages.h'])
>  
>  #
>  # libspice-common-client
>  #
>  if spice_common_generate_client_code
> -  targets = [
> -    ['client_marshallers', [ spice_proto, common_generated ],
> -      ['generated_client_marshallers.c', 'generated_client_marshallers.h'],
> -      ['--generate-marshallers', '--generate-header',
> -        '-P', '--client', '--include', 'common/client_marshallers.h',
> -        '@INPUT0@', '@OUTPUT0@'
> -      ]
> -    ]
> -  ]
> +  # client_marshallers
> +  codegen_args = ['--generate-marshallers',
> +                  '--generate-header',
> +                  '-P',
> +                  '--client',
> +                  '--include', 'common/client_marshallers.h',
> +                  '@INPUT0@', '@OUTPUT0@']
> +
> +  client_marshallers = custom_target('client_marshallers',
> +                                     input : [spice_proto,
> client_demarshallers],
> +                                     output :
> ['generated_client_marshallers.c', 'generated_client_marshallers.h'],
> +                                     install : false,
> +                                     command : [codegen_cmd, codegen_args],
> +                                     depend_files : [spice_codegen_files,
> 'client_marshallers.h'])
>  
>    spice_common_client_sources = [
> +    client_demarshallers,
> +    client_marshallers,
>      'client_marshallers.h',
>      'ssl_verify.c',
>      'ssl_verify.h',
>    ]
>  
> -  spice_common_client_sources += common_generated
> -  foreach t : targets
> -    cmd = [python, spice_codegen] + t[3]
> -    target = custom_target(t[0], input : t[1], output : t[2], install :
> false, command : cmd,
> -                           depend_files : spice_codegen_files +
> ['client_marshallers.h'])
> -    spice_common_client_sources += target
> -  endforeach
> -
>    spice_common_client_lib = static_library('spice-common-client',
>    spice_common_client_sources,
>                                             install : false,
>                                             dependencies : spice_common_dep)
>  
> -  spice_common_client_dep = declare_dependency(sources : target,
> +  spice_common_client_dep = declare_dependency(sources : client_marshallers,
>                                                 link_with :
>                                                 spice_common_client_lib,
>                                                 dependencies :
>                                                 spice_common_dep)
>  endif
> @@ -139,11 +136,11 @@ if spice_common_generate_server_code
>    ]
>  
>    targets = [
> -    ['server_demarshallers', [ spice_proto, common_generated ],
> +    ['server_demarshallers', [ spice_proto, client_demarshallers ],
>        ['generated_server_demarshallers.c'],
>        ['--generate-demarshallers', '--server', '--include',
>        'common/messages.h', '@INPUT0@', '@OUTPUT0@']
>      ],
> -    ['server_marshallers', [ spice_proto, common_generated ],
> +    ['server_marshallers', [ spice_proto, client_demarshallers ],
>        ['generated_server_marshallers.c', 'generated_server_marshallers.h'],
>        ['--generate-marshallers', '--generate-header',
>          '--server'] + structs_args + ['--include', 'common/messages.h',
>          '@INPUT0@', '@OUTPUT0@'
> @@ -154,9 +151,12 @@ if spice_common_generate_server_code
>    spice_common_server_sources = []
>  
>    foreach t : targets
> -    cmd = [python, spice_codegen] + t[3]
> -    target = custom_target(t[0], input : t[1], output : t[2], install :
> false, command : cmd,
> -                           depend_files : spice_codegen_files +
> ['messages.h'])
> +    target = custom_target(t[0],
> +                           input : t[1],
> +                           output : t[2],
> +                           install : false,
> +                           command : [codegen_cmd, t[3]],
> +                           depend_files : [spice_codegen_files,
> 'messages.h'])
>      spice_common_server_sources += target
>    endforeach
>  

Fine with me, mostly removing the unneeded for if arrays contained
a single entry and some style/name changes.

Do you have CI results for spice-common/spice-gtk/spice-server ?

Frediano


More information about the Spice-devel mailing list