summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix for Issue 8910 (Meson filters CMake asm files)Justin Handville2021-06-221-0/+3
|
* holders: Introduce HoldableObjectDaniel Mensinger2021-06-181-3/+4
|
* compilers: Fix missing functions in Compiler base classDaniel Mensinger2021-06-091-0/+19
|
* compilers: Add cython file suffixesDylan Baker2021-06-071-0/+2
|
* use an immutable list for an lru_cached functionsDylan Baker2021-06-021-0/+1
| | | | | | | | | | | | | | | | | | | | When mutable items are stored in an lru cache, changing the returned items changes the cached items as well. Therefore we want to ensure that we're not mutating them. Using the ImmutableListProtocol allows mypy to find mutations and reject them. This doesn't solve the problem of mutable values inside the values, so you could have to do things like: ```python ImmutableListProtocol[ImmutableListProtocol[str]] ``` or equally hacky. It can also be used for input types and acts a bit like C's const: ```python def foo(arg: ImmutableListProtocol[str]) -> T.List[str]: arg[1] = 'foo' # works while running, but mypy errors ```
* compilers: Add `get_debug_args` to base CompilerDylan Baker2021-05-191-0/+4
| | | | | This was missed, there should be an implementation in the base Compiler class, if for nothing else to help mypy
* .C files are now treated as C++ codeVolker-Weissmann2021-05-191-2/+4
|
* environment: get environment variables for both host and build machinesDylan Baker2021-04-011-8/+15
| | | | Fixes #8605
* Split environment variable and command line cflagsDylan Baker2021-03-301-4/+7
| | | | | | | | They are supposed to have different behavior. The environment variables apply to both the compiler and linker when the compiler acts as a linker, but the command line ones do not. Fixes #8345
* compilers/linkers: Add a methhod for getting the rspfile syntaxDylan Baker2021-03-141-1/+9
|
* compilers: Use EnvironmentException not EnvironmentError/OSErrorDylan Baker2021-03-041-8/+8
| | | | | The latter is a python built-in exception, the former is a meson exception.
* mass rewrite of string formatting to use f-strings everywhereEli Schwartz2021-03-041-16/+16
| | | | performed by running "pyupgrade --py36-plus" and committing the results
* various python neatness cleanupsEli Schwartz2021-03-041-9/+9
| | | | | | | | | | | | | | | | All changes were created by running "pyupgrade --py3-only --keep-percent-format" and committing the results. I have not touched string formatting for now. - use set literals - simplify .format() parameter naming - remove __future__ - remove default "r" mode for open() - use OSError rather than compatibility aliases - remove stray parentheses in function(generator) scopes
* Ensure that $lang_args and $lang_link_args are properly parsedDylan Baker2021-02-191-16/+12
| | | | | | | | Currently we don't handle things correctly if we get a string we should split, and the linker and needs compiler arguments. It would result in two unsplit strings in a list, instead of the split arguments in a list Fixes: #8348
* compilers: Only insert -flto-jobs in clang's link argumentsDylan Baker2021-02-171-2/+4
| | | | | | | | | | | | Clang has a hand `-Wunused-command-line-argument` switch, which when turned to an error, gets very grump about `-flto-jobs=0` being set in the compiler arguments (although `-flto=` belongs there). We'll refactor a bit to put that only in the link arguments. GCC doesn't have this probably because, a) it doesn't have an equivalent warning, and b) it uses `-flto=<$numthreads. Fixes: #8347
* Add default debug flags for two configurations to NVCC.Olexa Bilaniuk2021-02-161-2/+2
|
* Add custom entyr to cuda buildtype dict. Closes #8336.Jussi Pakkanen2021-02-141-0/+1
|
* Add support for LLVM's thinLTODylan Baker2021-02-021-2/+6
| | | | | | | This uses a separate option, b_lto_mode. It works in conjunction with b_lto_threads. Fixes #7493
* compilers: Add support for using multiple threads with ltoDylan Baker2021-02-021-2/+18
| | | | | | | | Both Clang and GCC support using multiple threads for preforming link time optimizaions, and they can now be configured using the `-Db_lto_threads` option. Fixes #7820
* Fix misspellsAntonin Décimo2021-01-131-3/+3
| | | | Signed-off-by: Antonin Décimo <antonin.decimo@gmail.com>
* move handling of CFLAGS and friends to environmentDylan Baker2021-01-111-60/+15
| | | | | | This has a bunch of nice features. It obviously centralizes everything, which is nice. It also means that env is only re-read at `meson --wipe`, not `meson --reconfigure`. And it's going to allow more cleanups.
* use PEP8 style naming for LANGUAGES_USING_* as wellDylan Baker2021-01-111-4/+4
|
* rename cflags_mapping to CFLAGS_MAPPINGDylan Baker2021-01-111-14/+18
| | | | | | This is PEP8 convention for a const variable. Also, make the type Mapping, which doesn't have mutation methods. This means mypy will warn us if someone tries to change this.
* use OptionKey for builtin and base optionsDylan Baker2021-01-041-55/+51
| | | | | | | | I would have prefered to do these seperatately, but they are combined in some cases, so it was much easier to convert them together. this eliminates the builtins_per_machine dict, as it's duplicated with the OptionKey's machine parameter.
* move OptionKey to mesonlibDylan Baker2021-01-041-2/+1
| | | | | There's starting to be a lot of things including coredata that coredata needs to itself include. putting it in mesonlib makes more sense
* use OptionKey for compiler_optionsDylan Baker2021-01-041-13/+13
|
* Propagate Windows target checks upLaurin-Luis Lehning2020-12-141-4/+4
|
* Give get_gui_app_args access to the EnvironmentLaurin-Luis Lehning2020-12-141-2/+2
|
* Slight consistency changes to get_gui_app_argsLaurin-Luis Lehning2020-12-141-1/+2
|
* Give get_win_subsystem_args access to envLaurin-Luis Lehning2020-12-141-2/+2
|
* Make win_subsystem a linker propertyLaurin-Luis Lehning2020-12-141-5/+4
|
* Create unit test for C++ modules and accept ixx as C++ source extension.Jussi Pakkanen2020-12-111-1/+1
|
* Add prelinking support for static libraries.Jussi Pakkanen2020-12-031-0/+2
|
* Add a variant of TemporaryDirectory that uses windows_proof_rmtree()Christoph Reiter2020-11-231-53/+48
| | | | | | | | Adds TemporaryDirectoryWinProof which calls windows_proof_rmtree() on error. Use instead of hacky error handling (which might shadow other OSError) in Compiler.compile().
* Revert "Add thinlto support. Closes #7493."Jussi Pakkanen2020-11-171-8/+8
| | | | This reverts commit 3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d.
* Fix "generator doesn't stop" on WindowsChristoph Reiter2020-11-081-1/+1
| | | | | | | | | | | | | | When TemporaryDirectory() cleans up on __exit__ it sometimes throws OSError noting that the dir isn't empty. This happens after the first yield in this generator and leads to the exception being handled which leads to a second yield. contextlib.contextmanager() fails then since the function it wraps is only allowed to yield once. Fix this by not yielding again in the error case. Fixes #7947
* Add thinlto support. Closes #7493.Jussi Pakkanen2020-11-081-8/+8
|
* Refactor handling of machine file optionsXavier Claessens2020-10-161-8/+3
| | | | | | It is much easier to not try to parse options into complicated structures until we actually collected all options: machine files, command line, project()'s default_options, environment.
* vs: add static_from_buildtype to b_vscrtPeter Harris2020-10-141-1/+1
|
* Add win_subsystem kwarg. Closes #7765.Jussi Pakkanen2020-10-071-0/+7
|
* compilers: make get_optimization_args abstractDylan Baker2020-10-011-1/+2
|
* compilers/d: add type annotationsDylan Baker2020-10-011-0/+5
|
* compilers: move _build_wrapper out of clike into CompilerDylan Baker2020-10-011-14/+74
| | | | | | This abstraction is really useful, and most compilers could use it (including D). It also will allow the Gnu mixins to work properly without the CLikeCompiler in their mro.
* compilers: move get_compile_check_args() to CompilerDylan Baker2020-10-011-4/+30
| | | | | This is groundwork to put _build_wrapper in the base Compiler, which is needed to make the D compilers truly type safe.
* compilers/fortran: add type annotationsDylan Baker2020-10-011-0/+9
|
* Compilers/vala: Add type annotationsDylan Baker2020-10-011-0/+9
|
* compilers/cuda: make type safeDylan Baker2020-10-011-0/+10
|
* compilres: move depfile_for_object to compilerDylan Baker2020-10-011-0/+5
|
* compilers/cs: Add type annotationsDylan Baker2020-10-011-0/+8
|
* compilers: move get_dependency_gen_args to base CompilerDylan Baker2020-10-011-0/+3
| | | | | | So that every subclass doesn't have to reimplement it. Especially since the Gnu implementation moved out of the CCompiler and into the GnuLikeCompiler mixin