summaryrefslogtreecommitdiff
path: root/tests/projects/zig/c_interop/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/projects/zig/c_interop/src')
-rw-r--r--tests/projects/zig/c_interop/src/main.zig11
-rw-r--r--tests/projects/zig/c_interop/src/native/mathlib.c9
-rw-r--r--tests/projects/zig/c_interop/src/native/mathlib.h7
3 files changed, 27 insertions, 0 deletions
diff --git a/tests/projects/zig/c_interop/src/main.zig b/tests/projects/zig/c_interop/src/main.zig
new file mode 100644
index 000000000..6cd61100d
--- /dev/null
+++ b/tests/projects/zig/c_interop/src/main.zig
@@ -0,0 +1,11 @@
+const std = @import("std");
+const c = @cImport({
+ @cInclude("mathlib.h");
+});
+
+pub fn main() void {
+ const sum = c.c_add(3, 4);
+ const product = c.c_multiply(5, 6);
+ std.debug.print("c_add(3,4)={d}\n", .{sum});
+ std.debug.print("c_multiply(5,6)={d}\n", .{product});
+}
diff --git a/tests/projects/zig/c_interop/src/native/mathlib.c b/tests/projects/zig/c_interop/src/native/mathlib.c
new file mode 100644
index 000000000..8728d1df3
--- /dev/null
+++ b/tests/projects/zig/c_interop/src/native/mathlib.c
@@ -0,0 +1,9 @@
+#include "mathlib.h"
+
+int c_add(int a, int b) {
+ return a + b;
+}
+
+int c_multiply(int a, int b) {
+ return a * b;
+}
diff --git a/tests/projects/zig/c_interop/src/native/mathlib.h b/tests/projects/zig/c_interop/src/native/mathlib.h
new file mode 100644
index 000000000..78dcbc931
--- /dev/null
+++ b/tests/projects/zig/c_interop/src/native/mathlib.h
@@ -0,0 +1,7 @@
+#ifndef MATHLIB_H
+#define MATHLIB_H
+
+int c_add(int a, int b);
+int c_multiply(int a, int b);
+
+#endif