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
e17b1791 Features: On SunPro link with language standard compiler flag
d037be12 cmLocalGenerator: Add a hook for compiler flags used at link time
b115bc49 Features: Refactor <LANG>_STANDARD update
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !783
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.
Previously we made the `documentation` target depend on the executable
targets. There is no real reason to do this other than serializing the
documentation build output in terminals. Move this dependency behind an
undocumented option so that it is not on by default.
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.
When using a compiler to drive linking we add compiler flags from
`CMAKE_<LANG>_FLAGS` in case they affect the way the compiler invokes
the linker, but we don't add flags from other places that are meant only
for compiling sources. Rather than calling the `AddLanguageFlags`
method (which is used to add flags for compiling sources) directly, add
an intermediate method that is used when adding the flags for linking.
This will give us a way to add language-specific compiler flags needed
when driving the linker in the same place on the command line as other
compiler flags go.
In order to support generator expressions in target COMPILE_FEATURES
we apply them at generate time. Move this step to the beginning of
generation instead of doing it on demand while collecting flags.
This avoids repeating the process unnecessarily, and will then allow
`cmLocalGenerator::AddCompilerRequirementFlag` to be used any time
during generation.
6555286c XL: Add C and C++ language level flags
54a4d28d XL: Add additional regex for bogus compile options
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !776
Move addition of IPO flags into `cmLocalGenerator::AddLanguageFlags`
because all call sites of that need the IPO flags, but not all were
following the call with `AppendFeatureOptions`.
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 |
370a6b1b cmELF: Remove now-redundant check for DT_RUNPATH's existence
7146a604 cmELF: Define DT_RUNPATH if it isn't already defined
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !764