aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/48 file grabber
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/common/48 file grabber')
-rw-r--r--meson/test cases/common/48 file grabber/a.c1
-rw-r--r--meson/test cases/common/48 file grabber/b.c1
-rw-r--r--meson/test cases/common/48 file grabber/c.c1
-rw-r--r--meson/test cases/common/48 file grabber/grabber.bat5
-rwxr-xr-xmeson/test cases/common/48 file grabber/grabber.sh5
-rw-r--r--meson/test cases/common/48 file grabber/grabber2.bat5
-rw-r--r--meson/test cases/common/48 file grabber/meson.build35
-rw-r--r--meson/test cases/common/48 file grabber/prog.c7
-rw-r--r--meson/test cases/common/48 file grabber/subdir/meson.build5
-rw-r--r--meson/test cases/common/48 file grabber/subdir/suba.c1
-rw-r--r--meson/test cases/common/48 file grabber/subdir/subb.c1
-rw-r--r--meson/test cases/common/48 file grabber/subdir/subc.c1
-rw-r--r--meson/test cases/common/48 file grabber/subdir/subprog.c7
13 files changed, 75 insertions, 0 deletions
diff --git a/meson/test cases/common/48 file grabber/a.c b/meson/test cases/common/48 file grabber/a.c
new file mode 100644
index 000000000..8f63c2de5
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/a.c
@@ -0,0 +1 @@
+int funca(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/b.c b/meson/test cases/common/48 file grabber/b.c
new file mode 100644
index 000000000..f38baca8c
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/b.c
@@ -0,0 +1 @@
+int funcb(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/c.c b/meson/test cases/common/48 file grabber/c.c
new file mode 100644
index 000000000..2e8abbfc9
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/c.c
@@ -0,0 +1 @@
+int funcc(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/grabber.bat b/meson/test cases/common/48 file grabber/grabber.bat
new file mode 100644
index 000000000..86603145c
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/grabber.bat
@@ -0,0 +1,5 @@
+@ECHO OFF
+echo a.c
+echo b.c
+echo c.c
+echo prog.c
diff --git a/meson/test cases/common/48 file grabber/grabber.sh b/meson/test cases/common/48 file grabber/grabber.sh
new file mode 100755
index 000000000..5e8f4b947
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/grabber.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+for i in *.c; do
+ echo $i
+done
diff --git a/meson/test cases/common/48 file grabber/grabber2.bat b/meson/test cases/common/48 file grabber/grabber2.bat
new file mode 100644
index 000000000..d1a3f98ba
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/grabber2.bat
@@ -0,0 +1,5 @@
+@ECHO OFF
+echo suba.c
+echo subb.c
+echo subc.c
+echo subprog.c
diff --git a/meson/test cases/common/48 file grabber/meson.build b/meson/test cases/common/48 file grabber/meson.build
new file mode 100644
index 000000000..e332c0b1e
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/meson.build
@@ -0,0 +1,35 @@
+project('grabber', 'c')
+
+# What this script does is NOT reliable. Simply adding a file in this directory
+# will NOT make it automatically appear in the build. You have to manually
+# re-invoke Meson (not just Ninja) for that to happen. The simplest way
+# is to touch meson-private/coredata.dat.
+
+# This is not the recommended way to do things, but if the tradeoffs are
+# acceptable to you, then we're certainly not going to stop you. Just don't
+# file bugs when it fails. :)
+
+if build_machine.system() == 'windows'
+ c = run_command('grabber.bat')
+ grabber = find_program('grabber2.bat')
+else
+ c = run_command('grabber.sh')
+ grabber = find_program('grabber.sh')
+endif
+
+
+# First test running command explicitly.
+if c.returncode() != 0
+ error('Executing script failed.')
+endif
+
+newline = '''
+'''
+
+sources = c.stdout().strip().split(newline)
+
+e = executable('prog', sources)
+test('grabtest', e)
+
+# Then test using program with find_program
+subdir('subdir')
diff --git a/meson/test cases/common/48 file grabber/prog.c b/meson/test cases/common/48 file grabber/prog.c
new file mode 100644
index 000000000..ff55723e1
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/prog.c
@@ -0,0 +1,7 @@
+int funca(void);
+int funcb(void);
+int funcc(void);
+
+int main(void) {
+ return funca() + funcb() + funcc();
+}
diff --git a/meson/test cases/common/48 file grabber/subdir/meson.build b/meson/test cases/common/48 file grabber/subdir/meson.build
new file mode 100644
index 000000000..230d6f7de
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/subdir/meson.build
@@ -0,0 +1,5 @@
+sc = run_command(grabber)
+subsources = sc.stdout().strip().split(newline)
+
+se = executable('subprog', subsources)
+test('subgrabtest', se)
diff --git a/meson/test cases/common/48 file grabber/subdir/suba.c b/meson/test cases/common/48 file grabber/subdir/suba.c
new file mode 100644
index 000000000..8f63c2de5
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/subdir/suba.c
@@ -0,0 +1 @@
+int funca(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/subdir/subb.c b/meson/test cases/common/48 file grabber/subdir/subb.c
new file mode 100644
index 000000000..f38baca8c
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/subdir/subb.c
@@ -0,0 +1 @@
+int funcb(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/subdir/subc.c b/meson/test cases/common/48 file grabber/subdir/subc.c
new file mode 100644
index 000000000..2e8abbfc9
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/subdir/subc.c
@@ -0,0 +1 @@
+int funcc(void) { return 0; }
diff --git a/meson/test cases/common/48 file grabber/subdir/subprog.c b/meson/test cases/common/48 file grabber/subdir/subprog.c
new file mode 100644
index 000000000..ff55723e1
--- /dev/null
+++ b/meson/test cases/common/48 file grabber/subdir/subprog.c
@@ -0,0 +1,7 @@
+int funca(void);
+int funcb(void);
+int funcc(void);
+
+int main(void) {
+ return funca() + funcb() + funcc();
+}