aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2021-06-22interpreter: use typed_pos_args for install_manDylan Baker1-2/+5
2021-06-22interpreter: use typed_kwargs for install_headersDylan Baker2-12/+18
2021-06-22interpreter: use typed_pos_args for install_headersDylan Baker1-4/+5
2021-06-22interpreter: use typed_kwargs for install_dataDylan Baker2-26/+25
2021-06-22interpreter: use typed_pos_args for install_dataDylan Baker1-2/+4
2021-06-22interpreter: use typed_kwargs for install_subdirDylan Baker2-41/+99
2021-06-22interpreter: use typed_pos_args for install_subdirDylan Baker1-7/+3
2021-06-22interpreterbase: Add evolve to KwargInfoDylan Baker1-0/+41
This works just like OptionKey.evolve, pass new keyword arguments to override old ones, otherwise the original versions are copied to the new one.
2021-06-22interpreter: add overload for source_strings_to_filesDylan Baker1-0/+4
when only passing strings or Files we only get back Files. This is useful for the install_* methods
2021-06-22mesonlib: add rsplit and and maxsplitDylan Baker1-2/+5
Since string has a maxsplit as well, we should implement that for polymorphism
2021-06-22mesonlib: Fix FileMode type annotationsDylan Baker2-3/+4
2021-06-22minstall: fix type annotation for add_argumentsDylan Baker1-1/+1
This takes an `argparse.ArgumentParser` instance, not a namespace
2021-06-22backend: Headers.install_subdir is allowed to be NoneDylan Baker2-2/+7
But we don't properly handle that.
2021-06-22extract_objects: skip headers when building custom_target command linePaolo Bonzini1-4/+6
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.
2021-06-22Fixed style issue as per comments on PR 8911.Justin Handville1-2/+1
2021-06-22Fix for Issue 8910 (Meson filters CMake asm files)Justin Handville2-2/+5
2021-06-22interpreter: Replace manual kwarg validation in ↵Laurin-Luis Lehning1-6/+7
compiler.get_supported_arguments with @typed_kwargs
2021-06-21fix: Ensure that build targets have all methods from ExternalProgramDaniel Mensinger2-9/+18
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-21interpreter: Move argument checks from add_*_arguments to ↵Laurin-Luis Lehning3-23/+18
compiler.get_supported_arguments
2021-06-21interpreter: Consider the compiler language before checking argumentsLaurin-Luis Lehning1-1/+4
2021-06-21interprter: Add required kwarg to add_(project|global)_argumentsLaurin-Luis Lehning2-2/+17
To avoid manual compiler support checks add_project_arguments and add_global_arguments receive a new keyword argument to perform them automatically.
2021-06-20fix: dicts and list need _holderify for fallbackDaniel Mensinger1-2/+2
2021-06-20fix: Fix strange holder_map bug in combination with subprojectsDaniel Mensinger1-9/+6
I was unable to reproduce this in a minimal test-case, so there is currently no new test :(
2021-06-20fix: Fix set_variable not holderifying (fixes #8904)Daniel Mensinger2-8/+21
2021-06-18holders: Fix the remaining code to respect the holder changesDaniel Mensinger12-497/+504
2021-06-18holders: remove unholderDaniel Mensinger19-246/+203
2021-06-18holders: Introduce BothLibrariesDaniel Mensinger4-76/+106
2021-06-18holders: Ensure that InterpreterBase is the sole instance for (un)holderifyingDaniel Mensinger7-104/+251
2021-06-18holders: Move get_version from directly to ExternalProgramDaniel Mensinger2-22/+22
2021-06-18holders: Introduce HoldableObjectDaniel Mensinger11-39/+60
2021-06-18interpreter: Add FileHolder and remove specical case for FileDaniel Mensinger3-8/+10
2021-06-18interpreter: Meson does not have floats --> remove themDaniel Mensinger2-3/+3
2021-06-18interpreter: Add a new MesonInterpreterObject for non-elementary objectsDaniel Mensinger7-25/+43
2021-06-18interpreter: Refactor interpreter.compiler to use ObjectHolderDaniel Mensinger3-17/+24
2021-06-18interpreter: Refactor ObjectHolder to extend InterpreterObjectDaniel Mensinger2-69/+47
2021-06-18decorators: Add not_set_warning to KwargInfoDaniel Mensinger1-1/+7
2021-06-18decorators: Fix typoDaniel Mensinger1-1/+1
2021-06-18build: textwrap.dedent() some stringsDaniel Mensinger1-10/+18
2021-06-18typing: Import missing classes in interpreterobjects.pyDaniel Mensinger1-0/+2
2021-06-18mesonlib: Add MesonBugExceptionDaniel Mensinger1-0/+9
2021-06-18modules/qt: use append rather than extend in preprocessDylan Baker1-3/+3
Because that's what we need, of course
2021-06-18modules/qt: allow string values for include_directoriesDylan Baker1-4/+4
This should have been supported before, but wasn't.
2021-06-18build: add type annotations for the IncludeDirs objectDylan Baker1-9/+11
2021-06-18interpreter: add type annotations to build_incdir_objectDylan Baker1-29/+30
and use textwrap.dedent to make the very large messages more readable and not break method folding.
2021-06-18dependency: Empty fallback is the same as allow_fallback: falseXavier Claessens1-0/+4
2021-06-17intl custom dependencyEli Schwartz2-2/+29
Checking how to aquire the *gettext family of symbols portably is annoyingly complex, and may come from the libc, or standalone. builtin dependency: This detects if libintl is unneeded, because the *gettext family of symbols is available in the libc. system dependency: This detects if libintl is installed as separate software, linkable via -lintl; unfortunately, GNU gettext does not ship pkg-config files for it. Fixes #3929
2021-06-17expose SystemDependency and BuiltinDependency as toplevel classesEli Schwartz2-3/+6
mesonbuild.dependencies.__init__ exposes configtool, pkgconfig, cmake and more in __init__.py, so there's no reason we should be tying SystemDependency to the internal organization implementation of the subpackage! In the 2nd previous commit it took quite some effort to figure out that the python module "does not exist" because of import errors while refactoring something completely different.
2021-06-17add new dependency type "builtin"Eli Schwartz2-1/+22
For dependencies that on some systems are built into libc etc. and don't need to be separately linked. This is distinct from "system" dependencies which add linker args.
2021-06-17move base class for system dependencies into base.pyEli Schwartz11-44/+26
In accordance with review comments; it's small enough this seems fitting.
2021-06-16interpreter: Extract dependency() logic into its own helper classXavier Claessens3-306/+372
The dependency lookup is a lot of complex code. This refactor it all into a single file/class outside of interpreter main class. This new design allows adding more fallbacks candidates in the future (e.g. using cc.find_library()) but does not yet add any extra API.