1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-16 14:08:35 +08:00

Autogen: Protected calls to cmQtAutoGen::SubDirPrefix

This commit is contained in:
Sebastian Holtermann
2018-04-03 12:29:47 +02:00
parent 9a73615815
commit 719b24c872
3 changed files with 14 additions and 5 deletions

View File

@@ -190,6 +190,13 @@ std::string cmQtAutoGenerator::FileSystem::GetFilenameWithoutLastExtension(
return cmSystemTools::GetFilenameWithoutLastExtension(filename); return cmSystemTools::GetFilenameWithoutLastExtension(filename);
} }
std::string cmQtAutoGenerator::FileSystem::SubDirPrefix(
std::string const& filename)
{
std::lock_guard<std::mutex> lock(Mutex_);
return cmQtAutoGen::SubDirPrefix(filename);
}
bool cmQtAutoGenerator::FileSystem::FileExists(std::string const& filename) bool cmQtAutoGenerator::FileSystem::FileExists(std::string const& filename)
{ {
std::lock_guard<std::mutex> lock(Mutex_); std::lock_guard<std::mutex> lock(Mutex_);

View File

@@ -87,6 +87,8 @@ public:
std::vector<std::string>::const_iterator last); std::vector<std::string>::const_iterator last);
/// @brief Wrapper for cmSystemTools::GetFilenameWithoutLastExtension /// @brief Wrapper for cmSystemTools::GetFilenameWithoutLastExtension
std::string GetFilenameWithoutLastExtension(const std::string& filename); std::string GetFilenameWithoutLastExtension(const std::string& filename);
/// @brief Wrapper for cmQtAutoGen::SubDirPrefix
std::string SubDirPrefix(std::string const& filename);
// -- File access // -- File access
bool FileExists(std::string const& filename); bool FileExists(std::string const& filename);

View File

@@ -166,7 +166,7 @@ void cmQtAutoGeneratorMocUic::JobParseT::Process(WorkerT& wrk)
MetaT meta; MetaT meta;
if (wrk.FileSys().FileRead(meta.Content, FileName, &error)) { if (wrk.FileSys().FileRead(meta.Content, FileName, &error)) {
if (!meta.Content.empty()) { if (!meta.Content.empty()) {
meta.FileDir = SubDirPrefix(FileName); meta.FileDir = wrk.FileSys().SubDirPrefix(FileName);
meta.FileBase = meta.FileBase =
wrk.FileSys().GetFilenameWithoutLastExtension(FileName); wrk.FileSys().GetFilenameWithoutLastExtension(FileName);
@@ -222,7 +222,7 @@ bool cmQtAutoGeneratorMocUic::JobParseT::ParseMocSource(WorkerT& wrk,
cmsys::RegularExpressionMatch match; cmsys::RegularExpressionMatch match;
while (wrk.Moc().RegExpInclude.find(contentChars, match)) { while (wrk.Moc().RegExpInclude.find(contentChars, match)) {
std::string incString = match.match(2); std::string incString = match.match(2);
std::string incDir(SubDirPrefix(incString)); std::string incDir(wrk.FileSys().SubDirPrefix(incString));
std::string incBase = std::string incBase =
wrk.FileSys().GetFilenameWithoutLastExtension(incString); wrk.FileSys().GetFilenameWithoutLastExtension(incString);
if (cmHasLiteralPrefix(incBase, "moc_")) { if (cmHasLiteralPrefix(incBase, "moc_")) {
@@ -538,7 +538,7 @@ std::string cmQtAutoGeneratorMocUic::JobParseT::UicFindIncludedFile(
// Collect search paths list // Collect search paths list
std::deque<std::string> testFiles; std::deque<std::string> testFiles;
{ {
std::string const searchPath = SubDirPrefix(includeString); std::string const searchPath = wrk.FileSys().SubDirPrefix(includeString);
std::string searchFileFull; std::string searchFileFull;
if (!searchPath.empty()) { if (!searchPath.empty()) {
@@ -798,7 +798,7 @@ bool cmQtAutoGeneratorMocUic::JobMocT::UpdateRequired(WorkerT& wrk)
} }
// Check dependency timestamps // Check dependency timestamps
std::string error; std::string error;
std::string sourceDir = SubDirPrefix(SourceFile); std::string sourceDir = wrk.FileSys().SubDirPrefix(SourceFile);
for (std::string const& depFileRel : Depends) { for (std::string const& depFileRel : Depends) {
std::string depFileAbs = std::string depFileAbs =
wrk.Moc().FindIncludedFile(sourceDir, depFileRel); wrk.Moc().FindIncludedFile(sourceDir, depFileRel);
@@ -1416,7 +1416,7 @@ bool cmQtAutoGeneratorMocUic::Init(cmMakefile* makefile)
// Search for the default header file and a private header // Search for the default header file and a private header
{ {
std::array<std::string, 2> bases; std::array<std::string, 2> bases;
bases[0] = SubDirPrefix(src); bases[0] = FileSys().SubDirPrefix(src);
bases[0] += FileSys().GetFilenameWithoutLastExtension(src); bases[0] += FileSys().GetFilenameWithoutLastExtension(src);
bases[1] = bases[0]; bases[1] = bases[0];
bases[1] += "_p"; bases[1] += "_p";