Dylan Baker
7641bfd0ce
interpreterobjects: use typed_* with configuration_data.merge_from
2022-01-18 17:53:29 -05:00
Dylan Baker
f7cbe89a13
interpreterobjects: use typed_* with configuration_data.get_unquoted
2022-01-18 17:53:29 -05:00
Dylan Baker
baa9ecb1c4
interpreterobjects: use typed_args for configuration_data.get
2022-01-18 17:53:29 -05:00
Dylan Baker
65558445ae
interpreterobjects: use typed_pos_args and noKwargs for configuration.data.has
2022-01-18 17:53:29 -05:00
Dylan Baker
1ff2abcd9c
interpreterobjects: use typed_kwargs for dependency.get_variable
2022-01-18 17:53:29 -05:00
Dylan Baker
1751dc4701
interpreterobjects: use typed_kwargs for dependency.get_pkgconfig_variable
2022-01-18 17:53:29 -05:00
Dylan Baker
6b272973e0
dependencies: don't pass kwargs from get_pkgconfig_variable
...
This is a layering violation, we're relying on the way the interpreter
handles keyword arguments. Instead, pass them as free variables,
destructuring in the interpreter
2022-01-18 17:53:29 -05:00
Dylan Baker
ab9c0c1735
interpreterobjects: use typed_kwargs for FeatureOption.require
2022-01-18 17:53:29 -05:00
Dylan Baker
55055c3e0e
interpreterobjects: use typed_pos_args for FeatureOpotion
2022-01-18 17:53:29 -05:00
Dylan Baker
6ad772cb37
interpreterobjects: use typed_pos_args for dependency.as_system_method
2022-01-18 17:53:29 -05:00
Dylan Baker
7537ec3299
interpreterobjects: use typed_pos_args for dependency.get_configtool_variable
2022-01-18 17:53:29 -05:00
Dylan Baker
0fa3436645
interpreterobjects: use typed_pos_args for dependency.get_pkgconfig_variable
2022-01-18 17:53:29 -05:00
Dylan Baker
482ab09a95
interpreterobjects: consistently use dependency. for error messages
...
We currently use a mixture of dependency, Dependency, and dep
2022-01-18 17:53:29 -05:00
Daniel Mensinger
c5ce9744b2
Fix mypy errors
2021-12-17 14:00:28 -05:00
Paolo Bonzini
10329a1ebc
interpreter: use build.GeneratedTypes
...
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-12-06 13:27:12 -08:00
Paolo Bonzini
901f444ea5
interpreter: allow extract_objects to receive generated sources
...
Fixes : #8333
2021-12-06 13:27:12 -08:00
Pablo Correa Gómez
4f882ff8ec
add install_symlink function
...
Allows installing symlinks directly from meson, which can
become useful in multiple scenarios. Current main use is to
help moving forward #9557
2021-12-01 13:59:54 -05:00
Eli Schwartz
0ac2e4bb90
fix broken FeatureNew checks that never printed
...
They passed the arguments in the wrong order, so the version parsed as the
message and the message parsed as a version.
While we are at it, pass the location node in too.
2021-11-30 00:16:14 -05:00
Benoit Pierre
007c4659c2
interpreter: fix `feature.require` handling of error message
...
Don't show a blank error when no `error_message` was passed as argument.
2021-11-25 20:13:53 -05:00
Eli Schwartz
038b31e72b
various manual conversion of percent-formatted strings to f-strings
2021-11-01 20:26:18 -04:00
rusty-snake
85e92b5c4e
Typo fixes (CustomTaget -> CustomTarget)
2021-10-30 14:29:17 -04:00
Christian Clauss
a5020857f3
Fix typos discovered by codespell
2021-10-10 16:12:25 -04:00
Eli Schwartz
108bd996ee
add install_emptydir function
...
This replaces the absolute hack of using
```
install_subdir('nonexisting', install_dir: 'share')
```
which requires you to make sure you don't accidentally or deliberately
have a completely different directory with the same name in your source
tree that is full of files you don't want installed. It also avoids
splitting the name in two and listing them in the wrong order.
You can also set the install mode of each directory component by listing
them one at a time in order, and in fact create nested structures at
all.
Fixes #1604
Properly fixes #2904
2021-10-08 14:35:00 -04:00
Eli Schwartz
1bb2523e58
remove f from f-string that has no formatting
2021-10-04 16:29:31 -04:00
Daniel Mensinger
6b00c7dc81
Remove helpers.check_stringlist()
2021-09-25 12:44:11 +02:00
Daniel Mensinger
43a6b5bd5e
interpreter: Remove permissive from _unholder
2021-09-01 19:17:01 +02:00
Dylan Baker
1fc3d8608d
pylint: enable unnecessary-not check
...
This finds things like
```python
if not x == 1:
```
which should be
```python
if x != 1:
```
2021-08-31 16:28:54 -04:00
Dylan Baker
81f5cee218
interpreter: rename EnvironmentVariablesObject -> EnvironmentVariablesHolder
...
This is more consistent with other Holder classes
2021-08-30 18:05:02 -07:00
Dylan Baker
43f942be34
interpreterobjects: Use typed_kwargs for EnvironmentVariablesObject
2021-08-30 18:05:02 -07:00
Dylan Baker
3731e1d8f3
make EnvironmentVariablesObject a proper holder
...
Currently, EnvironmentVariablesObject is a strange
holder-that's-not-a-holder. This has implicaitons for things that expect
to get an EnvironmentVariables object, as we can't automatically
unholder it, and instead have to to manually do so. Now we can
automatically unholder it, which makes everything much nicer.
2021-08-30 18:05:02 -07:00
Dylan Baker
d6a1f85248
Allow EnvironmentVariablesObject to be passed an EnvironmentVariables instance
2021-08-30 18:05:02 -07:00
Dylan Baker
11fbaf29d8
interpreter: fix cases of `KwargInfo(..., T, default=None)`
...
The correct way to mark these is `KwargInfo(..., (T, type(None)))`.
There's also a few cases of `(T, None)` which is invalid, as `None`
isn't a type
2021-08-27 14:54:29 -07:00
Dylan Baker
abababfb93
interpreterobjects: fix Test annotations
2021-08-20 18:57:19 +02:00
Dylan Baker
a1fb3199c8
interpreterobjects: Add TypedDict annoations for `extract_search_dirs`
...
This allows for more accurate type checking
2021-08-16 16:21:51 -07:00
Eli Schwartz
dd31891c1f
more f-strings too complex to be caught by pyupgrade
2021-07-05 17:55:04 +03:00
Eli Schwartz
c4f5f6364e
pyupgrade
2021-07-05 17:55:04 +03:00
Tristan Partin
6f3f43bb2d
Flatten test suite value
...
This behavior is more inline with the rest of Meson
2021-07-02 21:58:22 +03:00
Daniel Mensinger
971a0b1775
fix: get_variable default variables are not ObjectHolders ( fixes #8936 )
2021-07-02 17:14:44 +03:00
Daniel Mensinger
8f7343831b
refactor: Refactor BothLibraries logic
...
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.
2021-06-26 12:49:35 +02:00
Daniel Mensinger
0c4dd81c4d
fix: Handling BothLibraries objects ( fixes #8907 )
2021-06-22 21:09:19 +02:00
Daniel Mensinger
5cd9f88d6c
fix: Ensure that build targets have all methods from ExternalProgram
...
As a side-effect from #8885 `find_program()` returns now `Executable`
objects when `meson.override_find_program` is called with an
executable target. To resolve this conflict the missing methods
from `ExternalProgram` are added to `BuildTarget`.
2021-06-21 20:19:06 +03:00
Daniel Mensinger
7c757dff71
holders: Fix the remaining code to respect the holder changes
2021-06-18 23:48:33 +02:00
Daniel Mensinger
84a3e459a8
holders: Introduce BothLibraries
2021-06-18 23:48:33 +02:00
Daniel Mensinger
c2c7f7c9d7
holders: Ensure that InterpreterBase is the sole instance for (un)holderifying
2021-06-18 23:48:33 +02:00
Daniel Mensinger
6879e84c48
holders: Move get_version from directly to ExternalProgram
2021-06-18 23:48:33 +02:00
Daniel Mensinger
66b32a4591
holders: Introduce HoldableObject
2021-06-18 23:48:33 +02:00
Daniel Mensinger
d601227cb2
interpreter: Add FileHolder and remove specical case for File
2021-06-18 23:48:33 +02:00
Daniel Mensinger
63ade7d937
interpreter: Add a new MesonInterpreterObject for non-elementary objects
2021-06-18 23:48:33 +02:00
Daniel Mensinger
2b09af834a
interpreter: Refactor ObjectHolder to extend InterpreterObject
2021-06-18 23:48:33 +02:00
Daniel Mensinger
2c08e55f85
typing: Import missing classes in interpreterobjects.py
2021-06-18 23:48:33 +02:00