Age | Commit message (Collapse) | Author | Files | Lines |
|
Currently, if we run "meson configure -Doption=value", meson will
do a reconfigure when running "ninja build" afterwards, even if
the new value is the same one that was already configured previously.
To avoid this unnecessary reconfigure, let's use replace_if_different()
instead of unconditionally replacing the conf file in coredata's save()
function.
|
|
1 (COLUMNS <= 60) by falling back to `_col`, relevant issue #10211
|
|
|
|
In print_options() k was a string instead of OptionKey, but
self.yielding_options expects OptionKey. Not sure how this has not been
catched by mypy.
Fix by keeping k as OptionKey which makes self.yielding_options useless.
Fixes: #9503
|
|
|
|
|
|
|
|
Fixes: #8858
|
|
I've picked 160 characters as a default because anything less than that
looks terrible and has awful wrapping going on. However, this respects
the $COLUNNS environment variable if set, and otherwise will query the
terminal to determine the size.
This is all achieved through an application of shtuil.get_terminal_size,
textwrap, print formatters, and iteration.
Fixes #6965
|
|
|
|
Looking in the right dictionary is pretty useful, actually.
|
|
performed by running "pyupgrade --py36-plus" and committing the results
|
|
All changes were created by running
"pyupgrade --py3-only --keep-percent-format"
and committing the results. I have not touched string formatting for
now.
- use set literals
- simplify .format() parameter naming
- remove __future__
- remove default "r" mode for open()
- use OSError rather than compatibility aliases
- remove stray parentheses in function(generator) scopes
|
|
A predicate in two comprehensions was dropped, in what looks like a
rebase error on my part. With the predicate added things work correctly.
Fixes: #8344
|
|
|
|
This patches takes the options work to it's logical conclusion: A single
flat dictionary of OptionKey: UserOptions. This allows us to simplify a
large number of cases, as we don't need to check if an option is in this
dict or that one (or any of 5 or 6, actually).
|
|
I would have prefered to do these seperatately, but they are combined in
some cases, so it was much easier to convert them together.
this eliminates the builtins_per_machine dict, as it's duplicated with
the OptionKey's machine parameter.
|
|
There's starting to be a lot of things including coredata that coredata
needs to itself include. putting it in mesonlib makes more sense
|
|
|
|
|
|
|
|
that's the only place it's used anyway.
|
|
|
|
It is much easier to not try to parse options into complicated
structures until we actually collected all options: machine files,
command line, project()'s default_options, environment.
|
|
|
|
This splits the directory options and non-directory options into two
dicts, and then merges them later to maintain API.
|
|
This is a regression introduced by #5489
|
|
A current rather untyped storage of options is one of the things that
contributes to the options code being so complex. This takes a small
step in synching down by storing the compiler options in dicts per
language.
Future work might be replacing the langauge strings with an enum, and
defaultdict with a custom struct, just like `PerMachine` and
`MachineChoice`.
|
|
- Typos were found by codespell v1.16.0
|
|
Closes: #6087
|
|
Also hide value of yielding subproject options to make it clear the
value must be set on the main project.
|
|
|
|
|
|
See the docs/ changes for details.
|
|
|
|
Which is an OrderedDict, but mconf changes to a plain dict. This will
work fine with Python 3.7+, but not with 3.5 and 3.6
|
|
|
|
|
|
Extend native files to store install path information
|
|
mconf: Use introspection to print the project default options (fixes #2543)
|
|
This allows the person running configure (either a developer, user, or
distro maintainer) to keep a configuration of where various kinds of
files should end up.
|
|
|
|
Instead use coredata.compiler_options.<machine>. This brings the cross
and native code paths closer together, since both now use that.
Command line options are interpreted just as before, for backwards
compatibility. This does introduce some funny conditionals. In the
future, I'd like to change the interpretation of command line options so
- The logic is cross-agnostic, i.e. there are no conditions affected by
`is_cross_build()`.
- Compiler args for both the build and host machines can always be
controlled by the command line.
- Compiler args for both machines can always be controlled separately.
|
|
|
|
mintro: Added `meson-info.json` introspection information about the latest meson run
|
|
Also, options are now responsible for providing a suitable printable
representation of their value instead of handling this at the caller.
|
|
|
|
mintro: Save introspection to disk and --targets modifications
|
|
|
|
|