diff options
author | Brad King <brad.king@kitware.com> | 2018-11-02 16:46:00 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-11-03 12:39:45 (GMT) |
commit | 98d59417b0c6ac3ea85e315133337030dad93496 (patch) | |
tree | 74ec336a6debe5e073be6443cb1fed4ac7c2939b /Source/cmCustomCommandGenerator.cxx | |
parent | 44cc305ac12d58fe476f815b89f42288455e44a9 (diff) | |
download | CMake-98d59417b0c6ac3ea85e315133337030dad93496.zip CMake-98d59417b0c6ac3ea85e315133337030dad93496.tar.gz CMake-98d59417b0c6ac3ea85e315133337030dad93496.tar.bz2 |
add_custom_{command,target}: Fix WORKING_DIRECTORY leading genex
Since commit v3.13.0-rc1~39^2 (add_custom_{command,target}:
WORKING_DIRECTORY generator expressions, 2018-09-22) the
`WORKING_DIRECTORY` option accepts generator expressions.
Fix support for the case of a leading generator expression
by deferring conversion to an absolute path until after
evaluation of the generator expression.
Fixes: #18543
Diffstat (limited to 'Source/cmCustomCommandGenerator.cxx')
-rw-r--r-- | Source/cmCustomCommandGenerator.cxx | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/cmCustomCommandGenerator.cxx b/Source/cmCustomCommandGenerator.cxx index 5bbae17..d1c1736 100644 --- a/Source/cmCustomCommandGenerator.cxx +++ b/Source/cmCustomCommandGenerator.cxx @@ -70,6 +70,12 @@ cmCustomCommandGenerator::cmCustomCommandGenerator(cmCustomCommand const& cc, std::unique_ptr<cmCompiledGeneratorExpression> cge = this->GE->Parse(workingdirectory); this->WorkingDirectory = cge->Evaluate(this->LG, this->Config); + // Convert working directory to a full path. + if (!this->WorkingDirectory.empty()) { + std::string const& build_dir = this->LG->GetCurrentBinaryDirectory(); + this->WorkingDirectory = + cmSystemTools::CollapseFullPath(this->WorkingDirectory, build_dir); + } } } |