summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
Commit message (Collapse)AuthorAgeFilesLines
* 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
* compilers: move split_shlib_to_parts to the base compilerDylan Baker2020-10-011-0/+3
| | | | | Only the GnuLikeCompiler overrides this, and it's implemented multiple places
* compilers/cpp: Add type annotationsDylan Baker2020-10-011-0/+11
|
* compilers: fully type annotate the C compilersDylan Baker2020-10-011-0/+1
|
* compilers: Tell mypy that the compiler mixins are just thatDylan Baker2020-09-241-12/+11
| | | | | | We do this by making the mixins inherit the Compiler class only when mypy is examining the code (using some clever inheritance shenanigans). This caught a bunch of issues, and also lets us delete a ton of code.
* compilers: make is_cross part of the base Compiler classDylan Baker2020-09-241-1/+2
| | | | | | | Every class needs to set this, so it should be part of the base. For classes that require is_cross, the positional argument remains in their signature. For those that don't, they just allow the base class to set their value to it's default of False.
* compilers: put name_string method in base compilerDylan Baker2020-09-241-0/+3
| | | | Every language had the exact same implementation
* compilers/mixins/intel: Use the has_func_attribute_extra_args functionDylan Baker2020-09-241-0/+3
| | | | Instead of putting that extra argument in the base compiles() class