|
|
|
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
|