diff options
| -rw-r--r-- | test cases/unit/69 cross/crossfile.in | 3 | ||||
| -rw-r--r-- | test cases/unit/69 cross/meson.build | 11 | ||||
| -rw-r--r-- | test cases/unit/69 cross/nativefile.in | 2 | ||||
| -rw-r--r-- | unittests/allplatformstests.py | 9 |
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) |
