Since commit v3.3.0-rc1~430^2 (Teach find_(library|file|path) to get prefixes from PATH, 2015-02-18) we search in <prefix>/include and <prefix>/lib directories for prefixes with bin directories in the PATH environment variable. The motivation was to support MSYS, MinGW and similar Windows platforms in their default environments automatically. At the time this behavior was thought to be worthwhile in general. Suggested-by: Chuck Atkins <chuck.atkins@kitware.com>
58 lines
2.5 KiB
ReStructuredText
58 lines
2.5 KiB
ReStructuredText
find_library
|
|
------------
|
|
|
|
.. |FIND_XXX| replace:: find_library
|
|
.. |NAMES| replace:: NAMES name1 [name2 ...] [NAMES_PER_DIR]
|
|
.. |SEARCH_XXX| replace:: library
|
|
.. |SEARCH_XXX_DESC| replace:: library
|
|
.. |prefix_XXX_SUBDIR| replace:: ``<prefix>/lib``
|
|
.. |entry_XXX_SUBDIR| replace:: ``<entry>/lib``
|
|
|
|
.. |CMAKE_PREFIX_PATH_XXX| replace::
|
|
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
|
|
and |CMAKE_PREFIX_PATH_XXX_SUBDIR|
|
|
.. |CMAKE_XXX_PATH| replace:: :variable:`CMAKE_LIBRARY_PATH`
|
|
.. |CMAKE_XXX_MAC_PATH| replace:: :variable:`CMAKE_FRAMEWORK_PATH`
|
|
|
|
.. |SYSTEM_ENVIRONMENT_PATH_XXX| replace:: Directories in ``LIB``.
|
|
On Windows hosts:
|
|
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
|
|
and |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR|,
|
|
and the directories in ``PATH`` itself.
|
|
|
|
.. |CMAKE_SYSTEM_PREFIX_PATH_XXX| replace::
|
|
``<prefix>/lib/<arch>`` if :variable:`CMAKE_LIBRARY_ARCHITECTURE` is set,
|
|
and |CMAKE_SYSTEM_PREFIX_PATH_XXX_SUBDIR|
|
|
.. |CMAKE_SYSTEM_XXX_PATH| replace::
|
|
:variable:`CMAKE_SYSTEM_LIBRARY_PATH`
|
|
.. |CMAKE_SYSTEM_XXX_MAC_PATH| replace::
|
|
:variable:`CMAKE_SYSTEM_FRAMEWORK_PATH`
|
|
|
|
.. |CMAKE_FIND_ROOT_PATH_MODE_XXX| replace::
|
|
:variable:`CMAKE_FIND_ROOT_PATH_MODE_LIBRARY`
|
|
|
|
.. include:: FIND_XXX.txt
|
|
|
|
When more than one value is given to the ``NAMES`` option this command by
|
|
default will consider one name at a time and search every directory
|
|
for it. The ``NAMES_PER_DIR`` option tells this command to consider one
|
|
directory at a time and search for all names in it.
|
|
|
|
Each library name given to the ``NAMES`` option is first considered
|
|
as a library file name and then considered with platform-specific
|
|
prefixes (e.g. ``lib``) and suffixes (e.g. ``.so``). Therefore one
|
|
may specify library file names such as ``libfoo.a`` directly.
|
|
This can be used to locate static libraries on UNIX-like systems.
|
|
|
|
If the library found is a framework, then ``<VAR>`` will be set to the full
|
|
path to the framework ``<fullPath>/A.framework``. When a full path to a
|
|
framework is used as a library, CMake will use a ``-framework A``, and a
|
|
``-F<fullPath>`` to link the framework to the target.
|
|
|
|
If the :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global property is set
|
|
all search paths will be tested as normal, with ``64/`` appended, and
|
|
with all matches of ``lib/`` replaced with ``lib64/``. This property is
|
|
automatically set for the platforms that are known to need it if at
|
|
least one of the languages supported by the :command:`project` command
|
|
is enabled.
|