mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Every policy's documentation has a paragraph on what version of CMake introduced it, how to set the policy, and whether CMake warns if the policy is not set. The wording of this paragraph has diverged across policies over time. Factor the paragraph out into a standard advice document included by every policy.
36 lines
1.4 KiB
ReStructuredText
36 lines
1.4 KiB
ReStructuredText
CMP0008
|
|
-------
|
|
|
|
Libraries linked by full-path must have a valid library file name.
|
|
|
|
In CMake 2.4 and below it is possible to write code like
|
|
|
|
::
|
|
|
|
target_link_libraries(myexe /full/path/to/somelib)
|
|
|
|
where ``somelib`` is supposed to be a valid library file name such as
|
|
``libsomelib.a`` or ``somelib.lib``. For Makefile generators this
|
|
produces an error at build time because the dependency on the full
|
|
path cannot be found. For :ref:`Visual Studio Generators` IDE
|
|
and :generator:`Xcode` generators this used to
|
|
work by accident because CMake would always split off the library
|
|
directory and ask the linker to search for the library by name
|
|
(``-lsomelib`` or ``somelib.lib``). Despite the failure with Makefiles, some
|
|
projects have code like this and build only with Visual Studio and/or Xcode.
|
|
This version of CMake prefers to pass the full path directly to the
|
|
native build tool, which will fail in this case because it does not
|
|
name a valid library file.
|
|
|
|
This policy determines what to do with full paths that do not appear
|
|
to name a valid library file. The ``OLD`` behavior for this policy is to
|
|
split the library name from the path and ask the linker to search for
|
|
it. The ``NEW`` behavior for this policy is to trust the given path and
|
|
pass it directly to the native build tool unchanged.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 2.6.1
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
|
|
.. include:: STANDARD_ADVICE.txt
|
|
|
|
.. include:: DEPRECATED.txt
|