summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test cases/unit/69 cross/crossfile.in3
-rw-r--r--test cases/unit/69 cross/meson.build11
-rw-r--r--test cases/unit/69 cross/nativefile.in2
-rw-r--r--unittests/allplatformstests.py9
4 files changed, 22 insertions, 3 deletions
diff --git a/test cases/unit/69 cross/crossfile.in b/test cases/unit/69 cross/crossfile.in
index 678e8d3a3..beab9bc45 100644
--- a/test cases/unit/69 cross/crossfile.in
+++ b/test cases/unit/69 cross/crossfile.in
@@ -3,3 +3,6 @@ system = '@system@'
cpu_family = '@cpu_family@'
cpu = '@cpu@'
endian = '@endian@'
+
+[built-in options]
+c_args = ['-funroll-loops']
diff --git a/test cases/unit/69 cross/meson.build b/test cases/unit/69 cross/meson.build
index acf4f0f17..645d453c5 100644
--- a/test cases/unit/69 cross/meson.build
+++ b/test cases/unit/69 cross/meson.build
@@ -1,16 +1,25 @@
project('crosstest')
+add_languages('c', native: true)
if get_option('generate')
conf_data = configuration_data()
conf_data.set('system', build_machine.system())
conf_data.set('cpu', build_machine.cpu())
conf_data.set('cpu_family', build_machine.cpu_family())
conf_data.set('endian', build_machine.endian())
+ conf_data.set('c_args', '-pedantic')
configure_file(input: 'crossfile.in',
output: 'crossfile',
configuration: conf_data)
- message('Written cross file')
+ configure_file(input: 'nativefile.in',
+ output: 'nativefile',
+ configuration: conf_data)
+ message('Written native and cross file')
+
+ add_languages('c', native: false)
+ assert(get_option('build.c_args') == get_option('c_args'))
else
assert(meson.is_cross_build(), 'not setup as cross build')
+ assert(get_option('build.c_args') == ['-pedantic'])
endif
diff --git a/test cases/unit/69 cross/nativefile.in b/test cases/unit/69 cross/nativefile.in
new file mode 100644
index 000000000..054cf108d
--- /dev/null
+++ b/test cases/unit/69 cross/nativefile.in
@@ -0,0 +1,2 @@
+[built-in options]
+c_args = ['@c_args@']
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py
index 02001a471..905ae4d7b 100644
--- a/unittests/allplatformstests.py
+++ b/unittests/allplatformstests.py
@@ -3316,10 +3316,15 @@ class AllPlatformTests(BasePlatformTests):
def test_identity_cross(self):
testdir = os.path.join(self.unit_test_dir, '69 cross')
# Do a build to generate a cross file where the host is this target
- self.init(testdir, extra_args=['-Dgenerate=true'])
+ # build.c_args is ignored here.
+ self.init(testdir, extra_args=['-Dgenerate=true', '-Dc_args=-funroll-loops',
+ '-Dbuild.c_args=-pedantic'])
+ self.meson_native_files = [os.path.join(self.builddir, "nativefile")]
+ self.assertTrue(os.path.exists(self.meson_native_files[0]))
self.meson_cross_files = [os.path.join(self.builddir, "crossfile")]
self.assertTrue(os.path.exists(self.meson_cross_files[0]))
- # Now verify that this is detected as cross
+ # Now verify that this is detected as cross and build options are
+ # processed correctly
self.new_builddir()
self.init(testdir)