diff options
-rw-r--r-- | mesonbuild/backend/backends.py | 3 | ||||
-rw-r--r-- | test cases/vala/6 static library/installed_files.txt | 1 | ||||
-rw-r--r-- | test cases/vala/6 static library/meson.build | 6 |
3 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 2861bb6..d799616 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -271,6 +271,9 @@ class Backend(): def object_filename_from_source(self, target, source): if isinstance(source, mesonlib.File): source = source.fname + # foo.vala files compile down to foo.c and then foo.c.o, not foo.vala.o + if source.endswith('.vala'): + source = os.path.join(self.get_target_private_dir(target), source[:-5] + '.c') return source.replace('/', '_').replace('\\', '_') + '.' + self.environment.get_object_suffix() def determine_ext_objs(self, extobj, proj_dir_to_build_root): diff --git a/test cases/vala/6 static library/installed_files.txt b/test cases/vala/6 static library/installed_files.txt new file mode 100644 index 0000000..f464bc0 --- /dev/null +++ b/test cases/vala/6 static library/installed_files.txt @@ -0,0 +1 @@ +usr/lib/libextractedlib.a diff --git a/test cases/vala/6 static library/meson.build b/test cases/vala/6 static library/meson.build index ae8eeb9..c74bdf8 100644 --- a/test cases/vala/6 static library/meson.build +++ b/test cases/vala/6 static library/meson.build @@ -3,6 +3,12 @@ project('valastatic', 'vala', 'c') valadeps = [dependency('glib-2.0'), dependency('gobject-2.0')] l = static_library('valalib', 'mylib.vala', dependencies : valadeps) +# NOTE: This static library is not usable from Vala because it does not carry +# forward the .vapi and .h files generated by Valac to the next BuildTarget. +# Will have to be fixed with https://github.com/mesonbuild/meson/issues/891 +m = static_library('extractedlib', + objects : l.extract_all_objects(), + install : true) e = executable('valaprog', 'prog.vala', link_with : l, |