aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-09-24run_mypy: compilers/c_function_attributes is already type safeDylan Baker1-0/+1
2020-09-24run_mypy: all of compilers/mixins is now type safeDylan Baker1-14/+1
2020-09-24compilers/mixins: make xc16 type safeDylan Baker2-2/+8
2020-09-24compilers/mixins: make visual studio type safeDylan Baker2-2/+22
2020-09-24compilers/mixins/pgi: Make type safeDylan Baker2-2/+12
2020-09-24compilers/mixins/islinker: Make type safeDylan Baker2-0/+5
2020-09-24compilers/mixins/intel: make type safeDylan Baker2-12/+23
2020-09-24compilers/mixins/intel: Use the has_func_attribute_extra_args functionDylan Baker2-1/+6
Instead of putting that extra argument in the base compiles() class
2020-09-24compilers/mixins/emscripten: make type safeDylan Baker2-4/+12
2020-09-24compilers/mixins/elbrus: make type safeDylan Baker2-1/+6
2020-09-24compilers/mixins: make compcert type safeDylan Baker2-2/+7
2020-09-24compilers/mixins/clang: Make type safeDylan Baker3-5/+25
2020-09-24compilers/mixings/gnu: make type safeDylan Baker2-11/+35
2020-09-24compilers/mixins/clike: fix mypy issuesDylan Baker7-152/+303
2020-09-24compilers/mixins/ccrx: make mypy safeDylan Baker2-1/+7
2020-09-24compilers/mixins/c2000: Make mypy safeDylan Baker2-1/+7
2020-09-24compilers/mixins/arm: make type safeDylan Baker2-26/+25
2020-09-24compilers/compilers: Fully type annotateDylan Baker7-168/+266
2020-09-24ast/introspection: Fix typing violation due to untyped functionsDylan Baker1-7/+8
When we add type annotations to this in compilers this will break, unless we've already filtered out the non-string arguments.
2020-09-24compilers: Use a distinct type for compile/link resultsDylan Baker5-29/+42
Currently we do some crazy hackery where we add extra properties to a Popen object and return that. That's crazy. Especially since some of our hackery is to delete attributes off of the Popen we don't want. Instead, let's just have a discrete type that has exactly the properties we want.
2020-09-22pylint: turn on a few more errorsDylan Baker1-0/+3
2020-09-22pylint: turn on bad-indentation errorDylan Baker6-30/+31
and fix all of the bad indentation
2020-09-22pylint: turn on warnings for abstract classesDylan Baker1-0/+1
We're using these now, so having some error checking to make sure we don't have paths were we're trying to instantiate an abstract class would be good.
2020-09-22pylint: Turn on warnings for incorrect number of argsDylan Baker3-6/+11
This catches some very real errors. The one in scalapack is pretty silly actually, it's failing to figure out that the exploded list is at least two arguments. However, the code is actually clearer by not using a list and exploding it, so I've done that and pylint is happy too.
2020-09-21docs: Clarify what literal strings mean [skip ci]Nirbheek Chauhan1-2/+3
Someone on IRC was confused by this paragraph.
2020-09-21Improve docs for creating new wraps. [skip ci]Jussi Pakkanen1-16/+85
2020-09-18pylint: Turn on a few more good warningsDylan Baker1-0/+4
2020-09-18pylint: Catch cases of `if len(container)` which should be replaced by `if ↵Dylan Baker3-3/+5
container` Unfortunately this doesn't catch other abuses of len(continauer) like, `len(container) <comparator> 0`, see: https://github.com/PyCQA/pylint/issues/3751
2020-09-18Some fixes for CompCertSebastian Meyer2-4/+4
1. Like with gcc's `ld`, also use the `group_start` code to create a `--start-group`/`--end-group` 2. xc16 tricked into believing the 'link_whole' was about `--*-group`, but it should use gcc's `--whole-archive` instead. 3. Not clear what the get_lib_prefix should really do, but for picolibc it seems I want just `''`. The problem with picolibc was that the `-l` would be prefixed to a lib like `picolib/libm/libm.a`. Though of course the `-l` would be necessary for just a plain `m` (that's what I assumed this would be used for). I think this might need some clarification from the meson devs ;-)
2020-09-18Support identifying msvc dependency prefix with a path starting with a backslashMartin Storsjö1-2/+7
2020-09-18msubprojects: Fix unit tests on WindowsXavier Claessens2-5/+6
2020-09-18msubprojects: Revert back to rev-parse instead of --show-currentXavier Claessens2-13/+26
It is undocumented in manpage, but --show-current is new in git 2.22 which is too recent for distros we want to support like Ubuntu 18.04.
2020-09-18msubprojects: Stop trying to guess subproject typeXavier Claessens3-18/+8
It was done to include them in `meson subprojects foreach` without --types argument, but it's better to special case missing --types and include wraps that have type=None too. It was a bad idea because that was messing them in `meson subprojects update`, now they are ignored by that command.
2020-09-18msubprojects: Add basic unit testsXavier Claessens1-2/+165
2020-09-18msubprojects: Avoid useless "no local changes to save" messageXavier Claessens1-3/+7
2020-09-18msubprojects: Fix checkout of new tag/branchXavier Claessens1-4/+9
If revision is a tag that does not exist locally, `git fetch origin <revision>` won't create it and checkout will fail. Using --refmap ensures that references exists locally.
2020-09-18msubprojects: Fix --types default valueXavier Claessens1-3/+5
2020-09-17backends: Treat build target as generator only when it's the first argNirbheek Chauhan3-5/+7
Otherwise it might be an argument to a script that just inspects the binary itself.
2020-09-17project tests: Verify that UWP cross binaries use the right archNirbheek Chauhan2-0/+38
This is a test for https://github.com/mesonbuild/meson/pull/7021, to verify that `link.exe` uses the correct architecture when targeting ARM64. Can be extended to other cross targets later.
2020-09-17project tests: Also check whether introspect worksNirbheek Chauhan1-0/+5
2020-09-17Rename [properties] to [built-in options]Nirbheek Chauhan1-1/+1
This is the new syntax. Avoids loud deprecation warnings.
2020-09-17project tests: Rename a variable for clarityNirbheek Chauhan1-5/+5
2020-09-17Revert "windows: reduce chance of going over path limit in backend/vs"Nirbheek Chauhan1-5/+4
This reverts commit 807f88739ebfa002c9a0b9acd3e24c9610fb02a2.
2020-09-17unittests: mock os.environ before mucking with itDylan Baker1-1/+4
2020-09-17tests: Make monkey patching smarterDylan Baker2-40/+15
There are two problems here. The first is that we're doing manual monkey patching which is fragile and verbose, when unittest.mock is designed specifically to solve this exact problem. The second is that we're monkey patching os.environ at two different levels with the same information. So let's only do it once.
2020-09-17windows: reduce chance of going over path limit in backend/vsPeter Harris1-4/+5
When building with vs2019 (not ninja), a path length error will be thrown if the path to a resource file is even remotely deep within the tree. This is largely because the target name includes the string "Windows resource for file 'full path'", which is then expanded twice (once for the .vcxproj itself, and once for IntDir) and added to the full path. When combined with the tiny path limits on Windows, it is easy to exceed path limits. This error is largely avoided by the ninja back-end. Unlike the vs back-end, the ninja back-end does not use target.get_id() as part of the project file path, nor does it use target.get_id() as part of get_target_private_dir(). Example error: error MSB4184: The expression "[MSBuild]::NormalizePath( C:\src\mesonbuild\Misc\FreeRDP-master\client\X11\xfreerdp\xfreerdp, f3f7317@@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus\, f3f7317@@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus. vcxproj.CopyComplete)" cannot be evaluated. Path: C:\src\mesonbuild\Misc\FreeRDP-master\client\X11\xfreerdp\xfreerdp\f3f7317 @@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus\f3f7317 @@Windows resource for file 'Misc_FreeRDP-master_client_X11_xfreerdp_xfreerdp_xfreerdp.rc'@cus. vcxproj.CopyComplete exceeds the OS max path limit. The fully qualified file name must be less than 260 characters.
2020-09-17Canonicalize target architectures aarch64/armv* into arm64/arm for MSVC toolsMartin Storsjö1-0/+4
If the architectures are taken from the output of "clang-cl --version", we need to convert these names into names that the MSVC tools accept as the -machine: parameter.
2020-09-17Fixed MacOS dylib custom targets not marked as linkableMarco Mastropaolo1-1/+1
2020-09-16linkers: fully type annotate and fix mypy issuesDylan Baker3-8/+27
This makes GnuDynamicLinker not suitable for instantiation, so the tests need to be changed to use the BFD class.
2020-09-16linkers/compilers: Move an emscripten method to the compilerDylan Baker2-7/+7
This needed an attribute the linker doesn't have.