aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-02-20 12:04:01 -0500
committerXavier Claessens <xclaesse@gmail.com>2021-03-16 09:00:50 -0400
commit598e968993da58c89f773dc732c708a54b0ec8db (patch)
tree7aff62faa24d580ea64fdcf65922c7f0d109a712 /test cases
parent567c96b68b1dfe3cd6b52b0d26dfc78e5c0e6b76 (diff)
downloadmeson-598e968993da58c89f773dc732c708a54b0ec8db.zip
meson-598e968993da58c89f773dc732c708a54b0ec8db.tar.gz
meson-598e968993da58c89f773dc732c708a54b0ec8db.tar.bz2
Add `meson devenv` command and meson.add_devenv()
Diffstat (limited to 'test cases')
-rw-r--r--test cases/unit/91 devenv/main.c14
-rw-r--r--test cases/unit/91 devenv/meson.build12
-rw-r--r--test cases/unit/91 devenv/subprojects/sub/foo.c10
-rw-r--r--test cases/unit/91 devenv/subprojects/sub/meson.build6
-rwxr-xr-xtest cases/unit/91 devenv/test-devenv.py8
5 files changed, 50 insertions, 0 deletions
diff --git a/test cases/unit/91 devenv/main.c b/test cases/unit/91 devenv/main.c
new file mode 100644
index 0000000..2710593
--- /dev/null
+++ b/test cases/unit/91 devenv/main.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+#ifdef _WIN32
+ #define DO_IMPORT __declspec(dllimport)
+#else
+ #define DO_IMPORT
+#endif
+
+DO_IMPORT int foo(void);
+
+int main(void) {
+ printf("This is text.\n");
+ return foo();
+}
diff --git a/test cases/unit/91 devenv/meson.build b/test cases/unit/91 devenv/meson.build
new file mode 100644
index 0000000..40b9c86
--- /dev/null
+++ b/test cases/unit/91 devenv/meson.build
@@ -0,0 +1,12 @@
+project('devenv', 'c')
+
+meson.add_devenv('TEST_A=1')
+foo_dep = dependency('foo', fallback: 'sub')
+
+env = environment()
+env.append('TEST_B', ['2', '3'], separator: '+')
+meson.add_devenv(env)
+
+# This exe links on a library built in another directory. On Windows this means
+# PATH must contain builddir/subprojects/sub to be able to run it.
+executable('app', 'main.c', dependencies: foo_dep, install: true)
diff --git a/test cases/unit/91 devenv/subprojects/sub/foo.c b/test cases/unit/91 devenv/subprojects/sub/foo.c
new file mode 100644
index 0000000..46cb845
--- /dev/null
+++ b/test cases/unit/91 devenv/subprojects/sub/foo.c
@@ -0,0 +1,10 @@
+#ifdef _WIN32
+ #define DO_EXPORT __declspec(dllexport)
+#else
+ #define DO_EXPORT
+#endif
+
+DO_EXPORT int foo(void)
+{
+ return 0;
+}
diff --git a/test cases/unit/91 devenv/subprojects/sub/meson.build b/test cases/unit/91 devenv/subprojects/sub/meson.build
new file mode 100644
index 0000000..5cb1232
--- /dev/null
+++ b/test cases/unit/91 devenv/subprojects/sub/meson.build
@@ -0,0 +1,6 @@
+project('sub', 'c')
+
+meson.add_devenv({'TEST_B': '1'})
+
+libfoo = shared_library('foo', 'foo.c')
+meson.override_dependency('foo', declare_dependency(link_with: libfoo))
diff --git a/test cases/unit/91 devenv/test-devenv.py b/test cases/unit/91 devenv/test-devenv.py
new file mode 100755
index 0000000..4e5be97
--- /dev/null
+++ b/test cases/unit/91 devenv/test-devenv.py
@@ -0,0 +1,8 @@
+#! /usr/bin/python
+
+import os
+
+assert(os.environ['MESON_DEVENV'] == '1')
+assert(os.environ['MESON_PROJECT_NAME'] == 'devenv')
+assert(os.environ['TEST_A'] == '1')
+assert(os.environ['TEST_B'] == '1+2+3')