From 18d2e7b91c81a19101ffdbbb11a9a35c9cfad8a7 Mon Sep 17 00:00:00 2001 From: Paulo Antonio Alvarez Date: Mon, 22 May 2017 20:49:54 -0300 Subject: [PATCH] objc: Add support for objc_args keyword This allows the user to pass additional flags for the objective-c compiler. --- mesonbuild/build.py | 5 +++++ test cases/objc/4 objc args/meson.build | 4 ++++ test cases/objc/4 objc args/prog.m | 11 +++++++++++ 3 files changed, 20 insertions(+) create mode 100644 test cases/objc/4 objc args/meson.build create mode 100644 test cases/objc/4 objc args/prog.m diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 855c0bd7a..3e87e073c 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -28,6 +28,7 @@ known_basic_kwargs = {'install': True, 'c_pch': True, 'cpp_pch': True, 'c_args': True, + 'objc_args': True, 'cpp_args': True, 'cs_args': True, 'vala_args': True, @@ -627,6 +628,10 @@ class BuildTarget(Target): if not isinstance(valalist, list): valalist = [valalist] self.add_compiler_args('vala', valalist) + objclist = kwargs.get('objc_args', []) + if not isinstance(objclist, list): + objclist = [objclist] + self.add_compiler_args('objc', objclist) fortranlist = kwargs.get('fortran_args', []) if not isinstance(fortranlist, list): fortranlist = [fortranlist] diff --git a/test cases/objc/4 objc args/meson.build b/test cases/objc/4 objc args/meson.build new file mode 100644 index 000000000..8887d96bc --- /dev/null +++ b/test cases/objc/4 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/4 objc args/prog.m b/test cases/objc/4 objc args/prog.m new file mode 100644 index 000000000..bfd686a86 --- /dev/null +++ b/test cases/objc/4 objc args/prog.m @@ -0,0 +1,11 @@ +#import + +int main(int argc, char **argv) +{ +#ifdef MESON_TEST + int x = 3; +#endif + + printf("x = %d\n", x); + return 0; +}