From dee10c9151c7233d20e7e142ee9b7ac6f93a45e8 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Mon, 4 May 2020 18:11:39 +0300 Subject: Revert "coredata: init_builtins should always call libdir_cross_fixup" This reverts commit cc4e9e79be54f59a09d8e5ca96c6a2946245a88d. --- mesonbuild/coredata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py index 0b79084..c8061a7 100644 --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py @@ -385,6 +385,7 @@ class CoreData: # Only to print a warning if it changes between Meson invocations. self.config_files = self.__load_config_files(options, scratch_dir, 'native') self.init_builtins('') + self.libdir_cross_fixup() @staticmethod def __load_config_files(options: argparse.Namespace, scratch_dir: str, ftype: str) -> T.List[str]: @@ -510,7 +511,6 @@ class CoreData: for for_machine in iter(MachineChoice): for key, opt in builtin_options_per_machine.items(): self.add_builtin_option(self.builtins_per_machine[for_machine], key, opt, subproject) - self.libdir_cross_fixup() def add_builtin_option(self, opts_map, key, opt, subproject): if subproject: -- cgit v1.1 From d61f7a1e849e953a5478cd0f1b93cd5b7f4193a2 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Mon, 4 May 2020 14:37:05 +0300 Subject: Add regression test for libdir reset. --- run_unittests.py | 11 +++++++++++ test cases/unit/75 subdir libdir/meson.build | 2 ++ test cases/unit/75 subdir libdir/subprojects/flub/meson.build | 1 + 3 files changed, 14 insertions(+) create mode 100644 test cases/unit/75 subdir libdir/meson.build create mode 100644 test cases/unit/75 subdir libdir/subprojects/flub/meson.build diff --git a/run_unittests.py b/run_unittests.py index 39191a3..0cd52d1 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -6683,6 +6683,17 @@ class LinuxCrossArmTests(BasePlatformTests): return self.assertTrue(False, 'Option libdir not in introspect data.') + def test_cross_libdir_subproject(self): + # Guard against a regression where calling "subproject" + # would reset the value of libdir to its default value. + testdir = os.path.join(self.unit_test_dir, '75 subdir libdir') + self.init(testdir, extra_args=['--libdir=fuf']) + for i in self.introspect('--buildoptions'): + if i['name'] == 'libdir': + self.assertEqual(i['value'], 'fuf') + return + self.assertTrue(False, 'Libdir specified on command line gets reset.') + def test_std_remains(self): # C_std defined in project options must be in effect also when cross compiling. testdir = os.path.join(self.unit_test_dir, '51 noncross options') diff --git a/test cases/unit/75 subdir libdir/meson.build b/test cases/unit/75 subdir libdir/meson.build new file mode 100644 index 0000000..5099c91 --- /dev/null +++ b/test cases/unit/75 subdir libdir/meson.build @@ -0,0 +1,2 @@ +project('toplevel', 'c') +subproject('flub') diff --git a/test cases/unit/75 subdir libdir/subprojects/flub/meson.build b/test cases/unit/75 subdir libdir/subprojects/flub/meson.build new file mode 100644 index 0000000..7bfd2c5 --- /dev/null +++ b/test cases/unit/75 subdir libdir/subprojects/flub/meson.build @@ -0,0 +1 @@ +project('subflub', 'c') -- cgit v1.1