summaryrefslogtreecommitdiffstats
path: root/test cases/common/86 private include
diff options
context:
space:
mode:
Diffstat (limited to 'test cases/common/86 private include')
-rw-r--r--test cases/common/86 private include/meson.build4
-rwxr-xr-xtest cases/common/86 private include/stlib/compiler.py32
-rw-r--r--test cases/common/86 private include/stlib/foo1.def0
-rw-r--r--test cases/common/86 private include/stlib/foo2.def0
-rw-r--r--test cases/common/86 private include/stlib/meson.build12
-rw-r--r--test cases/common/86 private include/user/libuser.c6
-rw-r--r--test cases/common/86 private include/user/meson.build5
7 files changed, 59 insertions, 0 deletions
diff --git a/test cases/common/86 private include/meson.build b/test cases/common/86 private include/meson.build
new file mode 100644
index 0000000..2485fbf
--- /dev/null
+++ b/test cases/common/86 private include/meson.build
@@ -0,0 +1,4 @@
+project('access private', 'c')
+
+subdir('stlib')
+subdir('user')
diff --git a/test cases/common/86 private include/stlib/compiler.py b/test cases/common/86 private include/stlib/compiler.py
new file mode 100755
index 0000000..7a2effa
--- /dev/null
+++ b/test cases/common/86 private include/stlib/compiler.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+import sys, os
+
+assert len(sys.argv) == 3
+
+h_templ = '''#pragma once
+unsigned int %s(void);
+'''
+
+c_templ = '''#include"%s.h"
+
+unsigned int %s(void) {
+ return 0;
+}
+'''
+
+ifile = sys.argv[1]
+outdir = sys.argv[2]
+
+base = os.path.splitext(os.path.split(ifile)[-1])[0]
+
+cfile = os.path.join(outdir, base + '.c')
+hfile = os.path.join(outdir, base + '.h')
+
+c_code = c_templ % (base, base)
+h_code = h_templ % base
+
+with open(cfile, 'w') as f:
+ f.write(c_code)
+with open(hfile, 'w') as f:
+ f.write(h_code)
diff --git a/test cases/common/86 private include/stlib/foo1.def b/test cases/common/86 private include/stlib/foo1.def
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/common/86 private include/stlib/foo1.def
diff --git a/test cases/common/86 private include/stlib/foo2.def b/test cases/common/86 private include/stlib/foo2.def
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/common/86 private include/stlib/foo2.def
diff --git a/test cases/common/86 private include/stlib/meson.build b/test cases/common/86 private include/stlib/meson.build
new file mode 100644
index 0000000..8d70650
--- /dev/null
+++ b/test cases/common/86 private include/stlib/meson.build
@@ -0,0 +1,12 @@
+genbin = find_program('compiler.py')
+
+gen = generator(genbin,
+ output : ['@BASENAME@.h', '@BASENAME@.c'],
+ arguments : ['@INPUT@', '@BUILD_DIR@']
+ )
+
+defs = ['foo1.def', 'foo2.def']
+generated = gen.process(defs)
+
+stlib = static_library('st', generated)
+st_priv_inc = stlib.private_dir_include()
diff --git a/test cases/common/86 private include/user/libuser.c b/test cases/common/86 private include/user/libuser.c
new file mode 100644
index 0000000..c172486
--- /dev/null
+++ b/test cases/common/86 private include/user/libuser.c
@@ -0,0 +1,6 @@
+#include"foo1.h"
+#include"foo2.h"
+
+int main(void) {
+ return foo1() + foo2();
+}
diff --git a/test cases/common/86 private include/user/meson.build b/test cases/common/86 private include/user/meson.build
new file mode 100644
index 0000000..ab88b1d
--- /dev/null
+++ b/test cases/common/86 private include/user/meson.build
@@ -0,0 +1,5 @@
+exe = executable('libuser', 'libuser.c',
+ link_with : stlib,
+ include_directories : st_priv_inc)
+
+test('libuser', exe)