summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix all flake8 warningsDaniel Mensinger2019-10-201-1/+1
|
* compilers: replace CompilerType with MachineInfoDylan Baker2019-10-071-44/+5
| | | | | | Now that the linkers are split out of the compilers this enum is only used to know what platform we're compiling for. Which is what the MachineInfo class is for
* Merge pull request #5953 from mensinda/isystemJussi Pakkanen2019-10-061-1/+17
|\ | | | | Add is_system to dependency
| * Use -isystem instead of -idirafterDaniel Mensinger2019-10-031-1/+17
| |
* | cmake: fix detection of libraries with .so versionDaniel Mensinger2019-10-031-1/+1
|/
* Correctly handle platform-specific LDFLAGS optionsAleksey Gurtovoy2019-09-271-0/+5
|
* CUDA support on WindowsAleksey Gurtovoy2019-09-241-2/+11
|
* the solaris linker also needs start/end-group for circular linkingDylan Baker2019-09-091-2/+2
|
* mesonlib.split_args/quote_arg/join_argsAleksey Gurtovoy2019-09-051-7/+7
|
* compilers: Move the compiler argument to proxy linker flags to the compiler ↵Dylan Baker2019-08-301-0/+2
| | | | | | | | | | | | class Instead of the DynamicLinker returning a hardcoded value like `-Wl,-foo`, it now is passed a value that could be '-Wl,', or could be something '-Xlinker=' This makes a few things cleaner, and will make it possible to fix using clang (not clang-cl) on windows, where it invokes either link.exe or lld-link.exe instead of a gnu-ld compatible linker.
* compilers: Dispatch to dynamic linker classDylan Baker2019-08-141-166/+98
| | | | | Most of the cuda code is from Olexa Bilaniuk. Most of the PGI code is from Michael Hirsc
* Add basic Webassembly support via Emscripten.Jussi Pakkanen2019-08-051-0/+1
|
* Fix cross compilation on OSXXavier Claessens2019-08-041-2/+6
| | | | | Do not set -Wl,-headerpad_max_install_names when compiling on OSX for another platform. It causes linker issues.
* compilers: pull sanitzier args into compiler classesDylan Baker2019-07-231-16/+8
| | | | This simplifies and cleans things up.
* compilers: return as-needed args as a listDylan Baker2019-07-231-1/+1
|
* compilers: Move lto args into compiler classDylan Baker2019-07-231-5/+9
| | | | | | | | | There are two problems, one is that it assumes -flto is the argument to do LTO/WPO, which isn't true of ICC and MSVC (and presumably) others. It's also incorrect because it assumes that the compiler and linker will always be the same, which isn't necessarily true. You could combine GCC with Apple's linker, or clang with link.exe, which use different arguments.
* Add optional progress bar when generating build.ninjaNirbheek Chauhan2019-07-201-3/+3
|
* fix all flake8 issuesDaniel Mensinger2019-07-181-4/+3
|
* compilers: split pgi compiler out of compilers moduleDylan Baker2019-07-151-69/+0
|
* compilers/mixins/elbrus: add type annotations and fix typesDylan Baker2019-07-151-1/+1
| | | | | | | | | There is a pretty big error in here, trying to return a tuple comperhension: (a for a in []) is not a tuple, it's a generator. This has profound type annotations: generators don't support most tuple or list methods, and they can only be iterated once. Beyond that tuples are meant for heterogenous types, ie, position matters for types. I've converted the output to a list in all cases.
* compilers: put elbrus in mixinsDylan Baker2019-07-151-40/+0
|
* compilers: Put clang mixin in a moduleDylan Baker2019-07-151-61/+1
|
* compilers: move ArmClang into mixins/arm.pyDylan Baker2019-07-151-118/+0
|
* compilers: Put Intel compiler classes into the mixins folderDylan Baker2019-07-151-100/+0
|
* compilers: split gnu and gnulike compilers out of compilersDylan Baker2019-07-151-358/+1
| | | | | I debated a bit whether both classes really belong in the same module, and decided that they do because the share a number of helpers.
* compilers: Move the VisualStudioLikeCompiler class into mixinsDylan Baker2019-07-151-386/+1
|
* compilers: Move ArmCompiler to a mixin moduleDylan Baker2019-07-151-109/+0
|
* compilers: move ccrx compiler abstraction into mixinsDylan Baker2019-07-151-129/+1
|
* move Gnu-specific feature '--print-search-dirs' to GnuLikeCompilerNorbert Nemec2019-07-071-0/+60
|
* Improve performance with windows defender ATPCharlie Barto2019-07-051-4/+4
|
* Fix two errors when cross-compiling with ValaJames Westman2019-06-271-0/+3
| | | | | | | | | | | | - AttributeError: 'ValaCompiler' object has no attribute 'get_program_dirs' Fixed by adding a `get_program_dirs()` function to the base Compiler class, to match `get_library_dirs()` - KeyError: 'vala_COMPILER' Fixed by creating the Vala compile rules for all machines, not just the build machine.
* sanitycheckc: avoid linking sanitycheckc when cross compilingCody Schafer2019-06-271-6/+11
|
* tvOS: added support AppleTVOSRoman Shpuntov2019-06-131-3/+3
|
* Solaris fixesKurtis Rader2019-06-121-0/+2
| | | | Fixes #5351
* compilers: armclang supports only cross-compilationsompen2019-06-111-1/+1
| | | | Revert the change done to Armclang compiler class in PR-4010
* Purge `is_cross` and friends without changing user interfacesJohn Ericson2019-06-091-3/+4
| | | | | | | | | | | | 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.
* UserOption no longer has a name field.John Ericson2019-05-151-20/+13
| | | | | | | This avoids the duplication where the option is stored in a dict at its name, and also contains its own name. In general, the maxim in programming is things shouldn't know their own name, so removed the name field just leaving the option's position in the dictionary as its name.
* Merge pull request #5331 from dcbaker/iclJussi Pakkanen2019-05-141-15/+60
|\ | | | | ICL (Intel for Windows) support
| * compilers: Add basic ICL abstractionsDylan Baker2019-05-131-0/+42
| |
| * compilers: ICL is not GCC likeDylan Baker2019-05-131-2/+2
| |
| * compilers: rename IntelCompiler to IntelGnuLikeCompilerDylan Baker2019-05-131-1/+1
| | | | | | | | | | | | | | | | The Intel compiler is strange. On Linux and macOS it's called ICC, and it tries to mostly behave like gcc/clang. On Windows it's called ICL, and tries to behave like MSVC. This makes the code that's used to implement ICC support useless for supporting ICL, because their command line interfaces are completely different.
| * compilers: Split msvc version code into helperDylan Baker2019-05-131-10/+13
| | | | | | | | | | ICL needs ot use some of this code, but not from it's own version information.
| * compilers: make keyword args to Compiler.compile keyword onlyDylan Baker2019-05-101-2/+2
| | | | | | | | | | Becuase treating args as either keyword or positional makes inheritance really awful to work with.
* | This is the fork "sneyx1234/meson" of the current git "mesonbuild/meson" ↵Simon Ney2019-05-131-0/+3
|/ | | | | | head to converge it to the solaris 11.4 platform based on the sparcv9 and i386 processor architecture. The purpose is to complete the porting related to the fork "sneyx1234/ast" of "att/ast" the "AT&T kornshell".
* compilers: Split C-Like functionality into a mixin classesDylan Baker2019-05-031-0/+329
| | | | | | | | | | | | | | | | | 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.
* Merge pull request #4952 from mensinda/cacheCompilesDylan Baker2019-05-021-40/+56
|\ | | | | Cache compilers.compile() in coredata
| * Moved caching into a seperate functionDaniel Mensinger2019-04-281-26/+35
| |
| * Fixed typeingDaniel Mensinger2019-04-281-12/+12
| |
| * Annotaded return types in the base compiler classDaniel Mensinger2019-04-281-22/+22
| |
| * Print '(cached)' when compiler result was cachedDaniel Mensinger2019-04-281-0/+2
| |