summaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
Diffstat (limited to 'test cases')
-rw-r--r--test cases/frameworks/38 gettext extractor/meson.build15
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib1/lib1.c10
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib1/lib1.h6
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib1/meson.build3
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib2/lib2.c13
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib2/lib2.h6
-rw-r--r--test cases/frameworks/38 gettext extractor/src/lib2/meson.build3
-rw-r--r--test cases/frameworks/38 gettext extractor/src/main.c8
-rw-r--r--test cases/frameworks/38 gettext extractor/src/meson.build6
-rw-r--r--test cases/frameworks/38 gettext extractor/test.json6
10 files changed, 76 insertions, 0 deletions
diff --git a/test cases/frameworks/38 gettext extractor/meson.build b/test cases/frameworks/38 gettext extractor/meson.build
new file mode 100644
index 000000000..962905a4e
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/meson.build
@@ -0,0 +1,15 @@
+project(
+ 'gettext extractor',
+ 'c',
+ default_options: {'default_library': 'static'},
+ meson_version: '1.8.0',
+)
+
+if not find_program('xgettext', required: false).found()
+ error('MESON_SKIP_TEST xgettext command not found')
+endif
+
+i18n = import('i18n')
+xgettext_args = ['-ktr', '--add-comments=TRANSLATOR:', '--from-code=UTF-8']
+
+subdir('src')
diff --git a/test cases/frameworks/38 gettext extractor/src/lib1/lib1.c b/test cases/frameworks/38 gettext extractor/src/lib1/lib1.c
new file mode 100644
index 000000000..723edda00
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib1/lib1.c
@@ -0,0 +1,10 @@
+#include "lib1.h"
+
+#include <stdio.h>
+
+#define tr(STRING) (STRING)
+
+void say_something(void)
+{
+ printf("%s\n", tr("Something!"));
+}
diff --git a/test cases/frameworks/38 gettext extractor/src/lib1/lib1.h b/test cases/frameworks/38 gettext extractor/src/lib1/lib1.h
new file mode 100644
index 000000000..6199d29c4
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib1/lib1.h
@@ -0,0 +1,6 @@
+#ifndef LIB1_H
+#define LIB1_H
+
+void say_something(void);
+
+#endif
diff --git a/test cases/frameworks/38 gettext extractor/src/lib1/meson.build b/test cases/frameworks/38 gettext extractor/src/lib1/meson.build
new file mode 100644
index 000000000..3ec7fa987
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib1/meson.build
@@ -0,0 +1,3 @@
+lib1 = library('mylib1', 'lib1.c')
+lib1_pot = i18n.xgettext('lib1', lib1, args: xgettext_args)
+lib1_includes = include_directories('.') \ No newline at end of file
diff --git a/test cases/frameworks/38 gettext extractor/src/lib2/lib2.c b/test cases/frameworks/38 gettext extractor/src/lib2/lib2.c
new file mode 100644
index 000000000..051271ec7
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib2/lib2.c
@@ -0,0 +1,13 @@
+#include "lib2.h"
+
+#include <lib1.h>
+
+#include <stdio.h>
+
+#define tr(STRING) (STRING)
+
+void say_something_else(void)
+{
+ say_something();
+ printf("%s\n", tr("Something else!"));
+}
diff --git a/test cases/frameworks/38 gettext extractor/src/lib2/lib2.h b/test cases/frameworks/38 gettext extractor/src/lib2/lib2.h
new file mode 100644
index 000000000..faf693f7c
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib2/lib2.h
@@ -0,0 +1,6 @@
+#ifndef LIB2_H
+#define LIB2_H
+
+void say_something_else(void);
+
+#endif
diff --git a/test cases/frameworks/38 gettext extractor/src/lib2/meson.build b/test cases/frameworks/38 gettext extractor/src/lib2/meson.build
new file mode 100644
index 000000000..ac5e7fe4b
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/lib2/meson.build
@@ -0,0 +1,3 @@
+lib2 = library('mylib2', 'lib2.c', include_directories: lib1_includes, link_with: lib1)
+lib2_pot = i18n.xgettext('lib2', lib2, args: xgettext_args)
+lib2_includes = include_directories('.')
diff --git a/test cases/frameworks/38 gettext extractor/src/main.c b/test cases/frameworks/38 gettext extractor/src/main.c
new file mode 100644
index 000000000..807096bd7
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/main.c
@@ -0,0 +1,8 @@
+#include <lib2.h>
+
+int main(void)
+{
+ say_something_else();
+
+ return 0;
+}
diff --git a/test cases/frameworks/38 gettext extractor/src/meson.build b/test cases/frameworks/38 gettext extractor/src/meson.build
new file mode 100644
index 000000000..27fc81326
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/src/meson.build
@@ -0,0 +1,6 @@
+subdir('lib1')
+subdir('lib2')
+
+main = executable('say', 'main.c', link_with: [lib2], include_directories: lib2_includes)
+
+main_pot = i18n.xgettext('main', main, args: xgettext_args, install: true, install_dir: 'intl', install_tag: 'intl', recursive: true)
diff --git a/test cases/frameworks/38 gettext extractor/test.json b/test cases/frameworks/38 gettext extractor/test.json
new file mode 100644
index 000000000..c5952ffd5
--- /dev/null
+++ b/test cases/frameworks/38 gettext extractor/test.json
@@ -0,0 +1,6 @@
+{
+ "installed": [
+ { "type": "file", "file": "usr/intl/main.pot" }
+ ],
+ "expect_skip_on_jobname": ["azure", "cygwin"]
+}