[Spice-devel] [PATCH spice-protocol 1/2] Add support for building with meson

Eduardo Lima (Etrunko) etrunko at redhat.com
Tue May 8 15:30:12 UTC 2018


On 05/05/18 08:35, Frediano Ziglio wrote:
>>
>> Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
>> ---
>>  Makefile.am       |  2 ++
>>  meson.build       | 23 +++++++++++++++++++++++
>>  spice/Makefile.am |  2 ++
>>  spice/meson.build | 22 ++++++++++++++++++++++
>>  4 files changed, 49 insertions(+)
>>  create mode 100644 meson.build
>>  create mode 100644 spice/meson.build
>>
>> diff --git a/Makefile.am b/Makefile.am
>> index 82f19e4..c464fa7 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -22,4 +22,6 @@ MAINTAINERCLEANFILES =						\
>>  	`find "$(srcdir)" -type f -name Makefile.in -print`	\
>>  	$(NULL)
>>  
>> +EXTRA_DIST = meson.build
>> +
>>  -include $(top_srcdir)/git.mk
>> diff --git a/meson.build b/meson.build
>> new file mode 100644
>> index 0000000..5ed4177
>> --- /dev/null
>> +++ b/meson.build
>> @@ -0,0 +1,23 @@
>> +#
>> +# project definition
>> +#
>> +project('spice-protocol', 'c',
>> +        version : '0.12.14',
>> +        license : 'BSD',
>> +        meson_version : '>= 0.41.0')
>> +
>> +subdir('spice')
>> +
>> +#
>> +# spice-protocol.pc generation
>> +#
>> +datadir = get_option('datadir')
>> +pkgconfig_dir = join_paths(get_option('prefix'), datadir, 'pkgconfig')
>> +
>> +pkgconfig = import('pkgconfig')
>> +pkgconfig.generate(name : meson.project_name(),
>> +                   description : 'SPICE protocol headers',
>> +                   version : meson.project_version(),
>> +                   subdirs : 'spice-1',
>> +                   install_dir : pkgconfig_dir,
>> +                   variables : 'datadir=@0@'.format(join_paths('${prefix}',
>> datadir)))
>> diff --git a/spice/Makefile.am b/spice/Makefile.am
>> index 4f9a607..e41f41d 100644
>> --- a/spice/Makefile.am
>> +++ b/spice/Makefile.am
>> @@ -22,4 +22,6 @@ spice_protocol_include_HEADERS =		\
>>  	stream-device.h				\
>>  	$(NULL)
>>  
>> +EXTRA_DIST = meson.build
>> +
>>  -include $(top_srcdir)/git.mk
>> diff --git a/spice/meson.build b/spice/meson.build
>> new file mode 100644
>> index 0000000..5b1ff30
>> --- /dev/null
>> +++ b/spice/meson.build
>> @@ -0,0 +1,22 @@
>> +spice_protocol_headers = [
>> +  'barrier.h',
>> +  'controller_prot.h',
>> +  'end-packed.h',
>> +  'enums.h',
>> +  'error_codes.h',
>> +  'foreign_menu_prot.h',
>> +  'ipc_ring.h',
>> +  'macros.h',
>> +  'protocol.h',
>> +  'qxl_dev.h',
>> +  'qxl_windows.h',
>> +  'start-packed.h',
>> +  'stats.h',
>> +  'types.h',
>> +  'vd_agent.h',
>> +  'vdi_dev.h',
>> +  'stream-device.h',
>> +]
>> +
>> +install_headers(spice_protocol_headers,
>> +                subdir : join_paths('spice-1', 'spice'))
> 
> build and install are working correctly.
> dist is not working but I don't think is a requirement for the moment.

At least for me it works fine, which command did you use?

  $ meson ./build
  $ ninja -C build dist

In the end the tarball can be found in ./build/meson-dist/ directory.

> Other stuff that does not work is .gitignore generation (not needed too)
> 

This is currently tied to autotools, I think we should a new .gitignore
file whenever we remove autotools, as many of the ignored files would
have been gone together with that removal.

> I would start merging Meson support, for me:
> 
> Acked-by: Frediano Ziglio <fziglio at redhat.com>
> 
> Frediano
> 

-- 
Eduardo de Barros Lima (Etrunko)
Software Engineer - RedHat
etrunko at redhat.com


More information about the Spice-devel mailing list