aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/common/88 dep fallback
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/common/88 dep fallback
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/common/88 dep fallback')
-rw-r--r--meson/test cases/common/88 dep fallback/gensrc.py6
-rw-r--r--meson/test cases/common/88 dep fallback/meson.build38
-rw-r--r--meson/test cases/common/88 dep fallback/subprojects/boblib/bob.c8
-rw-r--r--meson/test cases/common/88 dep fallback/subprojects/boblib/bob.h6
-rw-r--r--meson/test cases/common/88 dep fallback/subprojects/boblib/genbob.py6
-rw-r--r--meson/test cases/common/88 dep fallback/subprojects/boblib/meson.build18
-rw-r--r--meson/test cases/common/88 dep fallback/subprojects/dummylib/meson.build4
-rw-r--r--meson/test cases/common/88 dep fallback/tester.c14
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;
+}