From a83eb4ddb2f3468063af01e094c171b08c551cf7 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Tue, 22 Aug 2017 14:44:32 -0300 Subject: ninjabackend: Add support for generated csharp sources. --- mesonbuild/backend/ninjabackend.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index ec811cb..1f6a80b 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -987,11 +987,20 @@ int dummy; outputs = [outname_rel, outname_rel + '.mdb'] else: outputs = [outname_rel] + generated_sources = self.get_target_generated_sources(target) + for rel_src in generated_sources.keys(): + dirpart, fnamepart = os.path.split(rel_src) + if rel_src.lower().endswith('.cs'): + rel_srcs.append(rel_src) + deps.append(rel_src) + elem = NinjaBuildElement(self.all_outputs, outputs, 'cs_COMPILER', rel_srcs) elem.add_dep(deps) elem.add_item('ARGS', commands) elem.write(outfile) + self.generate_generator_list_rules(target, outfile) + def generate_single_java_compile(self, src, target, compiler, outfile): args = [] args += compiler.get_buildtype_args(self.get_option_for_target('buildtype', target)) -- cgit v1.1 From f2a60b87cbc94a38f3482a7396c513f72b31fa3a Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 23 Aug 2017 14:58:21 -0300 Subject: gnome: Fix g-ir-scanner linking args for all code paths We were fixing them up only in the dependency code path and not in the InternalDependency one. Just make sure to do it once for all. --- mesonbuild/modules/gnome.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 0a39664..1632dae 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -375,8 +375,6 @@ class GnomeModule(ExtensionModule): # Hack to avoid passing some compiler options in if lib.startswith("-W"): continue - if gir_has_extra_lib_arg() and use_gir_args and lib.startswith("-l"): - lib = lib.replace('-l', '--extra-library=', 1) ldflags.update([lib]) if isinstance(dep, PkgConfigDependency): @@ -389,6 +387,14 @@ class GnomeModule(ExtensionModule): mlog.log('dependency %s not handled to build gir files' % dep) continue + if gir_has_extra_lib_arg() and use_gir_args: + fixed_ldflags = set() + for ldflag in ldflags: + if ldflag.startswith("-l"): + fixed_ldflags.add(ldflag.replace('-l', '--extra-library=', 1)) + else: + fixed_ldflags.add(ldflag) + ldflags = fixed_ldflags return cflags, ldflags, gi_includes @permittedKwargs({'sources', 'nsversion', 'namespace', 'symbol_prefix', 'identifier_prefix', -- cgit v1.1 From 44dc02849995188f8b25158d2c71009aeb264910 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Thu, 24 Aug 2017 11:34:12 -0300 Subject: tests: Check that generated sources can be used in csharp targets --- test cases/csharp/2 library/meson.build | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test cases/csharp/2 library/meson.build b/test cases/csharp/2 library/meson.build index 2082e03..6b246a4 100644 --- a/test cases/csharp/2 library/meson.build +++ b/test cases/csharp/2 library/meson.build @@ -1,5 +1,15 @@ project('C# library', 'cs') -l = shared_library('helper', 'helper.cs', install : true) +python3 = import('python3').find_python() +generated_sources = custom_target('gen_sources', + input: 'helper.cs', + output: 'helper.cs', + command: [python3, '-c', + 'import shutil, sys; shutil.copyfile(sys.argv[1], sys.argv[2])', + '@INPUT@', '@OUTPUT@'] +) + +l = shared_library('helper', generated_sources, install : true) + e = executable('prog', 'prog.cs', link_with : l, install : true) test('libtest', e) -- cgit v1.1