summaryrefslogtreecommitdiff
path: root/test cases/unit
diff options
context:
space:
mode:
authorDan Kegel <dank@kegel.com>2020-05-07 10:15:06 -0700
committerDan Kegel <dank@kegel.com>2020-05-16 20:25:58 +0000
commitd7235c5905fa98207d90f3ad34bf590493498d5b (patch)
treec93233a31beaefd89fdd9c18e4e566c7918a2b1e /test cases/unit
parentefb86088bcf8960db440eadcd11c0e073c80ab52 (diff)
downloadmeson-d7235c5905fa98207d90f3ad34bf590493498d5b.tar.gz
Let .pc files specify rpath.
Fixes #4027
Diffstat (limited to 'test cases/unit')
-rw-r--r--test cases/unit/40 external, internal library rpath/built library/meson.build5
-rw-r--r--test cases/unit/40 external, internal library rpath/external library/meson.build6
-rw-r--r--test cases/unit/76 pkgconfig prefixes/client/client.c8
-rw-r--r--test cases/unit/76 pkgconfig prefixes/client/meson.build3
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val1/meson.build5
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val1/val1.c3
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val1/val1.h1
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val2/meson.build8
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val2/val2.c4
-rw-r--r--test cases/unit/76 pkgconfig prefixes/val2/val2.h1
10 files changed, 41 insertions, 3 deletions
diff --git a/test cases/unit/40 external, internal library rpath/built library/meson.build b/test cases/unit/40 external, internal library rpath/built library/meson.build
index f63399659..07fe7bb2b 100644
--- a/test cases/unit/40 external, internal library rpath/built library/meson.build
+++ b/test cases/unit/40 external, internal library rpath/built library/meson.build
@@ -18,4 +18,9 @@ l = shared_library('bar_built', 'bar.c',
if host_machine.system() == 'darwin'
e = executable('prog', 'prog.c', link_with: l, install: true)
test('testprog', e)
+elif host_machine.system() == 'linux'
+ e = executable('prog', 'prog.c', link_with: l, install: true,
+ install_rpath: '$ORIGIN/..' / get_option('libdir'),
+ )
+ test('testprog', e)
endif
diff --git a/test cases/unit/40 external, internal library rpath/external library/meson.build b/test cases/unit/40 external, internal library rpath/external library/meson.build
index 3c311f592..06ffa0f72 100644
--- a/test cases/unit/40 external, internal library rpath/external library/meson.build
+++ b/test cases/unit/40 external, internal library rpath/external library/meson.build
@@ -4,16 +4,16 @@ shared_library('foo_in_system', 'foo.c', install : true)
l = shared_library('faa_pkg', 'faa.c', install: true)
if host_machine.system() == 'darwin'
- frameworks = ['-framework', 'CoreFoundation', '-framework', 'CoreMedia']
+ ldflags = ['-framework', 'CoreFoundation', '-framework', 'CoreMedia']
allow_undef_args = ['-Wl,-undefined,dynamic_lookup']
else
- frameworks = []
+ ldflags = ['-Wl,-rpath,${libdir}']
allow_undef_args = []
endif
pkg = import('pkgconfig')
pkg.generate(name: 'faa_pkg',
- libraries: [l] + frameworks,
+ libraries: [l] + ldflags,
description: 'FAA, a pkg-config test library')
# cygwin DLLs can't have undefined symbols
diff --git a/test cases/unit/76 pkgconfig prefixes/client/client.c b/test cases/unit/76 pkgconfig prefixes/client/client.c
new file mode 100644
index 000000000..be9beadb0
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/client/client.c
@@ -0,0 +1,8 @@
+#include <val2.h>
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+ printf("%d\n", val2());
+ return 0;
+}
diff --git a/test cases/unit/76 pkgconfig prefixes/client/meson.build b/test cases/unit/76 pkgconfig prefixes/client/meson.build
new file mode 100644
index 000000000..491937b7b
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/client/meson.build
@@ -0,0 +1,3 @@
+project('client', 'c')
+val2_dep = dependency('val2')
+executable('client', 'client.c', dependencies : [val2_dep], install: true)
diff --git a/test cases/unit/76 pkgconfig prefixes/val1/meson.build b/test cases/unit/76 pkgconfig prefixes/val1/meson.build
new file mode 100644
index 000000000..cc63e3143
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val1/meson.build
@@ -0,0 +1,5 @@
+project('val1', 'c')
+val1 = shared_library('val1', 'val1.c', install: true)
+install_headers('val1.h')
+pkgconfig = import('pkgconfig')
+pkgconfig.generate(val1, libraries : ['-Wl,-rpath,${libdir}'])
diff --git a/test cases/unit/76 pkgconfig prefixes/val1/val1.c b/test cases/unit/76 pkgconfig prefixes/val1/val1.c
new file mode 100644
index 000000000..591e52162
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val1/val1.c
@@ -0,0 +1,3 @@
+#include "val1.h"
+
+int val1(void) { return 1; }
diff --git a/test cases/unit/76 pkgconfig prefixes/val1/val1.h b/test cases/unit/76 pkgconfig prefixes/val1/val1.h
new file mode 100644
index 000000000..6bd435eb9
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val1/val1.h
@@ -0,0 +1 @@
+int val1(void);
diff --git a/test cases/unit/76 pkgconfig prefixes/val2/meson.build b/test cases/unit/76 pkgconfig prefixes/val2/meson.build
new file mode 100644
index 000000000..ce69481ec
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val2/meson.build
@@ -0,0 +1,8 @@
+project('val2', 'c')
+val1_dep = dependency('val1')
+val2 = shared_library('val2', 'val2.c',
+ dependencies : [val1_dep],
+ install: true)
+install_headers('val2.h')
+pkgconfig = import('pkgconfig')
+pkgconfig.generate(val2, libraries : ['-Wl,-rpath,${libdir}'])
diff --git a/test cases/unit/76 pkgconfig prefixes/val2/val2.c b/test cases/unit/76 pkgconfig prefixes/val2/val2.c
new file mode 100644
index 000000000..d7d485730
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val2/val2.c
@@ -0,0 +1,4 @@
+#include "val1.h"
+#include "val2.h"
+
+int val2(void) { return val1() + 2; }
diff --git a/test cases/unit/76 pkgconfig prefixes/val2/val2.h b/test cases/unit/76 pkgconfig prefixes/val2/val2.h
new file mode 100644
index 000000000..995023da2
--- /dev/null
+++ b/test cases/unit/76 pkgconfig prefixes/val2/val2.h
@@ -0,0 +1 @@
+int val2(void);