summaryrefslogtreecommitdiff
path: root/Help/policy/CMP0008.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Help/policy/CMP0008.rst')
-rw-r--r--Help/policy/CMP0008.rst32
1 files changed, 32 insertions, 0 deletions
diff --git a/Help/policy/CMP0008.rst b/Help/policy/CMP0008.rst
new file mode 100644
index 0000000000..b118ece143
--- /dev/null
+++ b/Help/policy/CMP0008.rst
@@ -0,0 +1,32 @@
+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 VS IDE and 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 VS 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.
+
+This policy was introduced in CMake version 2.6.1. CMake version
+|release| warns when the policy is not set and uses OLD behavior. Use
+the cmake_policy command to set it to OLD or NEW explicitly.