aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-10-05 20:26:36 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-10-05 20:26:36 +0300
commit606dfed39f25e73de665a10c6a8dc052da0f01f6 (patch)
treeb9aab0bdc2cbdc6bdd15389dc0c671152c9e3e27 /test cases
parentc02009a6989710714cc0e2becc9cad11d4b0381d (diff)
parent68fdef88cbf3a9c0a08b565c40879102f753f19a (diff)
downloadmeson-606dfed39f25e73de665a10c6a8dc052da0f01f6.zip
meson-606dfed39f25e73de665a10c6a8dc052da0f01f6.tar.gz
meson-606dfed39f25e73de665a10c6a8dc052da0f01f6.tar.bz2
Merge pull request #274 from mesonbuild/privinc
Make it possible to expose private directory for header inclusion
Diffstat (limited to 'test cases')
-rw-r--r--test cases/common/93 private include/meson.build4
-rwxr-xr-xtest cases/common/93 private include/stlib/compiler.py30
-rw-r--r--test cases/common/93 private include/stlib/foo1.def0
-rw-r--r--test cases/common/93 private include/stlib/foo2.def0
-rw-r--r--test cases/common/93 private include/stlib/meson.build12
-rw-r--r--test cases/common/93 private include/user/libuser.c6
-rw-r--r--test cases/common/93 private include/user/meson.build5
7 files changed, 57 insertions, 0 deletions
diff --git a/test cases/common/93 private include/meson.build b/test cases/common/93 private include/meson.build
new file mode 100644
index 0000000..2485fbf
--- /dev/null
+++ b/test cases/common/93 private include/meson.build
@@ -0,0 +1,4 @@
+project('access private', 'c')
+
+subdir('stlib')
+subdir('user')
diff --git a/test cases/common/93 private include/stlib/compiler.py b/test cases/common/93 private include/stlib/compiler.py
new file mode 100755
index 0000000..3e74c88
--- /dev/null
+++ b/test cases/common/93 private include/stlib/compiler.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+import sys, os
+
+assert(len(sys.argv) == 3)
+
+h_templ = '''#pragma once
+unsigned int %s();
+'''
+
+c_templ = '''#include"%s.h"
+
+unsigned int %s() {
+ 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
+
+open(cfile, 'w').write(c_code)
+open(hfile, 'w').write(h_code)
diff --git a/test cases/common/93 private include/stlib/foo1.def b/test cases/common/93 private include/stlib/foo1.def
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/common/93 private include/stlib/foo1.def
diff --git a/test cases/common/93 private include/stlib/foo2.def b/test cases/common/93 private include/stlib/foo2.def
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test cases/common/93 private include/stlib/foo2.def
diff --git a/test cases/common/93 private include/stlib/meson.build b/test cases/common/93 private include/stlib/meson.build
new file mode 100644
index 0000000..8d70650
--- /dev/null
+++ b/test cases/common/93 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/93 private include/user/libuser.c b/test cases/common/93 private include/user/libuser.c
new file mode 100644
index 0000000..a74a973
--- /dev/null
+++ b/test cases/common/93 private include/user/libuser.c
@@ -0,0 +1,6 @@
+#include"foo1.h"
+#include"foo2.h"
+
+int main(int argc, char **argv) {
+ return foo1() + foo2();
+}
diff --git a/test cases/common/93 private include/user/meson.build b/test cases/common/93 private include/user/meson.build
new file mode 100644
index 0000000..ab88b1d
--- /dev/null
+++ b/test cases/common/93 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)