ENH: Teach file(INSTALL) relative paths
This teaches the undocumented file(INSTALL) command to deal with relative paths. Relative input file paths are evaluated with respect to the current source directory. Relative output file paths are evaluated with respect to the current binary directory. While this command is currently used only in cmake_install.cmake scripts (in -P script mode), this cleans up its interface in preparation for a documented signature.
This commit is contained in:
parent
6aaa7d45bf
commit
b6cb117346
|
@ -1216,10 +1216,27 @@ bool cmFileCopier::CheckValue(std::string const& arg)
|
||||||
switch(this->Doing)
|
switch(this->Doing)
|
||||||
{
|
{
|
||||||
case DoingFiles:
|
case DoingFiles:
|
||||||
this->Files.push_back(arg);
|
if(arg.empty() || cmSystemTools::FileIsFullPath(arg.c_str()))
|
||||||
|
{
|
||||||
|
this->Files.push_back(arg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::string file = this->Makefile->GetCurrentDirectory();
|
||||||
|
file += "/" + arg;
|
||||||
|
this->Files.push_back(file);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case DoingDestination:
|
case DoingDestination:
|
||||||
this->Destination = arg;
|
if(arg.empty() || cmSystemTools::FileIsFullPath(arg.c_str()))
|
||||||
|
{
|
||||||
|
this->Destination = arg;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->Destination = this->Makefile->GetCurrentOutputDirectory();
|
||||||
|
this->Destination += "/" + arg;
|
||||||
|
}
|
||||||
this->Doing = DoingNone;
|
this->Doing = DoingNone;
|
||||||
break;
|
break;
|
||||||
case DoingRegex:
|
case DoingRegex:
|
||||||
|
|
Loading…
Reference in New Issue