aboutsummaryrefslogtreecommitdiffstats
path: root/meson/test cases/objc
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/objc
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/objc')
-rw-r--r--meson/test cases/objc/1 simple/meson.build4
-rw-r--r--meson/test cases/objc/1 simple/prog.m5
-rw-r--r--meson/test cases/objc/2 nsstring/meson.build20
-rw-r--r--meson/test cases/objc/2 nsstring/stringprog.m10
-rw-r--r--meson/test cases/objc/3 objc args/meson.build4
-rw-r--r--meson/test cases/objc/3 objc args/prog.m11
-rw-r--r--meson/test cases/objc/4 c++ project objc subproject/master.cpp11
-rw-r--r--meson/test cases/objc/4 c++ project objc subproject/meson.build6
-rw-r--r--meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m4
-rw-r--r--meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build5
10 files changed, 80 insertions, 0 deletions
diff --git a/meson/test cases/objc/1 simple/meson.build b/meson/test cases/objc/1 simple/meson.build
new file mode 100644
index 000000000..f9d5c1450
--- /dev/null
+++ b/meson/test cases/objc/1 simple/meson.build
@@ -0,0 +1,4 @@
+project('objective c', 'objc', default_options: ['c_std=c99'])
+
+exe = executable('prog', 'prog.m')
+test('objctest', exe)
diff --git a/meson/test cases/objc/1 simple/prog.m b/meson/test cases/objc/1 simple/prog.m
new file mode 100644
index 000000000..87457bfc1
--- /dev/null
+++ b/meson/test cases/objc/1 simple/prog.m
@@ -0,0 +1,5 @@
+#import<stdio.h>
+
+int main(void) {
+ return 0;
+} \ No newline at end of file
diff --git a/meson/test cases/objc/2 nsstring/meson.build b/meson/test cases/objc/2 nsstring/meson.build
new file mode 100644
index 000000000..94d2cf18a
--- /dev/null
+++ b/meson/test cases/objc/2 nsstring/meson.build
@@ -0,0 +1,20 @@
+project('nsstring', 'objc')
+
+if host_machine.system() == 'darwin'
+ dep = dependency('appleframeworks', modules : 'foundation')
+elif host_machine.system() == 'cygwin'
+ error('MESON_SKIP_TEST GNUstep is not packaged for Cygwin.')
+else
+ dep = dependency('gnustep', required : false)
+ if not dep.found()
+ error('MESON_SKIP_TEST: GNUstep is not installed')
+ endif
+ if host_machine.system() == 'linux' and meson.get_compiler('objc').get_id() == 'clang'
+ error('MESON_SKIP_TEST: GNUstep is broken on Linux with Clang')
+ endif
+endif
+exe = executable('stringprog', 'stringprog.m', dependencies : dep)
+test('stringtest', exe)
+
+# Ensure that a non-required dep that is not found does not cause an error
+dependency('appleframeworks', modules: 'nonexisting', required: false)
diff --git a/meson/test cases/objc/2 nsstring/stringprog.m b/meson/test cases/objc/2 nsstring/stringprog.m
new file mode 100644
index 000000000..faef4dd62
--- /dev/null
+++ b/meson/test cases/objc/2 nsstring/stringprog.m
@@ -0,0 +1,10 @@
+#import<Foundation/NSString.h>
+
+int main(void) {
+ int result;
+ NSString *str = [NSString new];
+ result = [str length];
+ [str release];
+ return result;
+}
+
diff --git a/meson/test cases/objc/3 objc args/meson.build b/meson/test cases/objc/3 objc args/meson.build
new file mode 100644
index 000000000..8887d96bc
--- /dev/null
+++ b/meson/test cases/objc/3 objc args/meson.build
@@ -0,0 +1,4 @@
+project('objective c args', 'objc')
+
+exe = executable('prog', 'prog.m', objc_args : ['-DMESON_TEST'])
+test('objective c args', exe)
diff --git a/meson/test cases/objc/3 objc args/prog.m b/meson/test cases/objc/3 objc args/prog.m
new file mode 100644
index 000000000..003df98af
--- /dev/null
+++ b/meson/test cases/objc/3 objc args/prog.m
@@ -0,0 +1,11 @@
+#import<stdio.h>
+
+int main(void)
+{
+#ifdef MESON_TEST
+ int x = 3;
+#endif
+
+ printf("x = %d\n", x);
+ return 0;
+}
diff --git a/meson/test cases/objc/4 c++ project objc subproject/master.cpp b/meson/test cases/objc/4 c++ project objc subproject/master.cpp
new file mode 100644
index 000000000..cd08fb15e
--- /dev/null
+++ b/meson/test cases/objc/4 c++ project objc subproject/master.cpp
@@ -0,0 +1,11 @@
+
+#include <iostream>
+
+extern "C"
+int foo();
+
+int main(void) {
+ std::cout << "Starting\n";
+ std::cout << foo() << "\n";
+ return 0;
+}
diff --git a/meson/test cases/objc/4 c++ project objc subproject/meson.build b/meson/test cases/objc/4 c++ project objc subproject/meson.build
new file mode 100644
index 000000000..8a77dedce
--- /dev/null
+++ b/meson/test cases/objc/4 c++ project objc subproject/meson.build
@@ -0,0 +1,6 @@
+project('master', ['cpp'])
+
+foo = subproject('foo')
+dep = foo.get_variable('foo_dep')
+
+executable('master', 'master.cpp', dependencies: dep)
diff --git a/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m b/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
new file mode 100644
index 000000000..e193b8681
--- /dev/null
+++ b/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
@@ -0,0 +1,4 @@
+
+int foo() {
+ return 42;
+}
diff --git a/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build b/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build
new file mode 100644
index 000000000..2dbf8ab26
--- /dev/null
+++ b/meson/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build
@@ -0,0 +1,5 @@
+project('foo', ['objc'])
+
+l = static_library('foo', 'foo.m')
+
+foo_dep = declare_dependency(link_with : l)