diff options
Diffstat (limited to 'libs/spice/patches/020-no-code-generation.patch')
-rw-r--r-- | libs/spice/patches/020-no-code-generation.patch | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/libs/spice/patches/020-no-code-generation.patch b/libs/spice/patches/020-no-code-generation.patch new file mode 100644 index 000000000..ec4cd62fa --- /dev/null +++ b/libs/spice/patches/020-no-code-generation.patch @@ -0,0 +1,155 @@ +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 + |