You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
1.5 KiB

From 5277eb2232387312c64c79e5622a61cefc26dec0 Mon Sep 17 00:00:00 2001
From: Dylan Baker <dylan@pnwbakers.com>
Date: Mon, 5 Apr 2021 13:05:45 -0700
Subject: [PATCH] coredata: Check for built-in options as host options
These options often don't exist for the build machine, as they're
generally invalid (ie, prefix, libdir, etc). So we should always check
for their existance as host optiuons, since all we want to know in this
case is if the option is yeilding (valid per-subproject), and build/vs
host doesn't matter in that cases:
Fixes #8613
---
mesonbuild/coredata.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -754,7 +754,11 @@ class CoreData:
if k.subproject and k.subproject != subproject:
continue
# If the option is a builtin and is yielding then it's not allowed per subproject.
- if subproject and k.is_builtin() and self.options[k.as_root()].yielding:
+ #
+ # Always test this using the HOST machine, as many builtin options
+ # are not valid for the BUILD machine, but the yielding value does
+ # not differ between them even when they are valid for both.
+ if subproject and k.is_builtin() and self.options[k.evolve(subproject='', machine=MachineChoice.HOST)].yielding:
continue
# Skip base, compiler, and backend options, they are handled when
# adding languages and setting backend.