aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/build.py10
-rw-r--r--test cases/objc/4 objc args/meson.build4
-rw-r--r--test cases/objc/4 objc args/prog.m11
-rw-r--r--test cases/objc/5 objc++ args/meson.build4
-rw-r--r--test cases/objc/5 objc++ args/prog.mm16
5 files changed, 45 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index 855c0bd..8163bca 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -28,6 +28,8 @@ known_basic_kwargs = {'install': True,
'c_pch': True,
'cpp_pch': True,
'c_args': True,
+ 'objc_args': True,
+ 'objcpp_args': True,
'cpp_args': True,
'cs_args': True,
'vala_args': True,
@@ -627,6 +629,14 @@ 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)
+ objcpplist = kwargs.get('objcpp_args', [])
+ if not isinstance(objcpplist, list):
+ objcpplist = [objcpplist]
+ self.add_compiler_args('objcpp', objcpplist)
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 0000000..8887d96
--- /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 0000000..bfd686a
--- /dev/null
+++ b/test cases/objc/4 objc args/prog.m
@@ -0,0 +1,11 @@
+#import<stdio.h>
+
+int main(int argc, char **argv)
+{
+#ifdef MESON_TEST
+ int x = 3;
+#endif
+
+ printf("x = %d\n", x);
+ return 0;
+}
diff --git a/test cases/objc/5 objc++ args/meson.build b/test cases/objc/5 objc++ args/meson.build
new file mode 100644
index 0000000..e0e34b0
--- /dev/null
+++ b/test cases/objc/5 objc++ args/meson.build
@@ -0,0 +1,4 @@
+project('objective c++ args', 'objcpp')
+
+exe = executable('prog', 'prog.mm', objcpp_args : ['-DMESON_OBJCPP_TEST'])
+test('objective c++ args', exe)
diff --git a/test cases/objc/5 objc++ args/prog.mm b/test cases/objc/5 objc++ args/prog.mm
new file mode 100644
index 0000000..3decaf2
--- /dev/null
+++ b/test cases/objc/5 objc++ args/prog.mm
@@ -0,0 +1,16 @@
+#import<stdio.h>
+
+class TestClass
+{
+};
+
+int main(int argc, char **argv)
+{
+#ifdef MESON_OBJCPP_TEST
+int x = 1;
+#endif
+
+ printf("x = %x\n", x);
+
+ return 0;
+}