summaryrefslogtreecommitdiffstats
path: root/Source/cmTargetSourcesCommand.h
diff options
context:
space:
mode:
authorPatrick Stotko <stotko@cs.uni-bonn.de>2018-06-02 15:20:51 (GMT)
committerPatrick Stotko <stotko@cs.uni-bonn.de>2018-06-18 19:01:57 (GMT)
commit316815e1f4beb66b679f27f96800facef572889e (patch)
tree99c44018136c1fe6ead03b4c00359af72be1dc82 /Source/cmTargetSourcesCommand.h
parentf31d4ac7d68a1939d22ab7246b51e0ac10842bec (diff)
downloadCMake-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 'Source/cmTargetSourcesCommand.h')
-rw-r--r--Source/cmTargetSourcesCommand.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmTargetSourcesCommand.h b/Source/cmTargetSourcesCommand.h
index ea8776a..b01e3ca 100644
--- a/Source/cmTargetSourcesCommand.h
+++ b/Source/cmTargetSourcesCommand.h
@@ -29,6 +29,11 @@ public:
bool InitialPass(std::vector<std::string> const& args,
cmExecutionStatus& status) override;
+protected:
+ void HandleInterfaceContent(cmTarget* tgt,
+ const std::vector<std::string>& content,
+ bool prepend, bool system) override;
+
private:
void HandleMissingTarget(const std::string& name) override;
@@ -37,6 +42,10 @@ private:
bool prepend, bool system) override;
std::string Join(const std::vector<std::string>& content) override;
+
+ std::vector<std::string> ConvertToAbsoluteContent(
+ cmTarget* tgt, const std::vector<std::string>& content,
+ bool isInterfaceContent);
};
#endif