summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/clike.py
Commit message (Collapse)AuthorAgeFilesLines
* compilers: Move clike into a mixins directoryDylan Baker2019-07-151-1165/+0
| | | | | | | The compilers module is rather large and confusing, with spaghetti dependencies going every which way. I'm planning to start breaking out the internal representations into a mixins submodule, for things that shouldn't be required outside of the compilers module itself.
* Do not fail on passing `-Werror=unused-parameter` from environmentDavid Seifert2019-07-141-10/+10
|
* Fix MSVC /link argument ordering (#5598)Norbert Nemec2019-07-111-19/+32
| | | | | | | | | | * correct handling of LDFLAGS in find_library and sanity_check on MSVC (fixes #3629) The MSVC compiler requires all linker flags to be placed after the compiler flags, separated by a "/link" argument. This was already handled for regular linking commands, but not yet for the aforementioned special code paths. * on MSVC, add /link separator between compiler and linker flags when it is missing * avoid unnecessary /link argument
* Make faster w defender atpCharlie Barto2019-07-101-2/+2
|
* move Gnu-specific feature '--print-search-dirs' to GnuLikeCompilerNorbert Nemec2019-07-071-51/+0
|
* Fix unittests.fixed5483Jussi Pakkanen2019-07-051-1/+4
|
* compilers: Add missing cflags when calling compiler in link modeMarvin Scholz2019-07-051-10/+11
|
* compilers: Fix missing cflags for function detectionMarvin Scholz2019-07-051-4/+4
| | | | Fix #5481
* Improve performance with windows defender ATPCharlie Barto2019-07-051-4/+4
|
* Return zero in cross_sizeofAbhishek Pandit-Subedi2019-07-031-0/+1
| | | | | There is an error when compiling with -Werror=return-type. Non void functions must return valid values.
* sanitycheckc: avoid linking sanitycheckc when cross compilingCody Schafer2019-06-271-0/+2
|
* compilers: Add logging for symbol prefix testMarvin Scholz2019-06-131-0/+2
| | | | | Currently meson does not write the outcome of this test to the log file which makes debugging wrong outcomes of this incredibly tedious.
* Purge `is_cross` and friends without changing user interfacesJohn Ericson2019-06-091-21/+15
| | | | | | | | | | | | In most cases instead pass `for_machine`, the name of the relevant machines (what compilers target, what targets run on, etc). This allows us to use the cross code path in the native case, deduplicating the code. As one can see, environment got bigger as more information is kept structured there, while ninjabackend got a smaller. Overall a few amount of lines were added, but the hope is what's added is a lot simpler than what's removed.
* Use `env.machines.*` to avoid some `is_cross`John Ericson2019-06-091-10/+11
| | | | | This is a small example of the `is_cross` removal the that abstraction enables.
* Fix path splitting in get_compiler_dirs() with GCC/clang on WindowsChristoph Reiter2019-05-161-9/+21
| | | | | | | | | | | | | | | | | | It was using ':' as a path separator while GCC uses ';' resulting in bogus paths being returned. Instead assume that the compiler uses the platform native separator. The previous splitting code still worked sometimes because splitting "C:/foo;C:/bar" resulted in the last part "/bar" being valid if "<DriveOfCWD>:/bar" existed. The fix also exposes a clang Windows bug where it uses the wrong separator: https://reviews.llvm.org/D61121 . Use a regex to fix those first. This resulted in linker errors when statically linking against a library which had an external dependency linking against system libs. Fixes #5386
* compilers/clike: ICL needs msvc workarounds in has_functionDylan Baker2019-05-131-1/+1
|
* compilers: make keyword args to Compiler.compile keyword onlyDylan Baker2019-05-101-1/+1
| | | | | Becuase treating args as either keyword or positional makes inheritance really awful to work with.
* compilers: Split C-Like functionality into a mixin classesDylan Baker2019-05-031-0/+1187
Currently C++ inherits C, which can lead to diamond problems. By pulling the code out into a standalone mixin class that the C, C++, ObjC, and Objc++ compilers can inherit and override as necessary we remove one source of diamonding. I've chosen to split this out into it's own file as the CLikeCompiler class is over 1000 lines by itself. This also breaks the VisualStudio derived classes inheriting from each other, to avoid the same C -> CPP inheritance problems. This is all one giant patch because there just isn't a clean way to separate this. I've done the same for Fortran since it effectively inherits the CCompiler (I say effectively because was it actually did was gross beyond explanation), it's probably not correct, but it seems to work for now. There really is a lot of layering violation going on in the Compilers, and a really good scrubbing would do this code a lot of good.