mintro: include per-subproject options in buildoptions introspection - #15995
Open
MaxandreOgeret wants to merge 1 commit into
Open
mintro: include per-subproject options in buildoptions introspection#15995MaxandreOgeret wants to merge 1 commit into
MaxandreOgeret wants to merge 1 commit into
Conversation
The configured-builddir path called the option listing without the set of subprojects, so the per-subproject replication of non-yielding builtin options only happened for source-only introspection and no sub: rows were emitted at all. Augments (per-subproject values such as -Dsub:c_args=...) were additionally never consulted, so even the source-only rows reported the parent project's value. Pass coredata.initialized_subprojects on the configured path, add per-subproject rows for base and compiler options that have an augment set, and resolve replicated keys through the option store so augments and yielding are reflected in the reported value. Project options keep their stored value as before. Fixes mesonbuild#15993.
MaxandreOgeret
force-pushed
the
fix-introspect-augments
branch
from
July 9, 2026 07:04
6072be4 to
2eeeb65
Compare
Contributor
|
Can you remove the release node snippet, since this will be handled as a regression and backported? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #15993.
Per-subproject options never show up in
meson introspect --buildoptionsorintro-buildoptions.jsonfor a configured build dir. Two reasons: the configured path called the option listing without the set of subprojects, so the per-subproject replication of non-yielding builtins only ran for source-only introspection (a regression - 1.2.3 emittedsub:c_std,sub:warning_level, ...); and augments were never consulted, so a value like-Dsub:c_args=-DFOOwas invisible and replicated rows showed the parent project's value.Fix: pass
coredata.initialized_subprojectson the configured path, emit rows for base/compiler options that have an augment set (that adds thesub:c_argsrow), and resolve per-subproject keys through the option store so augments and yielding are reflected in the reported value. Project options keep their stored value, so theusersection is unchanged.Added a test covering the augment rows, the intro-file/command consistency, and the source-only path. I looked at re-enabling
DISABLED_test_introspect_buildoptions_without_configured_build, but its fixture (58 introspect buildoptions) is deliberately unconfigurable (missing source file, bogus language), so source-vs-configured parity still can't be asserted there.I deliberately did not fix :
coredata.initialized_subprojectsis append-only across reconfigures, so a subproject removed from the build keeps its rows until a wipe. The option store already behaves the same way for that subproject's project options.