summaryrefslogtreecommitdiff
path: root/test cases/frameworks
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-09-25 13:51:07 -0400
committerXavier Claessens <xclaesse@gmail.com>2023-09-09 21:28:22 -0400
commit10708676ade79037f2d2ceeb98500a40a977abef (patch)
treedfe1175738d365c8476df7a629324432543cbb39 /test cases/frameworks
parent5f46ea116c6f80edd3633c03aacd7427ef3d0cec (diff)
downloadmeson-10708676ade79037f2d2ceeb98500a40a977abef.tar.gz
gnome.mkenum_simple(): Fix include path when header is in subdir
It was generating #include with the basename of every header file. That assumes that every directory where there are headers are also included into search path when compiling the .c file. Change to use path relative to current subdir, which can be both in build or source directory. That means that we assume that when the .c file is compiled, the target has a include_directories pointing to the directory where gnome.mkenum_simple() has been called, which is generally '.' and added automatically. Also fix type annotation to only allow str and File sources, other types have never been working, it would require to iterate over custom target outputs, etc. Fixes: #7582
Diffstat (limited to 'test cases/frameworks')
-rw-r--r--test cases/frameworks/7 gnome/mkenums/meson.build10
-rw-r--r--test cases/frameworks/7 gnome/mkenums/subdir/h2.h.in5
-rw-r--r--test cases/frameworks/7 gnome/mkenums/subdir/h3.h5
-rw-r--r--test cases/frameworks/7 gnome/mkenums/subdir/meson.build2
4 files changed, 22 insertions, 0 deletions
diff --git a/test cases/frameworks/7 gnome/mkenums/meson.build b/test cases/frameworks/7 gnome/mkenums/meson.build
index 4cf4dcf8a..2886be91a 100644
--- a/test cases/frameworks/7 gnome/mkenums/meson.build
+++ b/test cases/frameworks/7 gnome/mkenums/meson.build
@@ -162,3 +162,13 @@ main = configure_file(
enumexe6 = executable('enumprog6', main, enums_c2, enums_h6,
dependencies : gobj)
test('enum test 4', enumexe6)
+
+# Test with headers coming from other directories
+# https://github.com/mesonbuild/meson/pull/10855
+subdir('subdir')
+enums7 = gnome.mkenums_simple('enums7', sources: ['meson-sample.h', h2, h3])
+main = configure_file(
+ input : 'main.c',
+ output : 'mai7.c',
+ configuration : {'ENUM_FILE': 'enums7.h'})
+test('enums7 test', executable('enumprog7', main, enums7, dependencies : gobj))
diff --git a/test cases/frameworks/7 gnome/mkenums/subdir/h2.h.in b/test cases/frameworks/7 gnome/mkenums/subdir/h2.h.in
new file mode 100644
index 000000000..7b40c4be1
--- /dev/null
+++ b/test cases/frameworks/7 gnome/mkenums/subdir/h2.h.in
@@ -0,0 +1,5 @@
+#pragma once
+
+typedef enum {
+ MESON_SUBDIR_FOO,
+} MesonSubdir;
diff --git a/test cases/frameworks/7 gnome/mkenums/subdir/h3.h b/test cases/frameworks/7 gnome/mkenums/subdir/h3.h
new file mode 100644
index 000000000..9049d5c22
--- /dev/null
+++ b/test cases/frameworks/7 gnome/mkenums/subdir/h3.h
@@ -0,0 +1,5 @@
+#pragma once
+
+typedef enum {
+ MESON_SUBDIR2_FOO,
+} MesonSubdir2;
diff --git a/test cases/frameworks/7 gnome/mkenums/subdir/meson.build b/test cases/frameworks/7 gnome/mkenums/subdir/meson.build
new file mode 100644
index 000000000..0b03846f2
--- /dev/null
+++ b/test cases/frameworks/7 gnome/mkenums/subdir/meson.build
@@ -0,0 +1,2 @@
+h2 = configure_file(input: 'h2.h.in', output: 'h2.h', copy: true)
+h3 = files('h3.h')