You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

155 lines
6.5 KiB

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(-)
diff --git a/common/meson.build b/common/meson.build
index 7356cc0..14bf242 100644
--- a/subprojects/spice-common/common/meson.build
+++ b/subprojects/spice-common/common/meson.build
@@ -67,19 +67,21 @@ spice_common_dep = declare_dependency(link_with : spice_common_lib,
# client_demarshallers
-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'])
+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'])
+endif
#
# libspice-common-client
diff --git a/meson.build b/meson.build
index 41a9419..b60a9fe 100644
--- a/subprojects/spice-common/meson.build
+++ b/subprojects/spice-common/meson.build
@@ -119,17 +119,19 @@ foreach dep, version : optional_deps
endforeach
# Python
-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 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
+ endif
endif
# smartcard check
diff --git a/meson_options.txt b/meson_options.txt
index d30858f..d93d74b 100644
--- a/subprojects/spice-common/meson_options.txt
+++ b/subprojects/spice-common/meson_options.txt
@@ -39,7 +39,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',
diff --git a/tests/meson.build b/tests/meson.build
index d315056..1ad5bc5 100644
--- a/subprojects/spice-common/tests/meson.build
+++ b/subprojects/spice-common/tests/meson.build
@@ -20,26 +20,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
--
GitLab