ENH: Added information about target needing a source file when one cannot be found.
This commit is contained in:
parent
d7faff7c08
commit
323dc3a89a
@ -23,9 +23,10 @@
|
|||||||
// The class must be found in dir and end in name.cxx, name.txx,
|
// The class must be found in dir and end in name.cxx, name.txx,
|
||||||
// name.c or it will be considered a header file only class
|
// name.c or it will be considered a header file only class
|
||||||
// and not included in the build process
|
// and not included in the build process
|
||||||
void cmSourceFile::SetName(const char* name, const char* dir,
|
bool cmSourceFile::SetName(const char* name, const char* dir,
|
||||||
const std::vector<std::string>& sourceExts,
|
const std::vector<std::string>& sourceExts,
|
||||||
const std::vector<std::string>& headerExts)
|
const std::vector<std::string>& headerExts,
|
||||||
|
const char* target)
|
||||||
{
|
{
|
||||||
|
|
||||||
this->SetProperty("HEADER_FILE_ONLY","1");
|
this->SetProperty("HEADER_FILE_ONLY","1");
|
||||||
@ -79,7 +80,7 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||||||
{
|
{
|
||||||
this->SetProperty("EXTERNAL_OBJECT", "1");
|
this->SetProperty("EXTERNAL_OBJECT", "1");
|
||||||
}
|
}
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next, try the various source extensions
|
// Next, try the various source extensions
|
||||||
@ -94,7 +95,7 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||||||
this->SourceExtension = *ext;
|
this->SourceExtension = *ext;
|
||||||
this->SetProperty("HEADER_FILE_ONLY","0");
|
this->SetProperty("HEADER_FILE_ONLY","0");
|
||||||
this->FullPath = hname;
|
this->FullPath = hname;
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,25 +110,29 @@ void cmSourceFile::SetName(const char* name, const char* dir,
|
|||||||
{
|
{
|
||||||
this->SourceExtension = *ext;
|
this->SourceExtension = *ext;
|
||||||
this->FullPath = hname;
|
this->FullPath = hname;
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string errorMsg = "\n\nTried";
|
cmOStringStream e;
|
||||||
|
e << "Cannot find source file \"" << pathname << "\"";
|
||||||
|
if(target)
|
||||||
|
{
|
||||||
|
e << " for target \"" << target << "\"";
|
||||||
|
}
|
||||||
|
e << "\n\nTried extensions";
|
||||||
for( std::vector<std::string>::const_iterator ext = sourceExts.begin();
|
for( std::vector<std::string>::const_iterator ext = sourceExts.begin();
|
||||||
ext != sourceExts.end(); ++ext )
|
ext != sourceExts.end(); ++ext )
|
||||||
{
|
{
|
||||||
errorMsg += " .";
|
e << " ." << *ext;
|
||||||
errorMsg += *ext;
|
|
||||||
}
|
}
|
||||||
for( std::vector<std::string>::const_iterator ext = headerExts.begin();
|
for( std::vector<std::string>::const_iterator ext = headerExts.begin();
|
||||||
ext != headerExts.end(); ++ext )
|
ext != headerExts.end(); ++ext )
|
||||||
{
|
{
|
||||||
errorMsg += " .";
|
e << " ." << *ext;
|
||||||
errorMsg += *ext;
|
|
||||||
}
|
}
|
||||||
cmSystemTools::Error("can not find file ", pathname.c_str(),
|
cmSystemTools::Error(e.str().c_str());
|
||||||
errorMsg.c_str());
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmSourceFile::SetName(const char* name, const char* dir, const char *ext,
|
void cmSourceFile::SetName(const char* name, const char* dir, const char *ext,
|
||||||
|
@ -46,9 +46,10 @@ public:
|
|||||||
* in. The various extensions provided are tried on the name
|
* in. The various extensions provided are tried on the name
|
||||||
* (e.g., cxx, cpp) in the directory to find the actual file.
|
* (e.g., cxx, cpp) in the directory to find the actual file.
|
||||||
*/
|
*/
|
||||||
void SetName(const char* name, const char* dir,
|
bool SetName(const char* name, const char* dir,
|
||||||
const std::vector<std::string>& sourceExts,
|
const std::vector<std::string>& sourceExts,
|
||||||
const std::vector<std::string>& headerExts);
|
const std::vector<std::string>& headerExts,
|
||||||
|
const char* target = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of the custom commands for this source file
|
* Get the list of the custom commands for this source file
|
||||||
|
@ -299,7 +299,7 @@ void cmTarget::GenerateSourceFilesFromSourceLists( cmMakefile &mf)
|
|||||||
file.SetProperty("ABSTRACT","0");
|
file.SetProperty("ABSTRACT","0");
|
||||||
file.SetName(temps.c_str(), mf.GetCurrentDirectory(),
|
file.SetName(temps.c_str(), mf.GetCurrentDirectory(),
|
||||||
mf.GetSourceExtensions(),
|
mf.GetSourceExtensions(),
|
||||||
mf.GetHeaderExtensions());
|
mf.GetHeaderExtensions(), this->Name.c_str());
|
||||||
this->SourceFiles.push_back(mf.AddSource(file));
|
this->SourceFiles.push_back(mf.AddSource(file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user