- 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
|