Age | Commit message (Collapse) | Author | Files | Lines |
|
The problem is what happens in this case:
```meson
add_project_arguments('-DHOST', language : 'c', native : false)
add_project_arguments('-DBUILD', langauge : 'c', native : true)
```
The original meson behavior was that in an host == build configuration
only the `native : false` would be applied. This doesn't really make
sense as in that case the build machine is the host machine, so it is
both the native and non-native machine at once. We changed this so that
the both would be applied in a host == build configuration, but this is
a behavioral change, and needs to be reverted.
Fixes: #9037
|
|
I was debugging this code, these were trivial, so I added them.
|
|
|
|
It needs this to match the behavior of CustomTarget and
CustomTargetIndex, the later of which doesn't have a subdir attribute,
just `get_subdir()`
|
|
Fix ERROR: Argument <CustomTargetIndex:...>[0]> in "command" is invalid.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
|
|
|
This commit introduces a new type of `HoldableObject`: The
`SecondLevelHolder`. The primary purpose of this class is
to handle cases where two (or more) `HoldableObject`s are
stored at the same time (with one default object). The
best (and currently only) example here is the `BothLibraries`
class.
|
|
This moves all the compiler detection logic into the new
compilers.detect module. This dramatically reduces the size
and complexity of Environment.
|
|
Add annotations for the various install_* functions
|
|
|
|
extract_objects: fixes, tests and documentation for using the result in a custom_target
|
|
There's no reason to allow None into the backend, it already has code to
check that all of the values of the FileMode object are None, so let's
use that, which is much simpler all the way down.
|
|
But we don't properly handle that.
|
|
As seen in the testcase, passing objects to custom_target does not work
if headers are passed extract_objects(), or if extract_all_objects() is used
and the sources include any header files. To fix this, use the code that
already exists for unity build to filter out the nonexistent ".h.o" files.
This already gives for free the handling of genlist, which was mentioned
in a TODO comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For generator.process_files. Just cleaner and nicer
|
|
It's really a property of the Generator what name to use, not something
that should be passed to each call to process files.
|
|
For qt we already have all of the necissary checking in place. Now in
the interpreter we have the same, the intrperter does all of the
checking, then passed the arguments to the Generator initializer, which
just assigns the passed values. This is nice, neat, and clean and fixes
the layering violatino between build and interpreter.
|
|
This requires that the interpreter has done the validation, which it now
does at all callsites. This simplifies the Generator initializer.
|
|
These are Dict[str, Dict[str, List[str]]], unlike global arguments
because they must store the information per subproject
|
|
|
|
pyupgrade didn't catch many .format() methods which were too complex
(e.g. multiline or applied to templates rather than string literals)
|
|
Since cython transpiles to C.
|
|
|
|
They're not 100% complete, but it's mostly there.
|
|
|
|
To avoid mutation if possible.
|
|
Thankfully the typing module provides us an immutable protocol for
mappings, so we don't have to write one ourselves.
|
|
When mutable items are stored in an lru cache, changing the returned
items changes the cached items as well. Therefore we want to ensure that
we're not mutating them. Using the ImmutableListProtocol allows mypy to
find mutations and reject them. This doesn't solve the problem of
mutable values inside the values, so you could have to do things like:
```python
ImmutableListProtocol[ImmutableListProtocol[str]]
```
or equally hacky. It can also be used for input types and acts a bit
like C's const:
```python
def foo(arg: ImmutableListProtocol[str]) -> T.List[str]:
arg[1] = 'foo' # works while running, but mypy errors
```
|
|
|
|
|
|
This way if we're doing a host == build configuration then the build and
host dependencies will be stored correctly.
|
|
|
|
|
|
|
|
The build level shouldn't be deal with interpreter objects, by the time
they leave the intpreter they should be in the Meson middle layer
representaiton
|
|
Fixes: #8618.
|
|
|
|
|
|
They are not used anywhere.
|
|
* environment(): Allow stacking append() and prepend()
* Update docs/markdown/Reference-manual.md
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
|