diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/objc | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/objc')
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) |