summaryrefslogtreecommitdiff
path: root/test cases/frameworks/37 gir cpp
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2023-08-27 11:02:09 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-08-29 13:34:23 -0400
commit494bdbd3345d1c2d20cf2520249962bd32fc61e6 (patch)
tree9c543fe1c84c8d2b58f97f39f847ed8c53a9be63 /test cases/frameworks/37 gir cpp
parent4eb9c84cf97427a11af7ec928c849e4289862202 (diff)
downloadmeson-494bdbd3345d1c2d20cf2520249962bd32fc61e6.tar.gz
gnome: Fix crash in gtkdoc and generate_gir in C++ projects
gtkdoc() and generate_gir() methods assumes there is a C compiler, but pure C++ projects might not add it explicitly. Fixes: #12162
Diffstat (limited to 'test cases/frameworks/37 gir cpp')
-rw-r--r--test cases/frameworks/37 gir cpp/foo.cpp5
-rw-r--r--test cases/frameworks/37 gir cpp/foo.h1
-rw-r--r--test cases/frameworks/37 gir cpp/meson.build16
-rw-r--r--test cases/frameworks/37 gir cpp/test.json3
4 files changed, 25 insertions, 0 deletions
diff --git a/test cases/frameworks/37 gir cpp/foo.cpp b/test cases/frameworks/37 gir cpp/foo.cpp
new file mode 100644
index 000000000..15fa26980
--- /dev/null
+++ b/test cases/frameworks/37 gir cpp/foo.cpp
@@ -0,0 +1,5 @@
+#include "foo.h"
+
+int foo_do_something(void) {
+ return 42;
+}
diff --git a/test cases/frameworks/37 gir cpp/foo.h b/test cases/frameworks/37 gir cpp/foo.h
new file mode 100644
index 000000000..cac03d3c1
--- /dev/null
+++ b/test cases/frameworks/37 gir cpp/foo.h
@@ -0,0 +1 @@
+int foo_do_something(void);
diff --git a/test cases/frameworks/37 gir cpp/meson.build b/test cases/frameworks/37 gir cpp/meson.build
new file mode 100644
index 000000000..c8bf42812
--- /dev/null
+++ b/test cases/frameworks/37 gir cpp/meson.build
@@ -0,0 +1,16 @@
+project('gnome module without C', 'cpp')
+
+gi = dependency('gobject-introspection-1.0', required: false)
+if not gi.found()
+ error('MESON_SKIP_TEST gobject-introspection not found.')
+endif
+
+gnome = import('gnome')
+
+lib = library('foo++', 'foo.cpp')
+gnome.generate_gir(
+ lib,
+ sources: ['foo.cpp', 'foo.h'],
+ namespace: 'foo',
+ nsversion: meson.project_version(),
+)
diff --git a/test cases/frameworks/37 gir cpp/test.json b/test cases/frameworks/37 gir cpp/test.json
new file mode 100644
index 000000000..a9d74fb8a
--- /dev/null
+++ b/test cases/frameworks/37 gir cpp/test.json
@@ -0,0 +1,3 @@
+{
+ "skip_on_jobname": ["azure", "macos", "msys2"]
+}