aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-04-25 22:25:55 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2018-05-02 22:50:15 +0300
commit1918c0d231f0c04b1a57c2fdf057b50c8aa7312b (patch)
tree074fd9ede2fe8ee8c3e63822b1c89de39cd967ff /test cases
parent77b72e8573bbd8d6d04cb11aacdba604b8649f4d (diff)
downloadmeson-1918c0d231f0c04b1a57c2fdf057b50c8aa7312b.zip
meson-1918c0d231f0c04b1a57c2fdf057b50c8aa7312b.tar.gz
meson-1918c0d231f0c04b1a57c2fdf057b50c8aa7312b.tar.bz2
Can combine D and C++ in a single target. Closes #3125.
Diffstat (limited to 'test cases')
-rw-r--r--test cases/d/10 d cpp/cppmain.cpp6
-rw-r--r--test cases/d/10 d cpp/dmain.d5
-rw-r--r--test cases/d/10 d cpp/libfile.cpp5
-rw-r--r--test cases/d/10 d cpp/libfile.d5
-rw-r--r--test cases/d/10 d cpp/meson.build13
5 files changed, 34 insertions, 0 deletions
diff --git a/test cases/d/10 d cpp/cppmain.cpp b/test cases/d/10 d cpp/cppmain.cpp
new file mode 100644
index 0000000..aeddf56
--- /dev/null
+++ b/test cases/d/10 d cpp/cppmain.cpp
@@ -0,0 +1,6 @@
+extern void print_hello(int i);
+
+int main(int, char**) {
+ print_hello(1);
+ return 0;
+}
diff --git a/test cases/d/10 d cpp/dmain.d b/test cases/d/10 d cpp/dmain.d
new file mode 100644
index 0000000..bece25f
--- /dev/null
+++ b/test cases/d/10 d cpp/dmain.d
@@ -0,0 +1,5 @@
+extern (C++) void print_hello(int i);
+
+void main() {
+ print_hello(1);
+}
diff --git a/test cases/d/10 d cpp/libfile.cpp b/test cases/d/10 d cpp/libfile.cpp
new file mode 100644
index 0000000..2ea67fc
--- /dev/null
+++ b/test cases/d/10 d cpp/libfile.cpp
@@ -0,0 +1,5 @@
+#include<iostream>
+
+void print_hello(int i) {
+ std::cout << "Hello. Here is a number printed with C++: " << i << ".\n";
+}
diff --git a/test cases/d/10 d cpp/libfile.d b/test cases/d/10 d cpp/libfile.d
new file mode 100644
index 0000000..88cb53e
--- /dev/null
+++ b/test cases/d/10 d cpp/libfile.d
@@ -0,0 +1,5 @@
+import std.stdio;
+
+extern (C++) void print_hello(int i) {
+ writefln("Hello. Here is a number printed with D: %d", i);
+}
diff --git a/test cases/d/10 d cpp/meson.build b/test cases/d/10 d cpp/meson.build
new file mode 100644
index 0000000..eecb151
--- /dev/null
+++ b/test cases/d/10 d cpp/meson.build
@@ -0,0 +1,13 @@
+project('d and c++', 'd', 'cpp')
+
+cpp = meson.get_compiler('cpp')
+
+if cpp.get_id() == 'clang'
+ error('MESON_SKIP_TEST combining Clang C++ with GDC produces broken executables.')
+endif
+
+e1 = executable('dcpp', 'dmain.d', 'libfile.cpp')
+test('dcpp', e1)
+
+e2 = executable('cppd', 'cppmain.cpp', 'libfile.d')
+test('cppd', e2)