diff options
Diffstat (limited to 'meson/test cases/common/80 declare dep')
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]) |