Added: #1440 Allow wildcard in output parameter in depend log, use when input includes other files to depend all the outputs on the included files as well

--HG--
branch : build_pipeline_v3
hg/feature/build_pipeline_v3
kaetemi 12 years ago
parent 5f650cff5a
commit cfd3e9b7a1

@ -175,20 +175,16 @@ void CPipelineProcessImpl::parseToolLog(const std::string &dependLogFile, const
{
metaDepends[outputFile] = CFileDepend();
metaDependIt = metaDepends.find(outputFile);
if (outputFile != "*")
{
CFileStatus status;
nldebug("Update status for output file '%s', calculate checksum", outputFile.c_str());
g_DatabaseStatus->updateFileStatus(status, outputFile); // calculate the checksum of the output, this takes a while
metaDependIt->second.CRC32 = status.CRC32;
// nldebug("Checksum %i; %i", metaDependIt->second.CRC32, status.CRC32);
/*m_ResultCurrent.MacroPaths.push_back(outputFileMacro);
CProcessResult::CFileResult prfr;
prfr.Level = STATE_SUCCESS; // dunno if still needed?
prfr.CRC32 = status.CRC32;
m_ResultCurrent.FileResults.push_back(prfr);*/
m_FileStatusOutputCache[outputFile] = status;
}
}
switch (type)
{
case BUILD:
@ -247,6 +243,21 @@ void CPipelineProcessImpl::parseToolLog(const std::string &dependLogFile, const
file.close();
// Allow wildcard in output parameter in depend log, use when input includes other files to depend all the outputs on the included files as well
std::map<std::string, CFileDepend>::iterator wildcard_it = metaDepends.find("*");
if (wildcard_it != metaDepends.end())
{
for (std::map<std::string, CFileDepend>::iterator it = metaDepends.begin(), end = metaDepends.end(); it != end; ++it)
{
for (std::vector<CFileDepend::CDependency>::iterator sub_it = wildcard_it->second.Dependencies.begin(), sub_end = wildcard_it->second.Dependencies.end(); sub_it != sub_end; ++sub_it)
it->second.Dependencies.push_back(*sub_it);
for (std::vector<std::string>::iterator sub_it = wildcard_it->second.DirectoryDependencies.begin(), sub_end = wildcard_it->second.DirectoryDependencies.end(); sub_it != sub_end; ++sub_it)
it->second.DirectoryDependencies.push_back(*sub_it);
for (std::vector<std::string>::iterator sub_it = wildcard_it->second.RuntimeDependencies.begin(), sub_end = wildcard_it->second.RuntimeDependencies.end(); sub_it != sub_end; ++sub_it)
it->second.RuntimeDependencies.push_back(*sub_it);
}
}
// Write depend meta files
for (std::map<std::string, CFileDepend>::iterator it = metaDepends.begin(), end = metaDepends.end(); it != end; ++it)
{

Loading…
Cancel
Save