File: target_compile_features.rst

package info (click to toggle)
cmake 3.7.2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 65,116 kB
  • sloc: ansic: 248,126; cpp: 172,544; yacc: 3,204; sh: 2,938; xml: 2,476; lex: 1,147; python: 789; asm: 334; lisp: 275; perl: 199; objc: 157; java: 154; f90: 151; fortran: 106; makefile: 81; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (32 lines) | stat: -rw-r--r-- 1,405 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
target_compile_features
-----------------------

Add expected compiler features to a target.

::

  target_compile_features(<target> <PRIVATE|PUBLIC|INTERFACE> <feature> [...])

Specify compiler features required when compiling a given target.  If the
feature is not listed in the :variable:`CMAKE_C_COMPILE_FEATURES` variable
or :variable:`CMAKE_CXX_COMPILE_FEATURES` variable,
then an error will be reported by CMake.  If the use of the feature requires
an additional compiler flag, such as ``-std=gnu++11``, the flag will be added
automatically.

The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
specify the scope of the features.  ``PRIVATE`` and ``PUBLIC`` items will
populate the :prop_tgt:`COMPILE_FEATURES` property of ``<target>``.
``PUBLIC`` and ``INTERFACE`` items will populate the
:prop_tgt:`INTERFACE_COMPILE_FEATURES` property of ``<target>``.  Repeated
calls for the same ``<target>`` append items.

The named ``<target>`` must have been created by a command such as
:command:`add_executable` or :command:`add_library` and must not be
an ``IMPORTED`` target.

Arguments to ``target_compile_features`` may use "generator expressions"
with the syntax ``$<...>``.
See the :manual:`cmake-generator-expressions(7)` manual for available
expressions.  See the :manual:`cmake-compile-features(7)` manual for
information on compile features and a list of supported compilers.