|
From 713a3e09fbd5948823ac0c396249537329b878e4 Mon Sep 17 00:00:00 2001
|
|
From: Frediano Ziglio <fziglio@redhat.com>
|
|
Date: Thu, 12 Mar 2020 03:45:54 +0000
|
|
Subject: [PATCH] build: Allow to build disabling code generation
|
|
|
|
Reduce dependencies if used by agents which do not need
|
|
marshallers/demarshallers code.
|
|
|
|
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
|
|
---
|
|
common/meson.build | 28 +++++++++++++++-------------
|
|
meson.build | 24 +++++++++++++-----------
|
|
meson_options.txt | 2 +-
|
|
tests/meson.build | 34 ++++++++++++++++++----------------
|
|
4 files changed, 47 insertions(+), 41 deletions(-)
|
|
|
|
--- a/subprojects/spice-common/common/meson.build
|
|
+++ b/subprojects/spice-common/common/meson.build
|
|
@@ -67,19 +67,21 @@ spice_common_dep = declare_dependency(li
|
|
|
|
|
|
# client_demarshallers
|
|
-codegen_cmd = [python, spice_codegen]
|
|
-codegen_args = ['--generate-demarshallers',
|
|
- '--client',
|
|
- '--include', 'common/messages.h',
|
|
- '--generated-declaration-file', '@OUTPUT1@',
|
|
- '@INPUT@', '@OUTPUT0@']
|
|
+if spice_common_generate_client_code or spice_common_generate_server_code
|
|
+ codegen_cmd = [python, spice_codegen]
|
|
+ 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],
|
|
- depend_files : [spice_codegen_files, 'messages.h'])
|
|
+ client_demarshallers = custom_target('client_demarshallers',
|
|
+ input : [spice_proto],
|
|
+ output : ['generated_client_demarshallers.c', 'generated_messages.h'],
|
|
+ install : false,
|
|
+ command : [codegen_cmd, codegen_args],
|
|
+ depend_files : [spice_codegen_files, 'messages.h'])
|
|
+endif
|
|
|
|
#
|
|
# libspice-common-client
|
|
--- a/subprojects/spice-common/meson.build
|
|
+++ b/subprojects/spice-common/meson.build
|
|
@@ -131,17 +131,19 @@ foreach dep, version : optional_deps
|
|
endforeach
|
|
|
|
# Python
|
|
-py_module = import('python')
|
|
-python = py_module.find_installation()
|
|
+if spice_common_generate_client_code or spice_common_generate_server_code
|
|
+ py_module = import('python')
|
|
+ python = py_module.find_installation()
|
|
|
|
-if get_option('python-checks')
|
|
- foreach module : ['six', 'pyparsing']
|
|
- message('Checking for python module @0@'.format(module))
|
|
- cmd = run_command(python, '-m', module)
|
|
- if cmd.returncode() != 0
|
|
- error('Python module @0@ not found'.format(module))
|
|
- endif
|
|
- endforeach
|
|
+ if get_option('python-checks')
|
|
+ foreach module : ['six', 'pyparsing']
|
|
+ message('Checking for python module @0@'.format(module))
|
|
+ cmd = run_command(python, '-m', module)
|
|
+ if cmd.returncode() != 0
|
|
+ error('Python module @0@ not found'.format(module))
|
|
+ endif
|
|
+ endforeach
|
|
+ endif
|
|
endif
|
|
|
|
# smartcard check
|
|
--- a/subprojects/spice-common/meson_options.txt
|
|
+++ b/subprojects/spice-common/meson_options.txt
|
|
@@ -45,7 +45,7 @@ option('manual',
|
|
|
|
option('generate-code',
|
|
type : 'combo',
|
|
- choices : ['all', 'server', 'client'],
|
|
+ choices : ['all', 'server', 'client', 'none'],
|
|
description : 'Which code should be built')
|
|
|
|
option('tests',
|
|
--- a/subprojects/spice-common/tests/meson.build
|
|
+++ b/subprojects/spice-common/tests/meson.build
|
|
@@ -15,26 +15,28 @@ endforeach
|
|
#
|
|
# test_marshallers
|
|
#
|
|
-test_proto = files('test-marshallers.proto')
|
|
+if spice_common_generate_client_code or spice_common_generate_server_code
|
|
+ test_proto = files('test-marshallers.proto')
|
|
|
|
-test_marshallers_sources = ['test-marshallers.c', 'test-marshallers.h']
|
|
+ test_marshallers_sources = ['test-marshallers.c', 'test-marshallers.h']
|
|
|
|
-targets = [
|
|
- ['test_marshallers', test_proto, 'generated_test_marshallers.c', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
|
|
- ['test_marshallers_h', test_proto, 'generated_test_marshallers.h', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '-H', '@INPUT@', '@OUTPUT@']],
|
|
- ['test_demarshallers', test_proto, 'generated_test_demarshallers.c', ['--generate-demarshallers', '--client', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
|
|
- ['test_enums_h', test_proto, 'generated_test_enums.h', ['-e', '@INPUT@', '@OUTPUT@']],
|
|
-]
|
|
+ targets = [
|
|
+ ['test_marshallers', test_proto, 'generated_test_marshallers.c', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
|
|
+ ['test_marshallers_h', test_proto, 'generated_test_marshallers.h', ['--generate-marshallers', '--server', '--include', 'test-marshallers.h', '-H', '@INPUT@', '@OUTPUT@']],
|
|
+ ['test_demarshallers', test_proto, 'generated_test_demarshallers.c', ['--generate-demarshallers', '--client', '--include', 'test-marshallers.h', '@INPUT@', '@OUTPUT@']],
|
|
+ ['test_enums_h', test_proto, 'generated_test_enums.h', ['-e', '@INPUT@', '@OUTPUT@']],
|
|
+ ]
|
|
|
|
-foreach t : targets
|
|
- cmd = [python, spice_codegen] + t[3]
|
|
- test_marshallers_sources += custom_target(t[0], input: t[1], output : t[2], command: cmd, depend_files : spice_codegen_files)
|
|
-endforeach
|
|
+ foreach t : targets
|
|
+ cmd = [python, spice_codegen] + t[3]
|
|
+ test_marshallers_sources += custom_target(t[0], input: t[1], output : t[2], command: cmd, depend_files : spice_codegen_files)
|
|
+ endforeach
|
|
|
|
-test('test_marshallers',
|
|
- executable('test_marshallers', test_marshallers_sources,
|
|
- dependencies : spice_common_dep,
|
|
- install : false))
|
|
+ test('test_marshallers',
|
|
+ executable('test_marshallers', test_marshallers_sources,
|
|
+ dependencies : spice_common_dep,
|
|
+ install : false))
|
|
+endif
|
|
|
|
#
|
|
# test_quic
|