blob: 2cccd09ff72402873ac0c570f6e28967f6b1fc6c [file] [log] [blame]
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or for details.
Check if a symbol exists as a function, variable, or macro in C++
.. code-block:: cmake
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 to ``CHECK_SYMBOL_EXISTS()``, which works only for ``C``.
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 :module:`CheckTypeSize`
or :module:`CheckCXXSourceCompiles`).
The following variables may be set before calling this macro to modify
the way the check is run:
string of compile command line flags.
a :ref:`;-list <CMake Language Lists>` of macros to define (-DFOO=bar).
a :ref:`;-list <CMake Language Lists>` of header search paths to pass to
the compiler.
a :ref:`;-list <CMake Language Lists>` of options to add to the link command.
a :ref:`;-list <CMake Language Lists>` of libraries to add to the link
command. See policy :policy:`CMP0075`.
execute quietly without messages.