summaryrefslogtreecommitdiffstats
path: root/Help/manual/cmake-compile-features.7.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Help/manual/cmake-compile-features.7.rst')
-rw-r--r--Help/manual/cmake-compile-features.7.rst17
1 files changed, 10 insertions, 7 deletions
diff --git a/Help/manual/cmake-compile-features.7.rst b/Help/manual/cmake-compile-features.7.rst
index d4bbecc..8e3dbb8 100644
--- a/Help/manual/cmake-compile-features.7.rst
+++ b/Help/manual/cmake-compile-features.7.rst
@@ -166,11 +166,11 @@ symbol, and compiler support determines what it is expanded to:
virtual void Execute() = 0;
};
- struct Concrete Foo_CXX_FINAL {
- void Execute() Foo_CXX_OVERRIDE;
+ struct Concrete Foo_FINAL {
+ void Execute() Foo_OVERRIDE;
};
-In this case, ``Foo_CXX_FINAL`` will expand to ``final`` if the
+In this case, ``Foo_FINAL`` will expand to ``final`` if the
compiler supports the keyword, or to empty otherwise.
In this use-case, the CMake code will wish to enable a particular language
@@ -189,13 +189,13 @@ set to influence all following targets:
cxx_final cxx_override
)
- # Includes foo_compiler_detection.h and uses the Foo_DECL_CXX_FINAL symbol
+ # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
# which will expand to 'final' if the compiler supports the requested
# CXX_STANDARD.
add_library(foo foo.cpp)
set_property(TARGET foo PROPERTY CXX_STANDARD 11)
- # Includes foo_compiler_detection.h and uses the Foo_DECL_CXX_FINAL symbol
+ # Includes foo_compiler_detection.h and uses the Foo_FINAL symbol
# which will expand to 'final' if the compiler supports the feature,
# even though CXX_STANDARD is not set explicitly. The requirement of
# cxx_constexpr causes CMake to set CXX_STANDARD internally, which
@@ -276,10 +276,13 @@ properties:
.. code-block:: cmake
add_library(foo INTERFACE)
+ set(with_variadics ${CMAKE_CURRENT_SOURCE_DIR}/with_variadics)
+ set(no_variadics ${CMAKE_CURRENT_SOURCE_DIR}/no_variadics)
target_link_libraries(foo
INTERFACE
- "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${CMAKE_CURRENT_SOURCE_DIR}/with_variadics>"
- "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${CMAKE_CURRENT_SOURCE_DIR}/no_variadics>")
+ "$<$<COMPILE_FEATURES:cxx_variadic_templates>:${with_variadics}>"
+ "$<$<NOT:$<COMPILE_FEATURES:cxx_variadic_templates>>:${no_variadics}>"
+ )
Consuming code then simply links to the ``foo`` target as usual and uses
the feature-appropriate include directory