| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| | |
Dependency.get_variable method
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | | |
coredata: add pkg_config_path to depedency cache key
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
The actual data is in Coredata (which is serialized) and we just held a
reference in Build for (in)convenience.
|
| |/ /
| |
| |
| |
| |
| |
| |
| | |
It doesn't make much sense to have this and not also have
cross-compilers (so any use of this is already pretty suspect as
probably wrong when cross-compiling).
This information is accessible anyhow via environment.coredata.
|
| |\ \
| | |
| | | |
Mtest annotations and bug fixes
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This function is currently setup with keyword arguments defaulting to
None. However, it is never called without passing all of it's arguments
explicitly, and only one of it's arguments would actually be valid as
None. So just drop that, and make them all positional. And annotate
them.
|
| | |/
| |
| |
| | |
This is needed for mtest, in a round about way through backends
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Meson itself *almost* only cares about the build and host platforms. The
exception is it takes a `target_machine` in the cross file and exposes
it to the user; but it doesn't do anything else with it. It's therefore
overkill to put target in `PerMachine` and `MachineChoice`. Instead, we
make a `PerThreeMachine` only for the machine infos.
Additionally fix a few other things that were bugging me in the process:
- Get rid of `MachineInfos` class. Since `envconfig.py` was created, it
has no methods that couldn't just got on `PerMachine`
- Make `default_missing` and `miss_defaulting` work functionally. That
means we can just locally bind rather than bind as class vars the
"unfrozen" configuration. This helps prevent bugs where one forgets
to freeze a configuration.
|
| |/
|
|
|
|
|
| |
This avoids the duplication where the option is stored in a dict at its
name, and also contains its own name. In general, the maxim in
programming is things shouldn't know their own name, so removed the name
field just leaving the option's position in the dictionary as its name.
|
| | |
|
| |
|
|
|
|
| |
* Failing test case for trying to install_data a custom_target
* Validate install_data() arguments are either string or file
|
| |\
| |
| | |
Cache compilers.compile() in coredata
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | | |
Added flake8 plugins and some code fixes
|
| | | | |
|
| | | | |
|
| | |/ |
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This isn't safe given the way python implements default arguments.
Basically python store a reference to the instance it was passed, and
then if that argument is not provided it uses the default. That means
that two calls to the same function get the same instance, if one of
them mutates that instance every subsequent call that gets the default
will receive the mutated instance. The idiom to this in python is to use
None and replace the None,
def in(value: str, container: Optional[List[str]]) -> boolean:
return src in (container or [])
if there is no chance of mutation it's less code to use or and take
advantage of None being falsy. If you may want to mutate the value
passed in you need a ternary (this example is stupid):
def add(value: str, container: Optional[List[str]]) -> None:
container = container if container is not None else []
container.append(value)
I've used or everywhere I'm sure that the value will not be mutated by
the function and erred toward caution by using ternaries for the rest.
|
| |\
| |
| | |
Add a report of compilers used to run_project_tests.py
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
Also add a test for it so we don't regress this in the future.
Closes https://github.com/mesonbuild/meson/issues/5281
|
| |/
|
|
|
|
|
|
| |
Warn when someone tries to use append() or prepend() on an env var
which already has an operation set on it. People seem to think that
multiple append/prepend operations stack, but they don't.
Closes https://github.com/mesonbuild/meson/issues/5087
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we can avoid writing code like:
a = c[0]
b = c[1]
by using:
a, b = c
or
a = c[0]
b = c[1:]
by using:
a, *b = c
This saves just a bit of code and is a teeny bit faster. But mostly
for less code
|
| |
|
|
|
|
| |
Currently this is implemented as range(min(len(a), len(b)), an then
indexing into a and b to get what we actually want. Fortunately python
provides a function called zip that just does this.
|
| | |
|
| |
|
|
|
|
| |
This missing in 0821462ce382541e120d8d6cfc1a3224a492b275
See #4430
|
| |
|
|
|
|
| |
On Windows, program on a different drive than srcdir won't have
an expressible relative path; cmd_path will be absolute instead and
shouldn't get added into build_def_files.
|
| |
|
|
| |
Also, specify what the replacement is.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This function is used just once. It also seems all policy and no
mechanism (it raises, it calls the same function to do all the work
twice in a simple way). This makes it seem to be as a good candidate for
inlining.
`environment` and `coredata` are woefully intertwined and while this
change doesn't fix that, but at least it makes it easier to follow.
|
| |
|
|
|
| |
v2:
Exercise add_lanagues('vala') after 'c' in a test case
|
| |\
| |
| | |
Kconfig Module
|
| | |
| |
| |
| |
| | |
This in turn allows modules to return dictionaries, since their return values
is automatically passed through holderify.
|
| |/
|
|
|
|
|
| |
This patch creates an enum for selecting libtype as static, shared,
prefer-static, or prefer-shared. This also renames 'static-shared'
with 'prefer_static' and 'shared-static' with 'prefer_shared'. This is
just a refactor with no behavioral changes or user facing changes.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides an initial support for parsing TAP output. It detects failures
and skipped tests without relying on exit code, as well as early termination
of the test due to an error or a crash.
For now, subtests are not recorded in the TestRun object. However, because the
TAP output goes on stdout, it is printed by --print-errorlogs when a test does
not behave as expected. Handling subtests as TestRuns, and serializing them
to JSON, can be added later.
The parser was written specifically for Meson, and comes with its own
test suite.
Fixes #2923.
|
| |
|
|
| |
This is the first step towards adding support for TAP.
|
| |
|
|
|
|
|
|
|
|
|
| |
First of all, I'd like compilers and other modules that environment.py
currently imports to be able to take these without creating
hard-to-follow module cycles.
Second of all, environment.py's exact purpose seems a bit obscured.
Splitting the data types (and basic pure functions) from the more
complex logic that infers that data seems like a good way to separate
concerns.
|
| | |
|
| |
|
|
|
|
| |
Need to search based off of `cross_comp`, not `comp`.
Fixes #4822
|