aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py3
-rw-r--r--test cases/vala/6 static library/installed_files.txt1
-rw-r--r--test cases/vala/6 static library/meson.build6
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,