summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
Commit message (Collapse)AuthorAgeFilesLines
...
* Features: Record standards and features for SunPro 5.14Brad King2017-05-032-0/+18
| | | | | Oracle Studio 12.5 adds support for C 11 and associated standard flags. It also adds a few more C++ 11 features.
* Merge topic 'port-language-default-to-common-macro'Brad King2017-05-0316-174/+69
|\ | | | | | | | | | | | | | | | | | | | | | | d9089876 AppleClang: Use common compiler macros for language standard default 174c02e1 SunPro: Use common compiler macros for language standard default 08fa2ba8 Clang: Use common compiler macros for language standard default 0198502f Intel: Use common compiler macros for language standard default d1aa2b3f GNU: Use common compiler macros for language standard default 87b9d6d9 XL: Use common compiler macros for language standard default Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !787
| * AppleClang: Use common compiler macros for language standard defaultChuck Atkins2017-05-022-23/+2
| |
| * SunPro: Use common compiler macros for language standard defaultChuck Atkins2017-05-022-11/+16
| |
| * Clang: Use common compiler macros for language standard defaultChuck Atkins2017-05-023-26/+4
| |
| * Intel: Use common compiler macros for language standard defaultChuck Atkins2017-05-023-29/+6
| |
| * GNU: Use common compiler macros for language standard defaultChuck Atkins2017-05-023-26/+4
| |
| * XL: Use common compiler macros for language standard defaultChuck Atkins2017-05-023-59/+37
| |
* | PGI: Fix typo in logic for C standard flagsChuck Atkins2017-05-021-1/+1
|/
* Merge topic 'add-language-standards-to-more-compilers'Brad King2017-05-027-0/+146
|\ | | | | | | | | | | | | | | | | | | 9b97cb55 PGI: Add language standards for PGI daae564d Cray: Add language standards for the Cray compiler 25e83ce5 CompileFeatures: Let STD compile options be a list 1de70845 Compilers: Add common macros to be used by various compilers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !784
| * PGI: Add language standards for PGIChuck Atkins2017-05-013-0/+34
| |
| * Cray: Add language standards for the Cray compilerChuck Atkins2017-05-013-0/+50
| |
| * Compilers: Add common macros to be used by various compilersChuck Atkins2017-05-011-0/+62
| | | | | | | | | | | | | | | | | | | | With numerous compilers now supporting multiple language standards in CMake, some common design patterns have begun to emerge. This is intended to be a collection of macros implementing many of those common design patterns that can be factored out and leveraged by many compilers. Currently this only contains the code to set the default language standard of not preset. More functionality will be added in the future as appropriate.
* | Features: On SunPro link with language standard compiler flagBrad King2017-05-011-0/+1
|/ | | | | | When C++ feature requirements or `CXX_STANDARD` cause us to compile on SunPro with the `-std=c++11` option, link with the option too. This is needed to make the compiler use the matching standard library.
* Merge topic 'ipo-clang'Brad King2017-05-012-6/+73
|\ | | | | | | | | | | | | 7d057b27 Clang IPO (LTO) support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !717
| * Clang IPO (LTO) supportRuslan Baratov2017-04-282-6/+73
| |
* | XL: Add C and C++ language level flagsChuck Atkins2017-04-282-2/+99
|/
* XL: Fix the use of the -qhalt flag for varying OSsChuck Atkins2017-04-272-4/+2
| | | | | | | | | | | | | | The valid settings to pass to the IBM XL compiler for the -qhalt flag vary widely by language and platform. Based on existing documentation, the following table shows which error levels are valid to pass to -qhalt= since -qhalt=e is not always available. OS | xlc | xlC | xlf | ---------|-------|------------------ AIX | iwes | iw s | ilwesu | BlueGene | iwes | iwes | ilwesu | OS X | iwesu | iwesu | ilwesu | Linux | w | w | ilwesu |
* Autogen: Pass explicit predefines header to moc if possibleAleix Pol2017-04-201-0/+2
| | | | | | | | | | | Qt is relying on whoever calls moc to include a file with the predefined values that will be used by the compiler, otherwise moc takes wrong paths and weird things happen. Instead, generate an include file and feed it to all mocs to make sure it's generating correct code. Co-Author: Sebastian Holtermann <sebholt@xwmw.org> Fixes: #16640
* Merge topic 'lang-specific-binutils'Brad King2017-04-052-5/+5
|\ | | | | | | | | | | | | 73934188 Rename CMAKE_GCC_{AR,RANLIB} to CMAKE_LANG_COMPILER_{AR,RANLIB} Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !656
| * Rename CMAKE_GCC_{AR,RANLIB} to CMAKE_LANG_COMPILER_{AR,RANLIB}Ruslan Baratov2017-04-032-5/+5
| | | | | | | | | | | | The variables recently added by commit b9d36826 (Add 'CMAKE_GCC_AR' and 'CMAKE_GCC_RANLIB' variables, 2017-03-08) are more appropriately managed with language-specific names rather than toolchain-specific names.
* | Merge topic 'intel-compile-features'Brad King2017-04-031-1/+3
|\ \ | |/ |/| | | | | | | | | 4af0c9da Features: Update features for Intel C++ 17.0.2 on UNIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !652
| * Features: Update features for Intel C++ 17.0.2 on UNIXBrad King2017-03-311-1/+3
| | | | | | | | | | | | | | Intel 17.0.2 on UNIX introduced a regression from 17.0.1 in its definition of `__cpp_constexpr` in `-std=c++14` mode. It incorrectly defines it as `200704` instead of the expected `201304`. Fix our feature detection table to account for this.
* | Merge topic 'ipo-policy-CMP0069'Brad King2017-03-313-0/+55
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dfa8263f Implement interprocedural optimization for GNU compilers 1588a577 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION a7575700 Refactoring: s,GetFeatureAsBool,IsIPOEnabled, e05835c3 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com> Merge-request: !568
| * | Implement interprocedural optimization for GNU compilersRuslan Baratov2017-03-303-0/+55
| | | | | | | | | | | | | | | Honor the `INTERPROCEDURAL_OPTIMIZATION` target property for GNU compilers by activating their link-time-optimization (LTO) flags.
* | | Merge topic 'sdcc-compiler-id'Brad King2017-03-301-2/+8
|\ \ \ | |/ / |/| / | |/ | | | | | | 5695558f SDCC: Fix identification of current sdcc compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !644
| * SDCC: Fix identification of current sdcc compilerBrad King2017-03-291-2/+8
| | | | | | | | | | | | | | | | The sdcc compiler no longer defines the `SDCC` preprocessor macro. Instead `__SDCC_VERSION_MAJOR` and similar component-wise macros are defined. Use them instead if defined. Issue: #16746
* | GNU-FindBinUtils: Avoid setting policy CMP0054Brad King2017-03-101-3/+1
| | | | | | | | | | | | | | The `cmake_policy(SET)` call triggers `CMP0011` warnings when this module is used in a project that does not set `CMP0011` to NEW. We could avoid these with a `cmake_policy` PUSH/POP pair, but it is simpler to adjust our code to not trigger `CMP0054` in the first place.
* | Add 'CMAKE_GCC_AR' and 'CMAKE_GCC_RANLIB' variablesRuslan Baratov2017-03-081-0/+27
| |
* | Merge topic 'cuda-msvc-flags'Brad King2017-02-161-6/+5
|\ \ | |/ | | | | | | | | 55fb46d2 CUDA: Fix default compiler flags on Windows d7c80f60 CUDA: Fix test cases to not override CUDA flags
| * CUDA: Fix default compiler flags on WindowsBrad King2017-02-151-6/+5
| | | | | | | | | | | | | | Fix the default values of `CMAKE_CUDA_FLAGS[_<CONFIG>]` on Windows to make the host compiler flags match those produced for C++ by the `Platform/Windows-MSVC` module. This makes the flags consistent with those used for C++.
* | Merge topic 'cuda-no-Os'Brad King2017-02-151-1/+1
|\ \ | |/ | | | | | | 59ed323d CUDA: Do not use non-existent -Os flag for nvcc
| * CUDA: Do not use non-existent -Os flag for nvccBrad King2017-02-141-1/+1
| | | | | | | | | | Fix the CUDA MinSizeRel configuration flags to avoid using the `-Os` flag that nvcc does not support.
* | g++ knows about C++98 selection flags since at least 3.4Rolf Eike Beer2017-02-081-2/+1
|/ | | | https://gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/C-Dialect-Options.html#C-Dialect-Options
* GNU C++: record that -fvisibility-inlines-hidden is available since 4.0Rolf Eike Beer2017-02-021-1/+1
| | | | See https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Option-Summary.html
* GNU C: record that C99 is available since at least 3.4Rolf Eike Beer2017-02-022-10/+9
|
* Features: Update version of Intel Compiler on Windows supporting C 11Brad King2017-02-011-5/+8
| | | | | The Intel Compiler 15.0.0 on Windows does not support `-Qstd=c11`. Bump our version requirement to 16 to use that flag.
* GNUC: also check __GNUG__ define when checking for g++Rolf Eike Beer2017-01-252-0/+15
| | | | | | | At least the scratchbox compiler for the N900, which basically is a gcc 4.2, sets only __GNUG__ in C++ mode, but not __GNUC__. It does indeed set __GNUC_MINOR__ and __GNUC_PATCHLEVEL__. Extend the compiler detection code for GNU compilers in C++ mode to look at __GNUG__ in case __GNUC__ is absent.
* Features: activate C++11 support for Clang 3.1+Giel van Schijndel2017-01-122-5/+4
|
* CUDA: Populate NVIDIA compiler information on WindowsBrad King2017-01-121-13/+17
| | | | | | | Port Windows-specific compilation and linking rules over from the `Platform/Windows-MSVC` module and adapt it for NVIDIA CUDA. On Windows nvcc and its host compiler (MSVC) do not understand or use options like `-fPIC` or `-std=`, so condition those out.
* CUDA: Detect use of MSVC host compilerBrad King2017-01-121-1/+11
| | | | Report it in `CMAKE_CUDA_SIMULATE_{ID,VERSION}`.
* PGI: Add support for Fortran with the Ninja generatorDaniel Carrera2016-12-161-0/+3
| | | | | | | The PGI documentation says that `-Mpreprocess` "instructs the compiler to perform cpp-like preprocessing on assembly and Fortran input source files". The `-E` flag causes the compiler to spit the result to stdout instead of saving it to a file.
* CUDA: Fix default compiler flag initializationBrad King2016-12-091-5/+5
| | | | | | | Since commit v3.7.0-rc1~392^2 (Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files, 2016-07-05) our convention is to initialize compiler flag variables via `string(APPEND)` rather than `set()`. Fix the convention for `CMAKE_CUDA_FLAGS[_<CONFIG>]_INIT`.
* Features: Activate C++ 17 support for AppleClang 6.1+Brad King2016-12-021-0/+8
|
* Features: Activate C++ 17 support for Clang 3.5+Brad King2016-12-021-0/+8
|
* Features: Activate C++ 17 support for GNU 5.1+Brad King2016-12-021-0/+8
|
* Features: Add infrastructure for C++ 17 language standardBrad King2016-12-021-0/+1
| | | | Issue: #16468
* Features: Make feature recording conditions more consistentBrad King2016-12-029-16/+24
| | | | | | | | | Condition all calls to `_record_compiler_features_{c,cxx}` on `_result EQUAL 0` so that adding new language standards later does not need to update them. Avoid some duplicate compiler version checks by conditioning C11 and CXX14 feature recording on the existence of `CMAKE_{C11,CXX14}_STANDARD_COMPILE_OPTION` (whose setting already used the version check).
* Merge topic 'initial_cuda_language_support'Brad King2016-11-292-0/+31
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4cc601f2 Help: Add release note for CUDA support 7b9131da CUDA: Add tests to verify CUDA compiler works properly. 9cf5b98d CUDA: Prefer environment variables CUDACXX and CUDAHOSTCXX. a5e806b3 CUDA: Add support for CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY d038559e CUDA: Add separable compilation support to the makefile generator. 43ce4414 CUDA: Add separable compilation support to the ninja generator. 4b316097 CUDA: Add support for the CUDA_SEPARABLE_COMPILATION target property ae05fcc6 CUDA: Add LinkLineComputer that computes cuda dlink lines. 115269a8 CUDA: Refactor cmLinkLineComputer to allow for better derived children. 5dec4031 CUDA: Refactor CMakeCUDAInformation to prepare for separable compilation. 5b20d0ab CUDA: C++ compile features now enable cuda c++11 support. 489c52ce CUDA: Use the host compiler for linking CUDA executables and shared libs. bbaf2434 CUDA: add support for specifying an explicit host compiler. a92f8d96 CUDA: Enable header dependency scanning. ec6ce623 CUDA: State that cuda has preprocessor output and can generate assembly. 4f5155f6 CUDA: We now properly perform CUDA compiler identification. ...
| * CUDA: Refactor CMakeCUDAInformation to prepare for separable compilation.Robert Maynard2016-11-141-0/+5
| |