aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2021-09-30build: Add type annotations to AliasTargetDylan Baker1-1/+2
It's just a RunTarget with one default value overriden
2021-09-30interpreter: use typed_kwargs on func_run_targetDylan Baker2-23/+31
2021-09-30build: drop unnecissary method from RunTargetDylan Baker1-3/+0
2021-09-30build: Fully annotate RunTargetDylan Baker1-5/+10
2021-09-30build: Add full type annotations to CommandBaseDylan Baker1-2/+3
2021-09-30build: add forward delcarations to CommandBase classDylan Baker1-0/+5
It would probably be better if CommandBase had an initializer so it could set the depend_files and dependencies attributes itself, but this will make mypy happier.
2021-09-30build: Add a couple of obvious annotations to RunTargetDylan Baker1-2/+2
2021-09-30interpreterbase/decorators: KwargIfno validator must take an relaxed typeDylan Baker1-1/+1
I've used any because it needs to be infinitely recursive, something that we simply can't model. But basically until it goes into validator we have no way of knowing what's going on, since one can write code like: ```python KwargInfo[str]('arg', object, validator=_some_very_complex_logic_to_get_specific_string) ``` As such, we can't assume that validator is receiving a type _T, it could be anything.
2021-09-30Make custom_target() name argument optionalXavier Claessens3-4/+14
2021-09-29Fix mypy errorsmakise-homura2-5/+9
2021-09-29compilers/elbrus: Deal with C/C++/Fortran stds more correctlymakise-homura4-14/+43
2021-09-29compilers: Select correct clang on e2k for C++ and ObjC++makise-homura1-2/+2
2021-09-29compilers: There is clang for e2k (elbrus) platform finallymakise-homura1-6/+4
2021-09-29compilers/elbrus: Support prelinking with lcc correctlymakise-homura1-0/+3
2021-09-29compilers/elbrus: Fix incorrect inheritance model of Elbrus*Compilermakise-homura4-13/+14
2021-09-29external-project: variables must be dict not listXavier Claessens1-1/+1
Fixes: #9316
2021-09-29Revert "mtest: fix test output issues (in console)"Paolo Bonzini2-212/+201
This reverts commit 5fcb0e6525e2044e0f82bda488a51350e0f7f29f. The commit is a massive change that should have been split in separate pieces, and it also removes a few features: * in verbose mode, subtests are not printed as they happen * in non-verbose mode the progress report does not include the number of subtests that have been run * in non-parallel mode, output is batched rather than printed as it happens Furthermore, none of these changes are not documented in the release notes. Revert so that each proposal can be tested, evaluated and documented individually.
2021-09-29modules: python: better handling of the Python paths for DebianFilipe Laíns1-8/+35
Hardcoding the name is fragile, and enabling it based on the existence of /etc/debian_version (as the is_debianlike helper does) will result in incorrect paths if the Python binary is not provided by Debian. Using the deb_system distuils scheme instead makes sure we use the install path from the current interpreter, which Debian could change between releases, and gives us the correct value on Python installations that are not provided by Debian (eg. deadsnakes, Github Action Python, etc.) Do notice, though, that there is still no guarantee that these are the correct paths, as they assume all schemes paths have the install prefix as a base, see #9284. Signed-off-by: Filipe Laíns <lains@riseup.net>
2021-09-28Merge pull request #9014 from bonzini/mixed-language-linkJussi Pakkanen4-8/+41
Use appropriate compiler for the source file for "links" tests with file argument
2021-09-26fix message function accepting bools and casting to stringEli Schwartz1-0/+2
This was allowed by accident despite what meson said would work, because in python a bool counts as a subclass of int.
2021-09-25dependencies: Add JDK system dependency for SolarisAlan Coopersmith1-0/+2
Handle is_sunos() machines in __machine_info_to_platform_include_dir
2021-09-25Merge pull request #8773 from dcbaker/submit/rustc-enhancements-clippyJussi Pakkanen4-19/+66
More enhancements for Rust + clippy support
2021-09-25interpreter: Add FeatureNew checkDaniel Mensinger1-0/+12
2021-09-25Remove helpers.check_stringlist()Daniel Mensinger8-32/+48
2021-09-25interpreter: Introduce StringHolderDaniel Mensinger10-131/+207
Another commit in my quest to rid InterpreterBase from all higher level object processing logic. Additionally, there is a a logic change here, since `str.join` now uses varargs and can now accept more than one argument (and supports list flattening).
2021-09-25mtest: fix test output issues (in console)Hemmo Nieminen2-201/+212
This change set aims to fix various "issues" seen with the current implementation. The changes can be summarized with the following list: * Replace emojis and spinners with multiline status displaying the name and running time of each currently running test. * The test output (especially in verbose mode or when multiple failing tests' output gets printed out) can get confusing. Try to make the output easier to read and grasp. Most notable change here is the addition of the test number to the beginning of each printed line. * Print exit details (i.e. exit code) of the test in verbose mode. * Try to make the verbose "live" output from tests to match the look and feel of otherwise produced (verbose) test output.
2021-09-24compilers/rust: Add support for clippyDylan Baker3-9/+34
Clippy is a compiler wrapper for rust that provides an extra layer of linting. It's quite popular, but unfortunately doesn't provide the output of the compiler that it's wrapping in it's output, so we don't detect that clippy is rustc. This small patch adds a new compiler class (that is the Rustc class with a different id) and the necessary logic to detect that clippy is in fact rustc) Fixes: #8767
2021-09-24compilers/detect: use linker_always_args as well as linker exe_listDylan Baker1-1/+1
Otherwise we don't get critical arguments like -fuse=lld.
2021-09-24ninjabackend: Rust use Backend.generate_basic_compiler_argsDylan Baker1-9/+1
Instead of open coding it. This simplifies things, and fixes some missing functionality
2021-09-24rustc: implement pic argsDylan Baker1-0/+9
2021-09-24compilers/rust: Implement warning levelsDylan Baker1-0/+14
Currently this implements 3 warning levels, 1 and 2 are just the "default" set by rustc, 3, is "everything is a warning", and 0 is "nothign is a warning".
2021-09-24rust: Add werror argumentsDylan Baker1-0/+5
2021-09-24compilers/detect: avoid mutating rustc compiler listDylan Baker1-0/+2
Because mutation is bad.
2021-09-25compilers: Add default search path stdlib_only_link_flagsDylan Baker4-14/+62
This should be done in all cases of language_stdlib_only_link_flags, but I don't have access to all of the compilers to test it. This is required in cases where object files created by gfortran are linked using another compiler with a differen default search path, such as gfortran and clang together.
2021-09-24Merge pull request #9167 from dcbaker/submit/meson-main-type-checkingJussi Pakkanen14-154/+206
Add type annotations and type checking to meson main
2021-09-24Add option to to transpile Cython to C++Dylan Baker4-7/+54
This patch adds a new meson built-in option for cython, allowing it to target C++ instead of C as the intermediate language. This can, of course, be done on a per-target basis using the `override_options` keyword argument, or for the entire project in the project function. There are some things in this patch that are less than ideal. One of them is that we have to add compilers in the build layer, but there isn't a better place to do it because of per target override_options. There's also some design differences between Meson and setuptools, in that Meson only allows options on a per-target rather than a per-file granularity. Fixes #9015
2021-09-24interpreter/mesonmain: remove unreachable codeDylan Baker1-5/+2
Now that we have type checking, we can be sure that this code is unreachable, and remove it.
2021-09-24pylint: check for duplicate importsDylan Baker6-8/+6
I ran into one of these from LGTM, and it would be nice if pylint could warn me as part of my local development process instead of waiting for the CI to tell me.
2021-09-24interpreter/mesonmain: Fix remaining typing problems and add to run_mypyDylan Baker1-25/+36
2021-09-24build: use an object rather than a dict for the dep_manifestDylan Baker7-15/+32
This really is more of a struct than a dict, as the types are disjoint and they are internally handled, (ie, not from user input). This cleans some things up, in addition I spotted a bug in the ModuleState where the dict with the version and license is passed to a field that expects just the version string.
2021-09-24interpreter/mesonmain: Add full set of typed_argument guardsDylan Baker1-99/+122
2021-09-24interpreter/mesonmain: fix type annotationsDylan Baker1-3/+3
Taht should have been converted to build/program module objects, not interpterter objects
2021-09-24interpreter: Add a few missing type annotationsDylan Baker1-3/+6
Just enough to make interpreter/mesonmain happy
2021-09-24scripts/meson_exe: narrow type annotationDylan Baker1-1/+1
Not just a `dict`, but a `dict[str, str]`
2021-09-24scripts/meson_exe: close fd if we open itDylan Baker1-0/+3
2021-09-24build: Add annotation to dist_Scripts and install_scriptsDylan Baker1-2/+2
2021-09-24build: add some missing type annotationsDylan Baker1-3/+3
So that we can get interpreter/mesonmain.py type safe.
2021-09-24mlog: fix annotationDylan Baker1-1/+1
2021-09-22Merge pull request #9274 from anarazel/fix-vs-static-generatedJussi Pakkanen1-0/+3
backends/vs: Set ObjectFileName for generated sources.
2021-09-21Use -Oz when optimization=s in ClangAndrea Pappacoda2-2/+2
-Oz is the appropriate flag to use when you want to produce the smallest possible binary, and is one would expect when setting optimization to s or using the minsize build type.