diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-03-28 15:09:35 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-05-07 10:17:49 (GMT) |
commit | 1df2116bfaa4c575404ae1eef225aed1530d668a (patch) | |
tree | 99a8fd5375d47f6359fd269c0d9e3ab030bc131e /Help | |
parent | c4f4dac2d550f0a8a44530187eac2ad03191c981 (diff) | |
download | CMake-1df2116bfaa4c575404ae1eef225aed1530d668a.zip CMake-1df2116bfaa4c575404ae1eef225aed1530d668a.tar.gz CMake-1df2116bfaa4c575404ae1eef225aed1530d668a.tar.bz2 |
Features: Decay language flag if requested is not available.
Use the highest standard compile flags available if requested language
version is too new.
This supports use-cases like
set(CMAKE_CXX_STANDARD 14)
# Compiled with -std=c++11 with GNU 4.7, which has no -std=c++14
# or equivalent flag
add_executable(main main.cpp)
This can be used in combination with preprocessor defines which
communicate the availability of certain language features for
optional use.
Diffstat (limited to 'Help')
-rw-r--r-- | Help/prop_tgt/CXX_STANDARD.rst | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Help/prop_tgt/CXX_STANDARD.rst b/Help/prop_tgt/CXX_STANDARD.rst index e1b6e78..fb72f3e 100644 --- a/Help/prop_tgt/CXX_STANDARD.rst +++ b/Help/prop_tgt/CXX_STANDARD.rst @@ -1,14 +1,26 @@ CXX_STANDARD ------------ -The C++ standard whose features are required to build this target. +The C++ standard whose features are requested to build this target. -This property specifies the C++ standard whose features are required +This property specifies the C++ standard whose features are requested to build this target. For some compilers, this results in adding a flag such as ``-std=c++11`` to the compile line. Supported values are ``98`` and ``11``. +If the value requested does not result in a compile flag being added for +the compiler in use, a previous standard flag will be added instead. This +means that using: + +.. code-block:: cmake + + set_property(TARGET tgt PROPERTY CXX_STANDARD 11) + +with a compiler which does not support ``-std=c++11`` or an equivalent +flag will not result in an error or warning, but will instead add the +``-std=c++98`` flag if supported. + This property is initialized by the value of the :variable:`CMAKE_CXX_STANDARD` variable if it is set when a target is created. |