diff options
author | Patrick Stotko <stotko@cs.uni-bonn.de> | 2018-06-02 15:20:51 (GMT) |
---|---|---|
committer | Patrick Stotko <stotko@cs.uni-bonn.de> | 2018-06-18 19:01:57 (GMT) |
commit | 316815e1f4beb66b679f27f96800facef572889e (patch) | |
tree | 99c44018136c1fe6ead03b4c00359af72be1dc82 /Help/policy | |
parent | f31d4ac7d68a1939d22ab7246b51e0ac10842bec (diff) | |
download | CMake-316815e1f4beb66b679f27f96800facef572889e.zip CMake-316815e1f4beb66b679f27f96800facef572889e.tar.gz CMake-316815e1f4beb66b679f27f96800facef572889e.tar.bz2 |
target_sources: Interpret relative paths as relative to the calling directory
Previously the command considered non-absolute source file paths relative to
the associated target on the LHS. This causes problems in incremental builds
where files are added from subdirectories and forces users to workaround by
manually converting to absolute paths. Change this to enable more intuitive
usage by projects.
Fixes #17981
Diffstat (limited to 'Help/policy')
-rw-r--r-- | Help/policy/CMP0076.rst | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Help/policy/CMP0076.rst b/Help/policy/CMP0076.rst new file mode 100644 index 0000000..dd25f80 --- /dev/null +++ b/Help/policy/CMP0076.rst @@ -0,0 +1,26 @@ +CMP0076 +------- + +The :command:`target_sources` command converts relative paths to absolute. + +In CMake 3.13 and above, the :command:`target_sources` command now converts +relative source file paths to absolute paths in the following cases: + +* Source files are added to the target's :prop_tgt:`INTERFACE_SOURCES` + property. +* The target's :prop_tgt:`SOURCE_DIR` property differs from + :variable:`CMAKE_CURRENT_SOURCE_DIR`. + +A path that begins with a generator expression is always left unmodified. + +This policy provides compatibility with projects that have not been updated +to expect this behavior. The ``OLD`` behavior for this policy is to leave +all relative source file paths unmodified. The ``NEW`` behavior of this +policy is to convert relative paths to absolute according to above rules. + +This policy was introduced in CMake version 3.13. 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 |