aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/cpp.py
AgeCommit message (Collapse)AuthorFilesLines
2020-08-22Merge pull request #7447 from scivision/nvcJussi Pakkanen1-4/+13
Add support for NVidia HPC SDK compilers
2020-08-20Correctly determine C++ stds for Elbrus compilermakise-homura1-5/+13
2020-07-19fix msvc not recognising b_ndebugElliot Haisley1-1/+1
fixes #7404
2020-07-13add Nvidia HPC SDK compilersMichael Hirsch, Ph.D1-4/+13
2020-05-22compilers: add fetching of define list for clangYevhenii Kolesnikov1-2/+3
Simmilar to gcc, the list of pre-processor defines can be fetched with `-dM -E` option. The way cpu_family is determined on linux relies on this list. Fixes incorrect value of cpu_family on linux, when crosscompiling: ``` CC="clang -m32" meson ./build ``` Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
2020-05-16Call to CPPCompilers initilisation function was missing the info parameter ↔Drew Reed1-1/+3
during ArmClangCPPCompiler initialisation
2020-04-20Compiler options per langJohn Ericson1-89/+144
A current rather untyped storage of options is one of the things that contributes to the options code being so complex. This takes a small step in synching down by storing the compiler options in dicts per language. Future work might be replacing the langauge strings with an enum, and defaultdict with a custom struct, just like `PerMachine` and `MachineChoice`.
2020-03-29compilers: Fix C++ stdlib flags used for Apple's ClangOle André Vadla RavnÄs1-2/+2
Should target libc++, not libstdc++.
2020-03-23Fix legacy env var support with crossJohn Ericson1-1/+1
Fix #3969
2020-03-21-Add xc16 and c2000 C,Cpp toolchain supportalanNz1-0/+33
2020-03-08Merge pull request #6688 from dcbaker/emcc-linker-bugsJussi Pakkanen1-2/+2
Emcc linker bugs and improvments
2020-03-03Set c_winlibs/cpp_winlibs for Clang in the same way as for GCCMartin Storsjö1-0/+6
clang-cl is handled as a separate case (ClangClCCompiler), which already gets c_winlibs from VisualStudioLikeCCompilerMixin.
2020-02-27compilers/linkers: Add a representation for wasm-ldDylan Baker1-2/+2
Emscripten does have a stand alone linker, wasm-ld. This patch adds the linker, adds detection for the linker, and removes the IsLinkerMixin for emscripten. This is a little more correct, and makes the code a lot cleaner and more robust.
2020-02-27compilers/mixins/emscripten: Implement thread supportDylan Baker1-1/+1
Emscripten has pthread support (as well as C++ threads), but we don't currently implement them. This fixes that by adding the necessary code. The one thing I'm not sure about is setting the pool size. The docs suggest that you really want to do this to ensure that your code works correctly, but the number should really be configurable, not sure how to set that. Fixes #6684
2020-02-27compilers/emcc: Fix inheritance orderDylan Baker1-1/+1
Sot hat the BasicLinkerIsCompilerMixin comes before ClangCCompiler, which hides its "call the linker" methods, as emcc doesn't have a separate linker.
2020-01-28compilers: Split ClangCL and MSVC mixinsDylan Baker1-5/+5
Instead of checking the compiler id inside the VisualStudioLikeCompiler class, this creates two subclasses that each represent the divergent behavior of the two compilers
2020-01-27Remove RTTI option from get_option_compile_args() for Elbrus compilermakise-homura1-0/+13
2020-01-27Fix missing 'defines' argumet for Elbrus compilermakise-homura1-1/+1
...But somehow it still remains in C++ compiler.
2020-01-08types: import typing as T (fixes #6333)Daniel Mensinger1-4/+4
2019-12-17Merge pull request #6065 from dcbaker/pass-options-to-linker-detectionJussi Pakkanen1-2/+4
Pass options to linker detection
2019-12-13compilers: make use of mlog.log_onceDylan Baker1-1/+1
I'm sure there are other places that could use this, but I didn't see any right off that bat.
2019-12-12compilers: Make get_display_language a class or static methodDylan Baker1-1/+2
Currently this is done at the instance level, but we need it at the class level to allow compiler "lang" args to be gotten early enough. This patch also removes a couple of instance of branch/leaf classes providing their own implementation that is identical to the Compiler version.
2019-12-12compilers: move language attribute to the class levelDylan Baker1-1/+2
We know that if a compiler class inherits CCompiler it's language will be C, so doing this at the class level makes more sense.
2019-11-18Use strict function prototypesMichael Hirsch, Ph.D1-2/+2
2019-11-06Fix typos found by codespellWolfgang Stöggl1-1/+1
- Typos were found by codespell v1.16.0
2019-11-02Add option for controlling RTTI.Jussi Pakkanen1-0/+15
2019-11-02Pass explicit command line argument to disable exceptions with MSVC.Jussi Pakkanen1-1/+3
2019-10-18Refactor duplicate Emscripten code into a mixinAndrei Alexeyev1-13/+2
2019-10-15Fix emscripten C compiler initializationAndrei Alexeyev1-3/+4
2019-10-14Implement get_linker_output_args in Emscripten compilersAndrei Alexeyev1-0/+3
2019-10-14Implement get_allow_undefined_link_args in EmscriptenCPPCompilerAndrei Alexeyev1-0/+3
2019-10-07compilers: replace CompilerType with MachineInfoDylan Baker1-35/+61
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
2019-10-07compilers: Add a specific type for AppleClangCDylan Baker1-0/+5
This allows us to detect use classes rather than methods to determine what C standards are available.
2019-08-14compilers: Dispatch to dynamic linker classDylan Baker1-16/+2
Most of the cuda code is from Olexa Bilaniuk. Most of the PGI code is from Michael Hirsc
2019-08-14compilers: Make MSVClike compilers proxy extra keyword argumentsDylan Baker1-6/+6
2019-08-05Add basic Webassembly support via Emscripten.Jussi Pakkanen1-1/+34
2019-07-30PGI: cpp_pch precompiled headers functionalityMichael Hirsch, Ph.D1-1/+0
* 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
2019-07-15compilers: split pgi compiler out of compilers moduleDylan Baker1-1/+1
2019-07-15compilers: put elbrus in mixinsDylan Baker1-1/+1
2019-07-15compilers: Put clang mixin in a moduleDylan Baker1-1/+1
2019-07-15compilers: move ArmClang into mixins/arm.pyDylan Baker1-2/+1
2019-07-15compilers: Put Intel compiler classes into the mixins folderDylan Baker1-2/+1
2019-07-15compilers: split gnu and gnulike compilers out of compilersDylan Baker1-1/+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.
2019-07-15compilers: Move the VisualStudioLikeCompiler class into mixinsDylan Baker1-1/+1
2019-07-15compilers: Move ArmCompiler to a mixin moduleDylan Baker1-1/+1
2019-07-15compilers: move ccrx compiler abstraction into mixinsDylan Baker1-1/+2
2019-07-15compilers: Move clike into a mixins directoryDylan Baker1-1/+1
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.
2019-07-14Do not fail on passing `-Werror=unused-parameter` from environmentDavid Seifert1-1/+1
2019-07-08Add (v)c++latest to VC_VERSION_MAPRobin Kertels1-0/+2
2019-06-11compilers/cpp: Fix removal of name from Combo options for Armclangsompen1-2/+1