ENH: add CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA variable

This commit is contained in:
Bill Hoffman 2008-04-01 17:51:10 -04:00
parent 2488dccf4e
commit 2efad09d92
1 changed files with 24 additions and 0 deletions

View File

@ -200,6 +200,30 @@ int cmCPackDebGenerator::CompressFiles(const char* outFileName,
cmd = "\"";
cmd += cmakeExecutable;
cmd += "\" -E tar cfz control.tar.gz ./control ./md5sums";
const char* controlExtra =
this->GetOption("CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA");
if( controlExtra )
{
std::vector<std::string> controlExtraList;
cmSystemTools::ExpandListArgument(controlExtra, controlExtraList);
for(std::vector<std::string>::iterator i =
controlExtraList.begin(); i != controlExtraList.end(); ++i)
{
std::string filenamename =
cmsys::SystemTools::GetFilenameName(i->c_str());
std::string localcopy = toplevel;
localcopy += "/";
localcopy += filenamename;
// if we can copy the file, it means it does exist, let's add it:
if( cmsys::SystemTools::CopyFileIfDifferent(
i->c_str(), localcopy.c_str()) )
{
// debian is picky and need relative to ./ path in the tar.gz
cmd += " ./";
cmd += filenamename;
}
}
}
res = cmSystemTools::RunSingleCommand(cmd.c_str(), &output,
&retVal, toplevel, this->GeneratorVerbose, 0);