Age | Commit message (Collapse) | Author | Files | Lines |
|
This reverts commit e945f35cd72402d0d204ff10870e2a95c59b6192.
With MSYS2 udpating to Python 3.11, this should no longer be needed.
See https://github.com/msys2/MINGW-packages/issues/17415#issuecomment-1606085553
|
|
For some (atm unknown) reason mingw Python fails to load some modules
when MSYS2 is removed from PATH, like in this test.
Skip for now to make the test suite pass again. Once
https://github.com/msys2-contrib/cpython-mingw/issues/141 is fixed
this can be reverted.
|
|
We can remove these from `permittedKwargs` (like we've already done for
`typed_kwargs`) and then remove the in body checks.
|
|
|
|
Just like python, but for the python3 module
|
|
|
|
We cannot re-use the existing KwargInfo, since we need to know if the
keyword was set explicitly or not, since it conflicts with `install_dir`
|
|
|
|
|
|
The wording was a bit confusing and misled at least one person into
thinking it behaved like `str.replace('c', '')` operating on the entire
line. Tweak the wording to be more precise and avoid this confusion.
|
|
This fixes two issues in constructing the default installation path
when install_dir is not specified:
- inside a subproject, install_data() would construct the destination
path using the parent project name instead than the current project
name,
- when specifying preserve_path, install_data() would construct the
destination path omitting the project name.
Fixes #11910.
|
|
The function name adheres to the pattern used by many other Meson DSL
implementation methods, thus stating that this is the implementation
of the functionality without argument validation is not very useful.
The docstring is separated from the function declaration by a blank
line. Removing the docstring avoids having to decide if the blank line
should be there or not.
|
|
These all break down into either a single file or a file + header. This
means a little more customization per class, but not too much.
|
|
The only real differences between these generators is the file extension
and the templates themselves. We can uses a shared abstract class
with a few abstract properties to provide all of this to the same base
class. This results in less code duplication and easier maintanence.
I've made a few cleanups to the shared template:
- use `str.capitalize()` instead of `str.upper()[0] + str[1:]`
- use `open` as a context manager
- use f-strings
- put some duplicate calculations in the initializer
|
|
|
|
Which gives more exact errors
|
|
|
|
|
|
Every class implements the exact same initializer, simplify this by
putting it in the base class initializer
|
|
Don't import things we don't actually need at runtime
|
|
Which gives better type hinting. It also points out that we're changing
the type of sourcefiles. That's now fixed
|
|
|
|
Which must come before `from __future__`
|
|
mesonbuild.dependencies.* is now lazy-imported and not automatically
detected. Add them as hidden imports.
Fixes #12036
|
|
Since it's deprecated anyway, we don't really want to plumb it all the
way down into the build and backend layers. Instead, we can just turn
it into a `win_subsystem` value in the interpreter if `win_subsystem`
isn't already set.
|
|
|
|
|
|
When the pkgconfig module is imported, but not used, it will insert None
on the end of the devenv list. This list is not expected to contain
None, and causes Meson to crash. This can happen in complex build setups
(reported from mesa), where pkgconfig is only used in some
configurations
Fixes: #12032
|
|
Down from 607 mypy errors to 379.
|
|
We need to verify that we don't produce multiple rules for the same
file. This uniqueness check is easy to do with a set, but the original
old implementation used a dict with True as the value. This isn't a
terrible way to implement a set -- we do it for our own internal
OrderedSet implementation, even, and back in prehistory (python 2.3) the
standard library's set type was one. But it was deleted and replaced
with a fast native implementation, and we should too.
|
|
I originally refactored this wrapper function in commit
dd2f1c4c57874a0efcd9f6d331985c408101c30d and at the time I made it take
the following call pattern:
```
self.create_phony_target(self.all_outputs, ..., implicit_outs=None)
```
I am not sure *why*. There are a couple problems here:
- When creating a phony target, there are never implicit outs and we never
try to create them.
- It's invalid to call it without self.all_outputs as the first argument,
so really we should just use that directly.
This made the function signature pointlessly longer and more
complicated.
|
|
We always expect the args parameter in the wrapped function to
eventually receive a tuple due to reasons. But in one specific optargs
condition we passed it along without any fixup at all.
|
|
We know exactly what type we need, since the interpreter function is
correctly typed and thinly wraps over this. But we didn't even get the
container type correct. :(
|
|
|
|
|
|
This does nothing, so just delete it.
|
|
This would be either the value `kwargs['install']`, or `False`. There
isn't any case that `BuildTarget.need_install` handles that
`BuildTarget.install` doesn't handle, if we just initialized it
correctly. So, just set Target.install correctly in the super
initializer, and do away with need_install.
|
|
the previous version didn't even link to libhdf5_cpp.so
|
|
the config tool provided by HDF5 correctly
links to the C libraries without explicit
sub-dependancy
|
|
|
|
|
|
Before:
[117.000] Subprojects
[117.000] OptelMessagingApi : [117.000] YES
[117.000] Python27 : [117.000] YES
[117.000] op300rtos : [117.000] YES
[117.000] optel-common-protos: [117.000] YES
After:
[38.938] Subprojects
[38.938] OptelMessagingApi : YES
[38.938] Python27 : YES
[38.938] op300rtos : YES
[38.938] optel-common-protos: YES
|
|
When running setup with `--profile-self` option,
there are currently no logs after "Found ninja...". However, there are
still some lengthy processes for generating targets and ninja.build.
This add more log entries, when profiling, only for the purpose of
displaying the timestamps of the different steps in ninja generation.
|
|
|
|
Jar has a very low set of overlap with other target types, including
that jar sources *must* be .java, and no other target allows .java
sources. As such, the difficulty in crafting a useful `build_target`
invocation that allows both `jar` and anything else is high, and the
usefulness is dubious. Just use `jar()` directly instead.
This depends on the changes to make all of the jar() specific keyword
arguments be handled by typed_kwargs so that the deprecation messages
are correct and consistent.
|
|
Which lets us remove a bunch of validation code
|
|
With the added bonus of adding the correct `since` checking values!
|
|
Also move it into the Jar class. This is an exclusive Jar keyword
argument, and is only used inside java paths, so there's no reason to
have this in all build targets.
|
|
This moves to a list of shared objects inside the type_checking module.
This is based on my experience of fully typing all of these functions
several times, and will make it easier to slowly land all of the changes
we want to make.
|
|
This doesn't do much yet, but with my advanced knowledge of what's
coming this lays out most of what we're going to need
|