summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-052-8/+8
|
* 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.
* 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-272-6/+13
|
* Merge pull request #5524 from scivision/icl_ifortDylan Baker2019-06-241-13/+14
|\ | | | | Add ifort on Windows
| * known Python 3.5 on windows workaround for subprocess(cwd=str(Path))Michael Hirsch, Ph.D2019-06-241-1/+2
| |
| * windows ifort can't do shared_library sanelyMichael Hirsch, Ph.D2019-06-241-4/+2
| |
| * correct missing argument for IntelClFortranCompilerMichael Hirsch, Ph.D2019-06-241-9/+11
| | | | | | | | | | | | ifort passes all tests cleanup logic
* | Split attribute visibilityDylan Baker2019-06-251-2/+9
|/ | | | | | | | | | | | | | | * c_function_attributes: remove 'protected' from 'visibility' This doesn't exist on macos with the apple compiler, which always causes failures. Fixes #5530 * compilers: Add split visibility checks to has_function_attribute These check for a single visibility at a time, rather than all four at once. This allows for finer grained searches, and should make using these checks safer across operating systems.
* compilers: Fix bitcode and other options for objc codeNirbheek Chauhan2019-06-232-2/+0
| | | | | | | | | | | | We were setting the base options for the Objective-C compiler manually, due to which options such as b_bitcode and b_ndebug were not getting set at all. The base options here are the same as for C code with the Clang compiler, so just use the same inherited list. Also expand the bitcode test to ObjC and ObjC++ so this doesn't happen again.
* Increase logging for Rust CI failures.Jussi Pakkanen2019-06-221-3/+11
|
* 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.
* 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
* compilers/cpp: Fix removal of name from Combo options for Armclangsompen2019-06-111-2/+1
|
* Purge `is_cross` and friends without changing user interfacesJohn Ericson2019-06-0914-182/+147
| | | | | | | | | | | | 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.
* compilers/c: Fix removal of name from Combo options for ICLDylan Baker2019-06-061-1/+1
|
* 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/fortran: Fix all has_argument methods in mesonDylan Baker2019-05-161-0/+20
| | | | | | Apparently we have no tests for this because this is broken pretty badly. This extends the basic test to actually check for the correct free-form argument and thus test this.
* UserOption no longer has a name field.John Ericson2019-05-153-57/+39
| | | | | | | 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-146-60/+219
|\ | | | | ICL (Intel for Windows) support
| * compilers/clike: ICL needs msvc workarounds in has_functionDylan Baker2019-05-131-1/+1
| |
| * compilers: Add basic ICL abstractionsDylan Baker2019-05-135-2/+128
| |
| * compilers: ICL is not GCC likeDylan Baker2019-05-131-2/+2
| |
| * compilers: rename IntelCompiler to IntelGnuLikeCompilerDylan Baker2019-05-135-13/+13
| | | | | | | | | | | | | | | | 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/cpp: Split code out of VisualStudioLikeCPPCompiler for treating ↵Dylan Baker2019-05-131-30/+60
| | | | | | | | | | | | | | | | | | | | c++11 as c++14 This restrictuion exists for MSVC and clang-cl, but not for ICL which actually does support C++11 as a distinct standard. This commmit pulls that behavior out into a mixin class for ClangClCPPCompiler and VisualStudioCPPCompiler, as well as moving the MSVC specific functionality into the VisualStudioCPPCompiler class.
| * compilers: make keyword args to Compiler.compile keyword onlyDylan Baker2019-05-103-4/+4
| | | | | | | | | | Becuase treating args as either keyword or positional makes inheritance really awful to work with.
* | Allow MSVC-style `cpp_eh` for backwards-compatibility purposesnicole mazzuca2019-05-131-12/+22
| |
* | 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".
* Merge pull request #5339 from dcbaker/clikeJussi Pakkanen2019-05-058-1700/+1605
|\ | | | | Split up the representations of the C and C++ compilers
| * compilers: Split C-Like functionality into a mixin classesDylan Baker2019-05-038-1686/+1608
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Revert "detect Intel ICL on windows"Dylan Baker2019-05-023-18/+1
| | | | | | | | This reverts commit 3a75bb5259abbcae820b47f5f4633c564411893b.
* | add -fno-exceptions if cpp_eh=none is specified nicole mazzuca2019-05-051-8/+38
|/
* Merge pull request #4952 from mensinda/cacheCompilesDylan Baker2019-05-027-89/+114
|\ | | | | Cache compilers.compile() in coredata
| * Moved caching into a seperate functionDaniel Mensinger2019-04-284-31/+45
| |
| * Disable cache for dependenciesDaniel Mensinger2019-04-282-8/+8
| |
| * Add disable_cache to the fortran compilerDaniel Mensinger2019-04-281-6/+6
| |
| * Add option to disable the cacheDaniel Mensinger2019-04-281-8/+8
| |
| * Changing cached flag from True to FalseDaniel Mensinger2019-04-281-1/+1
| |
| * Fixed typeingDaniel Mensinger2019-04-281-12/+12
| |
| * Annotaded return types in the base compiler classDaniel Mensinger2019-04-281-22/+22
| |
| * Added some cahced valuesDaniel Mensinger2019-04-283-6/+8
| |
| * Print '(cached)' when compiler result was cachedDaniel Mensinger2019-04-283-20/+24
| |
| * Cache compile results in coredataDaniel Mensinger2019-04-284-12/+17
| |
* | Merge pull request #5311 from mensinda/flake8PluginsJussi Pakkanen2019-05-022-3/+3
|\ \ | | | | | | Added flake8 plugins and some code fixes