diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/common/88 dep fallback | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/common/88 dep fallback')
8 files changed, 100 insertions, 0 deletions
diff --git a/meson/test cases/common/88 dep fallback/gensrc.py b/meson/test cases/common/88 dep fallback/gensrc.py new file mode 100644 index 000000000..ff42ac359 --- /dev/null +++ b/meson/test cases/common/88 dep fallback/gensrc.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +import sys +import shutil + +shutil.copyfile(sys.argv[1], sys.argv[2]) diff --git a/meson/test cases/common/88 dep fallback/meson.build b/meson/test cases/common/88 dep fallback/meson.build new file mode 100644 index 000000000..2e962f6c3 --- /dev/null +++ b/meson/test cases/common/88 dep fallback/meson.build @@ -0,0 +1,38 @@ +project('dep fallback', 'c') + +bob = dependency('boblib', fallback : ['boblib', 'bob_dep'], required: false, + default_options : 'warning_level=1') +if not bob.found() + error('Bob is actually needed') +endif + +# boblib subproject exists, but bobinc is not a dependency variable +sita = dependency('sitalib', fallback : ['boblib', 'bobinc'], required: false) +assert(not sita.found()) +# boblib subproject exists, but sita_dep doesn't exist +sita = dependency('sitalib', fallback : ['boblib', 'sita_dep'], required: false) +assert(not sita.found()) +# boblib has been configured so zlib cannot be searched on the system +zlib = dependency('zlib', fallback : ['boblib', 'notfound_dep'], required: false) +assert(not zlib.found()) +# boblib has been configured so zlib cannot be searched on the system. +# Not variable name provided and the subproject does not override zlib. +zlib = dependency('zlib', fallback : 'boblib', required: false) +assert(not zlib.found()) + +# jimmylib subproject doesn't exist +jimmy = dependency('jimmylib', fallback : ['jimmylib', 'jimmy_dep'], required: false) +# dummylib subproject fails to configure +dummy = dependency('dummylib', fallback : ['dummylib', 'dummy_dep'], required: false) + +gensrc_py = find_program('gensrc.py') +gensrc = custom_target('gensrc.c', + input : 'tester.c', + output : 'gensrc.c', + command : [gensrc_py, '@INPUT@', '@OUTPUT@']) + +exe = executable('bobtester', + [gensrc], + dependencies : bob) + +test('bobtester', exe) diff --git a/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.c b/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.c new file mode 100644 index 000000000..52cf4795e --- /dev/null +++ b/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.c @@ -0,0 +1,8 @@ +#include"bob.h" + +#ifdef _MSC_VER +__declspec(dllexport) +#endif +const char* get_bob(void) { + return "bob"; +} diff --git a/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.h b/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.h new file mode 100644 index 000000000..8dd4b334d --- /dev/null +++ b/meson/test cases/common/88 dep fallback/subprojects/boblib/bob.h @@ -0,0 +1,6 @@ +#pragma once + +#ifdef _MSC_VER +__declspec(dllimport) +#endif +const char* get_bob(void); diff --git a/meson/test cases/common/88 dep fallback/subprojects/boblib/genbob.py b/meson/test cases/common/88 dep fallback/subprojects/boblib/genbob.py new file mode 100644 index 000000000..34af7790e --- /dev/null +++ b/meson/test cases/common/88 dep fallback/subprojects/boblib/genbob.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +import sys + +with open(sys.argv[1], 'w') as f: + f.write('') diff --git a/meson/test cases/common/88 dep fallback/subprojects/boblib/meson.build b/meson/test cases/common/88 dep fallback/subprojects/boblib/meson.build new file mode 100644 index 000000000..0a72a828d --- /dev/null +++ b/meson/test cases/common/88 dep fallback/subprojects/boblib/meson.build @@ -0,0 +1,18 @@ +project('bob', 'c') + +gensrc_py = find_program('genbob.py') +genbob_h = custom_target('genbob.h', + output : 'genbob.h', + command : [gensrc_py, '@OUTPUT@']) +genbob_c = custom_target('genbob.c', + output : 'genbob.c', + command : [gensrc_py, '@OUTPUT@']) + +boblib = library('bob', ['bob.c', genbob_c]) +bobinc = include_directories('.') + +bob_dep = declare_dependency(link_with : boblib, + sources : [genbob_h], + include_directories : bobinc) + +notfound_dep = dependency('', required: false) diff --git a/meson/test cases/common/88 dep fallback/subprojects/dummylib/meson.build b/meson/test cases/common/88 dep fallback/subprojects/dummylib/meson.build new file mode 100644 index 000000000..3ad33e7b9 --- /dev/null +++ b/meson/test cases/common/88 dep fallback/subprojects/dummylib/meson.build @@ -0,0 +1,4 @@ +project('dummylib', 'c') + +dummy_dep = declare_dependency() +error('this subproject fails to configure') diff --git a/meson/test cases/common/88 dep fallback/tester.c b/meson/test cases/common/88 dep fallback/tester.c new file mode 100644 index 000000000..a46f3f629 --- /dev/null +++ b/meson/test cases/common/88 dep fallback/tester.c @@ -0,0 +1,14 @@ +#include"bob.h" +#include"genbob.h" +#include<string.h> +#include<stdio.h> + +int main(void) { + if(strcmp("bob", get_bob()) == 0) { + printf("Bob is indeed bob.\n"); + } else { + printf("ERROR: bob is not bob.\n"); + return 1; + } + return 0; +} |