|
@ -0,0 +1,31 @@ |
|
|
|
|
|
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. |