CheckCXXSymbolExists¶
Check if a symbol exists as a function, variable, or macro in C++
-
CHECK_CXX_SYMBOL_EXISTS
¶ CHECK_CXX_SYMBOL_EXISTS(<symbol> <files> <variable>)
Check that the
<symbol>
is available after including given header<files>
and store the result in a<variable>
. Specify the list of files in one argument as a semicolon-separated list.CHECK_CXX_SYMBOL_EXISTS()
can be used to check in C++ files, as opposed toCHECK_SYMBOL_EXISTS()
, which works only forC
.If the header files define the symbol as a macro it is considered available and assumed to work. If the header files declare the symbol as a function or variable then the symbol must also be available for linking. If the symbol is a type or enum value it will not be recognized (consider using
CheckTypeSize
orCheckCSourceCompiles
).
The following variables may be set before calling this macro to modify the way the check is run:
CMAKE_REQUIRED_FLAGS
- string of compile command line flags.
CMAKE_REQUIRED_DEFINITIONS
- a ;-list of macros to define (-DFOO=bar).
CMAKE_REQUIRED_INCLUDES
- a ;-list of header search paths to pass to the compiler.
CMAKE_REQUIRED_LINK_OPTIONS
- a ;-list of options to add to the link command.
CMAKE_REQUIRED_LIBRARIES
- a ;-list of libraries to add to the link
command. See policy
CMP0075
. CMAKE_REQUIRED_QUIET
- execute quietly without messages.