aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/cpp.py
AgeCommit message (Collapse)AuthorFilesLines
2018-11-04Qualify checks of self.version by self.id in VisualStudioC/CPPCompilerJon Turney1-7/+10
2018-11-04Detect clang-cl as msvc-like, not clang-likeJon Turney1-1/+5
Handle clang's cl or clang-cl being in PATH, or set in CC/CXX Future work: checking the name of the executable here seems like a bad idea. These compilers will fail to be detected if they are renamed. v2: Update compiler.get_argument_type() test Fix comparisons of id inside CCompiler, backends and elsewhere v3: ClangClCPPCompiler should be a subclass of ClangClCCompier, as well Future work: mocking in test_find_library_patterns() is effected, as we now test for a subclass, rather than self.id in CCompiler.get_library_naming()
2018-10-30Generalize gnulike-targeting-windows checks.Josh Gao1-2/+2
Replace several checks against GCC_MINGW or (GCC_MINGW, GCC_CYGWIN) with is_windows_compiler instead, so that clang and other gcc-like compilers using MinGW work appropriately with vs_module_defs, c_winlibs, and cpp_winlibs. Fixes #4434.
2018-10-27add support for `/permissive-`Nicole Mazzuca1-8/+21
We do this with `std_ver=vc++NM` - `vc++` does not add `/permissive-`, while `std_ver=c++NM` adds `/permissive-`.
2018-10-22add cpp_std support for MSVCNicole Mazzuca1-3/+34
2018-10-07Adding "compiler_type" flag to ARM compilers.Mohammed Amer Khalidi1-4/+4
2018-09-17Abstract shared GCC/Clang/ICC methods in GnuLikeCompilerDavid Seifert1-4/+0
2018-09-16Fix ICC on macOSDavid Seifert1-4/+15
2018-09-16Use enum instead of `int` for compiler variantsDavid Seifert1-12/+12
* Enums are strongly typed and make the whole `gcc_type`/`clang_type`/`icc_type` distinction redundant. * Enums also allow extending via member functions, which makes the code more generalisable.
2018-09-07Add method to check for C/C++ function attributesDylan Baker1-0/+6
It's fairly common on Linux and *BSD platforms to check for these attributes existence, so it makes sense to me to have this checking build into meson itself. Autotools also has a builtin for handling these, and by building them in we can short circuit cases that we know that these don't exist (MSVC). Additionally this adds support for two common MSVC __declspec attributes, dllimport and dllexport. This implements the declspec version (even though GCC has an __attribute__ version that both it and clang support), since GCC and Clang support the MSVC version as well. Thus it seems reasonable to assume that most projects will use the __declspec version over teh __attribute__ version.
2018-08-29Make `-std=` fallback remapping more robustDavid Seifert1-11/+54
* The current version matching logic is brittle with respect to Clang. LLVM and Apple Clang use slightly different but nowadays overlapping version ranges. Instead, we now just check whether the compiler supports the given `-std=` variant and try its respective fallback instead of testing version ranges.
2018-08-20Remap -std=c++14 dialect names for older compilersDavid Seifert1-2/+10
* GCC 4.8 and Clang 3.2, 3.3, 3.4 only understand `-std={c,gnu}++1y` for enabling C++14 dialects. GCC 4.8 is especially important as it is the basis of RHEL/CentOS 7.
2018-08-18Convert buildtype to optimization and debug options (#3489)Jussi Pakkanen1-1/+1
2018-08-09Add support for c++2a and gnu++2aZachary Michaels1-4/+4
2018-07-13Avoid concatenating two options in listThomas Hindoe Paaboel Andersen1-1/+1
'c++17' and 'gnu++98' were concatenated due to a missing comma
2018-06-21Added ARMCLANG compiler support for C/C++ (#3717)Vasu Penugonda1-0/+29
2018-06-06Fix issues found by flake8Xavier Claessens1-1/+0
2018-06-06Compilers: Chain-up to parent class in get_options()Xavier Claessens1-29/+35
Parent class could have common options for all compilers, and we'll soon add some.
2018-05-02Can combine D and C++ in a single target. Closes #3125.Jussi Pakkanen1-0/+6
2018-04-16Add has_link_argument() and friendsXavier Claessens1-10/+0
Closes: #3335.
2018-04-16VisualStudioCPPCompiler: Fix -fpermissive still being addedXavier Claessens1-2/+2
super(VisualStudioCCompiler, self) calls CPPCompiler and that's what we want to avoid.
2018-04-16Merged Arm CC support.Jussi Pakkanen1-0/+28
2018-04-15Merge pull request #3115 from makise-homura/e2k-lcc-supportJussi Pakkanen1-0/+24
Support lcc compiler for e2k (Elbrus) architecture
2018-03-31Fix for issue in cpp.pySomasekhar Penugonda1-2/+2
Change-Id: Iad9623d20eb5086528dacefce5d2f4f9bb9d0312
2018-03-27Updates to CPP support and update review changesSomasekhar Penugonda1-30/+28
2018-03-21Fixed lchmod detection for lcc C/C++ compilersmakise-homura1-0/+8
2018-03-19Fixed indentation and space issues found by SideCImakise-homura1-1/+1
2018-03-19Added Elbrus lcc compilers support as inheritance from gcc onesmakise-homura1-0/+16
2018-03-14- Updating cpp_std options similar to other compiler classesBedarkar, Malhar1-0/+30
- Updating environment.py for selecting '--vsn' option for armcc only. - Updating build type arguments from GitHub pull request - 3157 Change-Id: Id3151e7715ec1016afdbd65391bb0d414ec7de13
2018-03-03Fix various flake8 indentation reportsJon Turney1-1/+1
$ flake8 | grep -E '(E123|E127|E128)' ./run_unittests.py:1358:37: E127 continuation line over-indented for visual indent ./run_unittests.py:1360:37: E127 continuation line over-indented for visual indent ./mesonbuild/minit.py:311:66: E128 continuation line under-indented for visual indent ./mesonbuild/minit.py:312:66: E128 continuation line under-indented for visual indent ./mesonbuild/minit.py:313:66: E128 continuation line under-indented for visual indent ./mesonbuild/compilers/cpp.py:115:63: E127 continuation line over-indented for visual indent ./msi/createmsi.py:156:13: E123 closing bracket does not match indentation of opening bracket's line ./msi/createmsi.py:188:13: E123 closing bracket does not match indentation of opening bracket's line
2018-01-30Use os.path: basename() and dirname() instead of split()Aleksey Filippov1-1/+1
According to Python documentation[1] dirname and basename are defined as follows: os.path.dirname() = os.path.split()[0] os.path.basename() = os.path.split()[1] For the purpose of better readability split() is replaced by appropriate function if only one part of returned tuple is used. [1]: https://docs.python.org/3/library/os.path.html#os.path.split
2018-01-30Print warning when linker arguments are passed to has_argumentTing-Wei Lan1-0/+8
has_argument and other similar methods of compiler objects only support checking compiler flags. If they are used to check linker flags, the results are very likely to be wrong and developers should be warned.
2017-12-16More version information for compilers.Christoph Behle1-8/+8
See issue #2762 Adds full_version to class Compiler. If set full_version will be printed additionally. Added support for CCompiler and CPPCompiler Added support for gcc/g++, clang/clang++, icc.
2017-12-07Renamed UserStringArrayOption to UserArrayOption for short.Jussi Pakkanen1-4/+4
2017-12-06Add C++17 flags to GCC and Clang.Jussi Pakkanen1-4/+4
2017-11-29adding C++98 to versions that meson can supportSolomon Choina1-2/+2
2017-08-13Pass -fpch-preprocess to GCC when precompiled headers are usedGabrĂ­el ArthĂșr PĂ©tursson1-0/+5
CCache requires this flag when building with precompiled headers. Without it, the preprocessor fails and CCache fallbacks to running the real compiler. Users still need to set 'sloppiness' to 'pch_defines,time_macros' in their ccache.conf file for CCache to cache builds that use precompiled headers. See the CCache manual for more info: https://ccache.samba.org/manual.html#_precompiled_headers
2017-08-04A few more lgtm fixes.Jussi Pakkanen1-1/+0
2017-07-17Added VS support to simd detector.Jussi Pakkanen1-2/+2
2017-06-26Add 'Compiler.get_display_language'Guillaume Poirier-Morency1-0/+3
Use this when we print language-related information to the console and via the Ninja backend.
2017-06-23Split out languages from compilers.pyAlistair Thomas1-0/+202