aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-09-18 23:50:12 -0400
committerXavier Claessens <xclaesse@gmail.com>2019-10-01 13:06:45 -0400
commit19fc692b2554a03c0452001ca17d635f2445fafa (patch)
treea11a45d9abdc7a6364ea333e7b88783cf8baffee /test cases
parentdc5ad1fad953d8cc2191aed1bd6c7c7db83faf99 (diff)
downloadmeson-19fc692b2554a03c0452001ca17d635f2445fafa.zip
meson-19fc692b2554a03c0452001ca17d635f2445fafa.tar.gz
meson-19fc692b2554a03c0452001ca17d635f2445fafa.tar.bz2
pkgconfig: Include dependencies of uninstalled static libraries
Diffstat (limited to 'test cases')
-rw-r--r--test cases/unit/69 static link/lib/func7.c4
-rw-r--r--test cases/unit/69 static link/lib/func8.c6
-rw-r--r--test cases/unit/69 static link/lib/func9.c6
-rw-r--r--test cases/unit/69 static link/lib/meson.build15
-rw-r--r--test cases/unit/69 static link/meson.build9
-rw-r--r--test cases/unit/69 static link/test4.c6
6 files changed, 46 insertions, 0 deletions
diff --git a/test cases/unit/69 static link/lib/func7.c b/test cases/unit/69 static link/lib/func7.c
new file mode 100644
index 0000000..8c1a536
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func7.c
@@ -0,0 +1,4 @@
+int func7()
+{
+ return 1;
+}
diff --git a/test cases/unit/69 static link/lib/func8.c b/test cases/unit/69 static link/lib/func8.c
new file mode 100644
index 0000000..b7b6cd5
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func8.c
@@ -0,0 +1,6 @@
+int func7();
+
+int func8()
+{
+ return func7() + 1;
+}
diff --git a/test cases/unit/69 static link/lib/func9.c b/test cases/unit/69 static link/lib/func9.c
new file mode 100644
index 0000000..852252d
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func9.c
@@ -0,0 +1,6 @@
+int func8();
+
+int func9()
+{
+ return func8() + 1;
+}
diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build
index 9bd3d19..309543c 100644
--- a/test cases/unit/69 static link/lib/meson.build
+++ b/test cases/unit/69 static link/lib/meson.build
@@ -26,3 +26,18 @@ libfunc6 = both_libraries('func6', 'func6.c',
link_with : libfunc5,
install : true)
pkg.generate(libfunc6)
+
+# libfunc9 should contain both func8() and func9() but not func7() because that
+# one gets installed. Also test that link_with and link_whole works the same way
+# because libfunc8 is uninstalled.
+libfunc7 = static_library('func7', 'func7.c',
+ install : true)
+libfunc8 = static_library('func8', 'func8.c',
+ link_with : libfunc7,
+ install : false)
+libfunc9_linkwith = static_library('func9_linkwith', 'func9.c',
+ link_with : libfunc8,
+ install : true)
+libfunc9_linkwhole = static_library('func9_linkwhole', 'func9.c',
+ link_whole : libfunc8,
+ install : true)
diff --git a/test cases/unit/69 static link/meson.build b/test cases/unit/69 static link/meson.build
index 307139a..8ebcf5e 100644
--- a/test cases/unit/69 static link/meson.build
+++ b/test cases/unit/69 static link/meson.build
@@ -17,3 +17,12 @@ test('test3-static', executable('test3-static', 'test3.c',
func6_shared_dep = dependency('func6', static : false)
test('test3-shared', executable('test3-shared', 'test3.c',
dependencies : func6_shared_dep))
+
+# Verify that installed libfunc9.a contains func8() and func8() but not func7()
+func7_dep = cc.find_library('func7')
+func9_linkwhole_dep = cc.find_library('func9_linkwhole')
+test('test4-linkwhole', executable('test4-linkwhole', 'test4.c',
+ dependencies : [func7_dep, func9_linkwhole_dep]))
+func9_linkwith_dep = cc.find_library('func9_linkwith')
+test('test4-linkwith', executable('test4-linkwith', 'test4.c',
+ dependencies : [func7_dep, func9_linkwith_dep]))
diff --git a/test cases/unit/69 static link/test4.c b/test cases/unit/69 static link/test4.c
new file mode 100644
index 0000000..7c281e0
--- /dev/null
+++ b/test cases/unit/69 static link/test4.c
@@ -0,0 +1,6 @@
+int func9();
+
+int main(int argc, char *argv[])
+{
+ return func9() == 3 ? 0 : 1;
+}