summaryrefslogtreecommitdiffstats
path: root/test cases/objc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-29 04:41:38 +0000
commit7b6e527f440cd7e6f8be2b07cee320ee6ca18786 (patch)
tree4a2738d69fa2814659fdadddf5826282e73d81f4 /test cases/objc
parentInitial commit. (diff)
downloadmeson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.tar.xz
meson-7b6e527f440cd7e6f8be2b07cee320ee6ca18786.zip
Adding upstream version 1.0.1.upstream/1.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test cases/objc')
-rw-r--r--test cases/objc/1 simple/meson.build4
-rw-r--r--test cases/objc/1 simple/prog.m5
-rw-r--r--test cases/objc/2 nsstring/meson.build20
-rw-r--r--test cases/objc/2 nsstring/stringprog.m9
-rw-r--r--test cases/objc/3 objc args/meson.build4
-rw-r--r--test cases/objc/3 objc args/prog.m11
-rw-r--r--test cases/objc/4 c++ project objc subproject/master.cpp11
-rw-r--r--test cases/objc/4 c++ project objc subproject/meson.build6
-rw-r--r--test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m4
-rw-r--r--test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build5
10 files changed, 79 insertions, 0 deletions
diff --git a/test cases/objc/1 simple/meson.build b/test cases/objc/1 simple/meson.build
new file mode 100644
index 0000000..f9d5c14
--- /dev/null
+++ b/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/test cases/objc/1 simple/prog.m b/test cases/objc/1 simple/prog.m
new file mode 100644
index 0000000..87457bf
--- /dev/null
+++ b/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/test cases/objc/2 nsstring/meson.build b/test cases/objc/2 nsstring/meson.build
new file mode 100644
index 0000000..94d2cf1
--- /dev/null
+++ b/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/test cases/objc/2 nsstring/stringprog.m b/test cases/objc/2 nsstring/stringprog.m
new file mode 100644
index 0000000..5407538
--- /dev/null
+++ b/test cases/objc/2 nsstring/stringprog.m
@@ -0,0 +1,9 @@
+#import<Foundation/NSString.h>
+
+int main(void) {
+ int result;
+ NSString *str = [NSString new];
+ result = [str length];
+ [str release];
+ return result;
+}
diff --git a/test cases/objc/3 objc args/meson.build b/test cases/objc/3 objc args/meson.build
new file mode 100644
index 0000000..8887d96
--- /dev/null
+++ b/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/test cases/objc/3 objc args/prog.m b/test cases/objc/3 objc args/prog.m
new file mode 100644
index 0000000..003df98
--- /dev/null
+++ b/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/test cases/objc/4 c++ project objc subproject/master.cpp b/test cases/objc/4 c++ project objc subproject/master.cpp
new file mode 100644
index 0000000..cd08fb1
--- /dev/null
+++ b/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/test cases/objc/4 c++ project objc subproject/meson.build b/test cases/objc/4 c++ project objc subproject/meson.build
new file mode 100644
index 0000000..8a77ded
--- /dev/null
+++ b/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/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m b/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
new file mode 100644
index 0000000..e193b86
--- /dev/null
+++ b/test cases/objc/4 c++ project objc subproject/subprojects/foo/foo.m
@@ -0,0 +1,4 @@
+
+int foo() {
+ return 42;
+}
diff --git a/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build b/test cases/objc/4 c++ project objc subproject/subprojects/foo/meson.build
new file mode 100644
index 0000000..2dbf8ab
--- /dev/null
+++ b/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)