aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/80 declare dep
diff options
context:
space:
mode:
Diffstat (limited to 'meson/test cases/common/80 declare dep')
-rw-r--r--meson/test cases/common/80 declare dep/entity/entity.h4
-rw-r--r--meson/test cases/common/80 declare dep/entity/entity1.c9
-rw-r--r--meson/test cases/common/80 declare dep/entity/entity2.c5
-rw-r--r--meson/test cases/common/80 declare dep/entity/meson.build10
-rw-r--r--meson/test cases/common/80 declare dep/main.c18
-rw-r--r--meson/test cases/common/80 declare dep/meson.build24
6 files changed, 70 insertions, 0 deletions
diff --git a/meson/test cases/common/80 declare dep/entity/entity.h b/meson/test cases/common/80 declare dep/entity/entity.h
new file mode 100644
index 000000000..959a8c30d
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/entity/entity.h
@@ -0,0 +1,4 @@
+#pragma once
+
+int entity_func1(void);
+int entity_func2(void);
diff --git a/meson/test cases/common/80 declare dep/entity/entity1.c b/meson/test cases/common/80 declare dep/entity/entity1.c
new file mode 100644
index 000000000..d124e24e8
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/entity/entity1.c
@@ -0,0 +1,9 @@
+#include"entity.h"
+
+#ifdef USING_ENT
+#error "Entity use flag leaked into entity compilation."
+#endif
+
+int entity_func1(void) {
+ return 5;
+}
diff --git a/meson/test cases/common/80 declare dep/entity/entity2.c b/meson/test cases/common/80 declare dep/entity/entity2.c
new file mode 100644
index 000000000..4e8bb07e1
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/entity/entity2.c
@@ -0,0 +1,5 @@
+#include<entity.h>
+
+int entity_func2(void) {
+ return 9;
+}
diff --git a/meson/test cases/common/80 declare dep/entity/meson.build b/meson/test cases/common/80 declare dep/entity/meson.build
new file mode 100644
index 000000000..469ecd3cb
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/entity/meson.build
@@ -0,0 +1,10 @@
+entity_lib = static_library('entity', 'entity1.c')
+
+entity_dep = declare_dependency(link_with : [[entity_lib]],
+ include_directories : [['.']],
+ sources : 'entity2.c',
+ compile_args : ['-DUSING_ENT=1'],
+ version : '1.2.3',
+ link_args : []) # No simple way of testing linker flags :(.
+
+assert(entity_dep.version().version_compare('==1.2.3'), 'Declare_dep has incorrect version string.')
diff --git a/meson/test cases/common/80 declare dep/main.c b/meson/test cases/common/80 declare dep/main.c
new file mode 100644
index 000000000..62200c943
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/main.c
@@ -0,0 +1,18 @@
+#include<entity.h>
+#include<stdio.h>
+
+#ifndef USING_ENT
+#error "Entity use flag not used for compilation."
+#endif
+
+int main(void) {
+ if(entity_func1() != 5) {
+ printf("Error in func1.\n");
+ return 1;
+ }
+ if(entity_func2() != 9) {
+ printf("Error in func2.\n");
+ return 2;
+ }
+ return 0;
+}
diff --git a/meson/test cases/common/80 declare dep/meson.build b/meson/test cases/common/80 declare dep/meson.build
new file mode 100644
index 000000000..e427defaf
--- /dev/null
+++ b/meson/test cases/common/80 declare dep/meson.build
@@ -0,0 +1,24 @@
+project('declare dependency', 'c')
+
+subdir('entity')
+
+exe = executable('dep_user', 'main.c',
+ dependencies : entity_dep)
+test('dep', exe)
+
+# just to make sure [] works as a no-op dep here
+executable('dummy', 'main.c',
+ dependencies : [entity_dep, []])
+
+# simple case
+declare_dependency(dependencies : entity_dep)
+
+# nested deps should be flattened
+declare_dependency(dependencies : [entity_dep])
+declare_dependency(dependencies : [[entity_dep]])
+
+# check that [] properly works as a no-op dep in declare_dependency() too
+declare_dependency(dependencies : [])
+declare_dependency(dependencies : [[]])
+declare_dependency(dependencies : [entity_dep, []])
+declare_dependency(dependencies : [[], entity_dep])