diff options
author | Brad King <brad.king@kitware.com> | 2017-06-08 15:54:03 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-06-09 14:38:43 (GMT) |
commit | 82be694c7a1a878650563cd2c72b60f314d5dc85 (patch) | |
tree | 7ab8aa180d53af798fc19598874543ac2e98fd68 /Help/policy | |
parent | 69050f4d16ae649e074b5fd7cb3bae1811b403a8 (diff) | |
download | CMake-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.rst | 25 |
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 |