summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers
Commit message (Collapse)AuthorAgeFilesLines
...
| * compilers/cuda: don't use re for replacementDylan Baker2019-08-141-3/+2
| | | | | | | | | | Even with the check (for extra safety) string.replace is more than twice as fast.
| * compilers/mixins/pgi: simplify pic logicMichael Hirsch, Ph.D2019-08-141-3/+3
| |
| * re-architect the D compiler abstractionsDylan Baker2019-08-141-215/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We support 3 D compilers, DMD, LDC, and GDC. DMD is the reference compiler, and LDC attempts to largely mirror it's command line usage. GDC does not, it instead acts like GCC (which makes sense). The current abstraction puts DMD behavior in the base D compiler and then overrides then in the GnuDCompiler class. This is messy, but it becomes more problematic when splitting the linker and compiler abstractions apart. I've opted to instead split the DCompiler class into two separate classes. The DCompiler implements core D functinoality, and DmdLikeCompilerMixin, which implements the DMD and LDC command line arguments. I've then mxed that into the DmdDCompiler and LLVMDCompiler classes, and mixed the GnuCompiler into the GnuDCompiler class to get Gnu command line behavior.
* | Fix CCRX linking external dependenciesPhillip Cao2019-08-201-0/+2
| |
* | Pass optimization flags to rustc properly. Closes: #5788.Jussi Pakkanen2019-08-171-5/+5
|/
* Add basic Webassembly support via Emscripten.Jussi Pakkanen2019-08-054-1/+62
|
* 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.
* Make ARM compilers work on Linux.Jussi Pakkanen2019-08-021-2/+2
|
* default libtype to static to allow windows compilers to not skipMichael Hirsch, Ph.D2019-07-301-3/+5
| | | | | | To make Fortran tests useful on Windows, the library_type should default to static, unless needed to specifically test shared. Shared Fortran libs on Windows for non-Gfortran compilers is fragile requiring proprietary code syntax.
* no special shared lib args for PGIMichael Hirsch, Ph.D2019-07-302-7/+10
|
* PGI -shared is for Linux onlyMichael Hirsch, Ph.D2019-07-301-1/+8
|
* Merge pull request #5740 from scivision/intel-ci_fixJussi Pakkanen2019-07-301-2/+1
|\ | | | | tests: Intel-cl fixes for Fortran
| * intel-cl: readd missing importMichael Hirsch, Ph.D2019-07-301-2/+1
| |
* | PGI: cpp_pch precompiled headers functionalityMichael Hirsch, Ph.D2019-07-302-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PGI C++ PCH enable PGI compilers support precompiled headers for C++ only. The common/13 pch test passes if run manually with no spaces in the build path. However, since Meson run_project_tests.py makes temporary build directories with spaces in each tests, PGI --pch_dir can't handle this and fails. So we skip the test for PGI despite it working for usual case with no-spaces in build dir. Note: it's fine to have spaces in full path for sourcedir, just no spaces in relative path to builddir. * doc
* | Flang: add links for non-flang main programMichael Hirsch, Ph.D2019-07-291-0/+3
|/
* compilers: pull sanitzier args into compiler classesDylan Baker2019-07-233-18/+21
| | | | This simplifies and cleans things up.
* compilers: return as-needed args as a listDylan Baker2019-07-232-4/+4
|
* compilers: Move lto args into compiler classDylan Baker2019-07-232-5/+15
| | | | | | | | | 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
|
* ValaCompiler: only emit '--debug' in debug build.Jeremy Philippe2019-07-201-1/+1
|
* fix all flake8 issuesDaniel Mensinger2019-07-181-4/+3
|
* Fix missing return statements that are seen with -Werror=return-type.Martin Liska2019-07-162-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Error example: Code: #include <locale.h> int main () { /* If it's not defined as a macro, try to use as a symbol */ #ifndef LC_MESSAGES LC_MESSAGES; #endif } Compiler stdout: Compiler stderr: In file included from /usr/include/locale.h:25, from /tmp/tmpep_i4iwg/testfile.c:2: /usr/include/features.h:382:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp] 382 | # warning _FORTIFY_SOURCE requires compiling with optimization (-O) | ^~~~~~~ /tmp/tmpep_i4iwg/testfile.c: In function 'main': /tmp/tmpep_i4iwg/testfile.c:8:9: error: control reaches end of non-void function [-Werror=return-type] 8 | } | ^ cc1: some warnings being treated as errors
* compilers/mixins/pgi: Finish type annoationsDylan Baker2019-07-151-21/+27
|
* compilers: split pgi compiler out of compilers moduleDylan Baker2019-07-155-72/+92
|
* compilers/mixins/elbrus: add type annotations and fix typesDylan Baker2019-07-154-18/+23
| | | | | | | | | 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-155-43/+62
|
* compilers/mixins/clang: Add type annotationsDylan Baker2019-07-151-12/+21
|
* compilers: Put clang mixin in a moduleDylan Baker2019-07-159-68/+92
|
* compilers/mixins/arm: Add type annotations to armclangDylan Baker2019-07-151-41/+47
|
* compilers: move ArmClang into mixins/arm.pyDylan Baker2019-07-154-122/+119
|
* compilers/mixins/intel: add type annotationsDylan Baker2019-07-151-17/+24
|
* compilers: Put Intel compiler classes into the mixins folderDylan Baker2019-07-156-109/+139
|
* compilers/mixins/gnu: Add type annotationsDylan Baker2019-07-151-100/+119
|
* compilers: split gnu and gnulike compilers out of compilersDylan Baker2019-07-1510-373/+405
| | | | | 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/mixins/visualstudio: Add type annotationsDylan Baker2019-07-151-106/+119
|
* compilers: Move the VisualStudioLikeCompiler class into mixinsDylan Baker2019-07-156-391/+418
|
* compilers/mixins/arm: Add type annotationsDylan Baker2019-07-151-42/+51
|
* compilers: Move ArmCompiler to a mixin moduleDylan Baker2019-07-154-111/+130
|
* compilers/mixins/ccrx: add type annotationsDylan Baker2019-07-151-48/+59
|
* compilers: move ccrx compiler abstraction into mixinsDylan Baker2019-07-155-134/+152
|
* compilers: Move clike into a mixins directoryDylan Baker2019-07-157-9/+9
| | | | | | | 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-145-14/+14
|
* Merge pull request #5560 from scivision/cstd18_bugMichael Hirsch, Ph.D2019-07-111-4/+7
|\ | | | | add clang c_std=c18 alias and cleanup logic for compiler version unit tests
| * add clang c_std=c18 aliasMichael Hirsch, Ph.D2019-07-081-4/+7
| | | | | | | | | | | | | | | | | | | | fix unit test skips for clang c18 correct unittests clang minimum version cleanup unittest clang skip c_std finesse unittest vs. clang version
* | Ignore -D* and -fstack-protector* args for D compilersmyfreeweb2019-07-111-0/+4
| | | | | | Fixes #5369
* | 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
|/
* Add (v)c++latest to VC_VERSION_MAPRobin Kertels2019-07-081-0/+2
|
* move Gnu-specific feature '--print-search-dirs' to GnuLikeCompilerNorbert Nemec2019-07-072-51/+60
|
* Fix unittests.fixed5483Jussi Pakkanen2019-07-051-1/+4
|