aboutsummaryrefslogtreecommitdiff
path: root/test cases/vala
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2016-10-04 16:22:52 -0400
committerPatrick Griffis <tingping@tingping.se>2016-10-21 02:23:54 -0400
commitbae7d7b3d7ed524083455d451c87fcb1b1e2854f (patch)
treeca20661c818d3c9b3e82cd1f58fe097affdc286c /test cases/vala
parent263cb6a5f0dcbffdf25e159b3bfa07988838aae9 (diff)
downloadmeson-bae7d7b3d7ed524083455d451c87fcb1b1e2854f.zip
meson-bae7d7b3d7ed524083455d451c87fcb1b1e2854f.tar.gz
meson-bae7d7b3d7ed524083455d451c87fcb1b1e2854f.tar.bz2
gnome: Add generate_vapi() function
This allows C projects to generate vapi bindings from gir files and returns a dependency that can be used by Vala.
Diffstat (limited to 'test cases/vala')
-rw-r--r--test cases/vala/12 generated vapi/installed_files.txt7
-rw-r--r--test cases/vala/12 generated vapi/libbar/bar.c12
-rw-r--r--test cases/vala/12 generated vapi/libbar/bar.h5
-rw-r--r--test cases/vala/12 generated vapi/libbar/meson.build33
-rw-r--r--test cases/vala/12 generated vapi/libfoo/foo.c11
-rw-r--r--test cases/vala/12 generated vapi/libfoo/foo.h5
-rw-r--r--test cases/vala/12 generated vapi/libfoo/meson.build36
-rw-r--r--test cases/vala/12 generated vapi/main.vala9
-rw-r--r--test cases/vala/12 generated vapi/meson.build13
9 files changed, 131 insertions, 0 deletions
diff --git a/test cases/vala/12 generated vapi/installed_files.txt b/test cases/vala/12 generated vapi/installed_files.txt
new file mode 100644
index 0000000..5993d01
--- /dev/null
+++ b/test cases/vala/12 generated vapi/installed_files.txt
@@ -0,0 +1,7 @@
+usr/bin/vapigen-test
+usr/lib/libfoo.so
+usr/lib/libbar.so
+usr/share/vala/vapi/foo-1.0.vapi
+usr/share/vala/vapi/foo-1.0.deps
+usr/share/vala/vapi/bar-1.0.vapi
+usr/share/vala/vapi/bar-1.0.deps
diff --git a/test cases/vala/12 generated vapi/libbar/bar.c b/test cases/vala/12 generated vapi/libbar/bar.c
new file mode 100644
index 0000000..f0f5cb8
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libbar/bar.c
@@ -0,0 +1,12 @@
+#include "bar.h"
+#include "foo.h"
+
+/**
+ * bar_return_success:
+ *
+ * Returns 0
+ */
+int bar_return_success(void)
+{
+ return foo_return_success();
+}
diff --git a/test cases/vala/12 generated vapi/libbar/bar.h b/test cases/vala/12 generated vapi/libbar/bar.h
new file mode 100644
index 0000000..165b104
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libbar/bar.h
@@ -0,0 +1,5 @@
+#include <glib-object.h>
+
+#pragma once
+
+int bar_return_success(void);
diff --git a/test cases/vala/12 generated vapi/libbar/meson.build b/test cases/vala/12 generated vapi/libbar/meson.build
new file mode 100644
index 0000000..6482504
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libbar/meson.build
@@ -0,0 +1,33 @@
+libbar_sources = [
+ 'bar.c',
+ 'bar.h',
+]
+
+libbar_deps = [
+ dependency('gobject-2.0'),
+ libfoo_dep,
+]
+
+libbar = shared_library('bar', libbar_sources,
+ dependencies: libbar_deps,
+ install: true,
+)
+
+libbar_api_ver = '1.0'
+
+libbar_gir = gnome.generate_gir(libbar,
+ sources: libbar_sources,
+ namespace: 'Bar',
+ nsversion: libbar_api_ver,
+ packages: 'gobject-2.0',
+ symbol_prefix: 'bar',
+ extra_args: [
+ '--c-include=bar.h',
+ ],
+)
+
+libbar_vapi = gnome.generate_vapi('bar-' + libbar_api_ver,
+ sources: libbar_gir[0],
+ packages: libfoo_vapi,
+ install: true,
+)
diff --git a/test cases/vala/12 generated vapi/libfoo/foo.c b/test cases/vala/12 generated vapi/libfoo/foo.c
new file mode 100644
index 0000000..0413ac5
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libfoo/foo.c
@@ -0,0 +1,11 @@
+#include "foo.h"
+
+/**
+ * foo_return_success:
+ *
+ * Returns 0
+ */
+int foo_return_success(void)
+{
+ return 0;
+}
diff --git a/test cases/vala/12 generated vapi/libfoo/foo.h b/test cases/vala/12 generated vapi/libfoo/foo.h
new file mode 100644
index 0000000..f09256d
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libfoo/foo.h
@@ -0,0 +1,5 @@
+#include <glib-object.h>
+
+#pragma once
+
+int foo_return_success(void);
diff --git a/test cases/vala/12 generated vapi/libfoo/meson.build b/test cases/vala/12 generated vapi/libfoo/meson.build
new file mode 100644
index 0000000..482c8fe
--- /dev/null
+++ b/test cases/vala/12 generated vapi/libfoo/meson.build
@@ -0,0 +1,36 @@
+libfoo_sources = [
+ 'foo.c',
+ 'foo.h',
+]
+
+libfoo_deps = [
+ dependency('gobject-2.0')
+]
+
+libfoo = shared_library('foo', libfoo_sources,
+ dependencies: libfoo_deps,
+ install: true,
+)
+
+libfoo_api_ver = '1.0'
+
+libfoo_gir = gnome.generate_gir(libfoo,
+ sources: libfoo_sources,
+ namespace: 'Foo',
+ nsversion: libfoo_api_ver,
+ packages: 'gobject-2.0',
+ symbol_prefix: 'foo',
+ extra_args: [
+ '--c-include=foo.h',
+ ],
+)
+
+libfoo_vapi = gnome.generate_vapi('foo-' + libfoo_api_ver,
+ sources: libfoo_gir[0],
+ install: true,
+)
+
+libfoo_dep = declare_dependency(
+ link_with: libfoo,
+ include_directories: include_directories('.'),
+)
diff --git a/test cases/vala/12 generated vapi/main.vala b/test cases/vala/12 generated vapi/main.vala
new file mode 100644
index 0000000..303ab33
--- /dev/null
+++ b/test cases/vala/12 generated vapi/main.vala
@@ -0,0 +1,9 @@
+using Foo;
+using Bar;
+
+class Main : GLib.Object {
+ public static int main(string[] args) {
+ var ignore = Foo.return_success();
+ return Bar.return_success();
+ }
+}
diff --git a/test cases/vala/12 generated vapi/meson.build b/test cases/vala/12 generated vapi/meson.build
new file mode 100644
index 0000000..82f0c44
--- /dev/null
+++ b/test cases/vala/12 generated vapi/meson.build
@@ -0,0 +1,13 @@
+project('vapi-test', ['c', 'vala'])
+
+gnome = import('gnome')
+subdir('libfoo')
+subdir('libbar')
+
+vapiexe = executable('vapigen-test',
+ 'main.vala',
+ dependencies: [dependency('gobject-2.0'), libbar_vapi],
+ install: true,
+)
+
+test('vapigen-test', vapiexe)