diff options
Diffstat (limited to 'meta/recipes-devtools/meson/meson/many-cross.patch')
-rw-r--r-- | meta/recipes-devtools/meson/meson/many-cross.patch | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/meta/recipes-devtools/meson/meson/many-cross.patch b/meta/recipes-devtools/meson/meson/many-cross.patch deleted file mode 100644 index d04c28b8a3..0000000000 --- a/meta/recipes-devtools/meson/meson/many-cross.patch +++ /dev/null @@ -1,207 +0,0 @@ -mesonbuild: allow multiple --cross-file options - -Just like --native-file, allow multiple --cross-file options. This is mostly -unifying the logic between cross_files and config_files. - -Upstream-Status: Backport [will be in 0.50.1] -Signed-off-by: Ross Burton <ross.burton@intel.com> - -diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py -index 40402513..4b9bcb59 100644 ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -726,8 +726,7 @@ class Backend: - deps = [os.path.join(self.build_to_src, df) - for df in self.interpreter.get_build_def_files()] - if self.environment.is_cross_build(): -- deps.append(os.path.join(self.build_to_src, -- self.environment.coredata.cross_file)) -+ deps.extend(self.environment.coredata.cross_files) - deps.append('meson-private/coredata.dat') - if os.path.exists(os.path.join(self.environment.get_source_dir(), 'meson_options.txt')): - deps.append(os.path.join(self.build_to_src, 'meson_options.txt')) -diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py -index c3f5a745..ff810683 100644 ---- a/mesonbuild/coredata.py -+++ b/mesonbuild/coredata.py -@@ -201,8 +201,8 @@ class UserFeatureOption(UserComboOption): - return self.value == 'auto' - - --def load_configs(filenames): -- """Load native files.""" -+def load_configs(filenames, subdir): -+ """Load configuration files from a named subdirectory.""" - def gen(): - for f in filenames: - f = os.path.expanduser(os.path.expandvars(f)) -@@ -215,7 +215,7 @@ def load_configs(filenames): - os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), - ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') - for path in paths: -- path_to_try = os.path.join(path, 'meson', 'native', f) -+ path_to_try = os.path.join(path, 'meson', subdir, f) - if os.path.isfile(path_to_try): - yield path_to_try - break -@@ -291,7 +291,7 @@ class CoreData: - self.compiler_options = {} - self.base_options = {} - self.external_preprocess_args = {} # CPPFLAGS only -- self.cross_file = self.__load_cross_file(options.cross_file) -+ self.cross_files = self.__load_config_files(options.cross_file) - self.compilers = OrderedDict() - self.cross_compilers = OrderedDict() - self.deps = OrderedDict() -@@ -301,52 +301,14 @@ class CoreData: - - @staticmethod - def __load_config_files(filenames): -+ # Need to try and make the passed filenames absolute because when the -+ # files are parsed later we'll have chdir()d. - if not filenames: - return [] - filenames = [os.path.abspath(os.path.expanduser(os.path.expanduser(f))) - for f in filenames] - return filenames - -- @staticmethod -- def __load_cross_file(filename): -- """Try to load the cross file. -- -- If the filename is None return None. If the filename is an absolute -- (after resolving variables and ~), return that absolute path. Next, -- check if the file is relative to the current source dir. If the path -- still isn't resolved do the following: -- Windows: -- - Error -- *: -- - $XDG_DATA_HOME/meson/cross (or ~/.local/share/meson/cross if -- undefined) -- - $XDG_DATA_DIRS/meson/cross (or -- /usr/local/share/meson/cross:/usr/share/meson/cross if undefined) -- - Error -- -- Non-Windows follows the Linux path and will honor XDG_* if set. This -- simplifies the implementation somewhat. -- """ -- if filename is None: -- return None -- filename = os.path.expanduser(os.path.expandvars(filename)) -- if os.path.isabs(filename): -- return filename -- path_to_try = os.path.abspath(filename) -- if os.path.isfile(path_to_try): -- return path_to_try -- if sys.platform != 'win32': -- paths = [ -- os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')), -- ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':') -- for path in paths: -- path_to_try = os.path.join(path, 'meson', 'cross', filename) -- if os.path.isfile(path_to_try): -- return path_to_try -- raise MesonException('Cannot find specified cross file: ' + filename) -- -- raise MesonException('Cannot find specified cross file: ' + filename) -- - def sanitize_prefix(self, prefix): - if not os.path.isabs(prefix): - raise MesonException('prefix value {!r} must be an absolute path' -@@ -558,8 +520,8 @@ def read_cmd_line_file(build_dir, options): - options.cmd_line_options = d - - properties = config['properties'] -- if options.cross_file is None: -- options.cross_file = properties.get('cross_file', None) -+ if not options.cross_file: -+ options.cross_file = ast.literal_eval(properties.get('cross_file', '[]')) - if not options.native_file: - # This will be a string in the form: "['first', 'second', ...]", use - # literal_eval to get it into the list of strings. -@@ -570,7 +532,7 @@ def write_cmd_line_file(build_dir, options): - config = CmdLineFileParser() - - properties = {} -- if options.cross_file is not None: -+ if options.cross_file: - properties['cross_file'] = options.cross_file - if options.native_file: - properties['native_file'] = options.native_file -diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index 6d86daf9..406ab8b8 100644 ---- a/mesonbuild/environment.py -+++ b/mesonbuild/environment.py -@@ -355,8 +355,8 @@ class Environment: - self.machines = MachineInfos() - # Will be fully initialized later using compilers later. - self.machines.detect_build() -- if self.coredata.cross_file: -- self.cross_info = CrossBuildInfo(self.coredata.cross_file) -+ if self.coredata.cross_files: -+ self.cross_info = CrossBuildInfo(self.coredata.cross_files) - if 'exe_wrapper' in self.cross_info.config['binaries']: - from .dependencies import ExternalProgram - self.exe_wrapper = ExternalProgram.from_bin_list( -@@ -373,7 +373,7 @@ class Environment: - - if self.coredata.config_files: - self.config_info = coredata.ConfigData( -- coredata.load_configs(self.coredata.config_files)) -+ coredata.load_configs(self.coredata.config_files, 'native')) - else: - self.config_info = coredata.ConfigData() - -@@ -1113,13 +1113,8 @@ class CrossBuildInfo: - def ok_type(self, i): - return isinstance(i, (str, int, bool)) - -- def parse_datafile(self, filename): -- config = configparser.ConfigParser() -- try: -- with open(filename, 'r') as f: -- config.read_file(f, filename) -- except FileNotFoundError: -- raise EnvironmentException('File not found: %s.' % filename) -+ def parse_datafile(self, filenames): -+ config = coredata.load_configs(filenames, 'cross') - # This is a bit hackish at the moment. - for s in config.sections(): - self.config[s] = {} -diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py -index 56a0e9a7..f0a1ae19 100644 ---- a/mesonbuild/msetup.py -+++ b/mesonbuild/msetup.py -@@ -27,7 +27,9 @@ from .mesonlib import MesonException - - def add_arguments(parser): - coredata.register_builtin_arguments(parser) -- parser.add_argument('--cross-file', default=None, -+ parser.add_argument('--cross-file', -+ default=[], -+ action='append', - help='File describing cross compilation environment.') - parser.add_argument('--native-file', - default=[], -diff --git a/run_unittests.py b/run_unittests.py -index e6874b25..1d247291 100755 ---- a/run_unittests.py -+++ b/run_unittests.py -@@ -529,7 +529,7 @@ class InternalTests(unittest.TestCase): - config.write(configfile) - configfile.flush() - configfile.close() -- detected_value = mesonbuild.environment.CrossBuildInfo(configfile.name).need_exe_wrapper() -+ detected_value = mesonbuild.environment.CrossBuildInfo((configfile.name,)).need_exe_wrapper() - os.unlink(configfilename) - - desired_value = not detected_value -@@ -541,7 +541,7 @@ class InternalTests(unittest.TestCase): - configfilename = configfile.name - config.write(configfile) - configfile.close() -- forced_value = mesonbuild.environment.CrossBuildInfo(configfile.name).need_exe_wrapper() -+ forced_value = mesonbuild.environment.CrossBuildInfo((configfile.name,)).need_exe_wrapper() - os.unlink(configfilename) - - self.assertEqual(forced_value, desired_value) |