summaryrefslogtreecommitdiffstats
path: root/Help/policy
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-06-08 15:54:03 (GMT)
committerBrad King <brad.king@kitware.com>2017-06-09 14:38:43 (GMT)
commit82be694c7a1a878650563cd2c72b60f314d5dc85 (patch)
tree7ab8aa180d53af798fc19598874543ac2e98fd68 /Help/policy
parent69050f4d16ae649e074b5fd7cb3bae1811b403a8 (diff)
downloadCMake-82be694c7a1a878650563cd2c72b60f314d5dc85.zip
CMake-82be694c7a1a878650563cd2c72b60f314d5dc85.tar.gz
CMake-82be694c7a1a878650563cd2c72b60f314d5dc85.tar.bz2
file(GENERATE): Add policy CMP0070 to define relative path behavior
Previously `file(GENERATE)` did not define any behavior for relative paths given to the `OUTPUT` or `INPUT` arguments. Define behavior consistent with CMake conventions and add a policy to provide compatibility for projects that relied on the old accidental behavior. Fixes: #16786
Diffstat (limited to 'Help/policy')
-rw-r--r--Help/policy/CMP0070.rst25
1 files changed, 25 insertions, 0 deletions
diff --git a/Help/policy/CMP0070.rst b/Help/policy/CMP0070.rst
new file mode 100644
index 0000000..0fb3617
--- /dev/null
+++ b/Help/policy/CMP0070.rst
@@ -0,0 +1,25 @@
+CMP0070
+-------
+
+Define :command:`file(GENERATE)` behavior for relative paths.
+
+CMake 3.10 and newer define that relative paths given to ``INPUT`` and
+``OUTPUT`` arguments of ``file(GENERATE)`` are interpreted relative to the
+current source and binary directories, respectively. CMake 3.9 and lower did
+not define any behavior for relative paths but did not diagnose them either
+and accidentally treated them relative to the process working directory.
+Policy ``CMP0070`` provides compatibility with projects that used the old
+undefined behavior.
+
+This policy affects behavior of relative paths given to ``file(GENERATE)``.
+The ``OLD`` behavior for this policy is to treat the paths relative to the
+working directory of CMake. The ``NEW`` behavior for this policy is to
+interpret relative paths with respect to the current source or binary
+directory of the caller.
+
+This policy was introduced in CMake version 3.10. CMake version
+|release| warns when the policy is not set and uses ``OLD`` behavior.
+Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW``
+explicitly.
+
+.. include:: DEPRECATED.txt