ENH: Catch missing source files specified by full path earlier.
- Revert previous change to trust user-provided full paths. - Instead trust them only far enough to determine the source language but still check for existence for non-generated sources.
This commit is contained in:
parent
1c0ffdc11c
commit
73d5fd31ab
@ -55,7 +55,13 @@ const char* cmSourceFile::GetLanguage()
|
|||||||
// Perform computation needed to get the language if necessary.
|
// Perform computation needed to get the language if necessary.
|
||||||
if(this->FullPath.empty() && this->Language.empty())
|
if(this->FullPath.empty() && this->Language.empty())
|
||||||
{
|
{
|
||||||
if(this->Location.ExtensionIsAmbiguous())
|
// If a known extension is given or a known full path is given
|
||||||
|
// then trust that the current extension is sufficient to
|
||||||
|
// determine the language. This will fail only if the user
|
||||||
|
// specifies a full path to the source but leaves off the
|
||||||
|
// extension, which is kind of weird.
|
||||||
|
if(this->Location.ExtensionIsAmbiguous() &&
|
||||||
|
this->Location.DirectoryIsAmbiguous())
|
||||||
{
|
{
|
||||||
// Finalize the file location to get the extension and set the
|
// Finalize the file location to get the extension and set the
|
||||||
// language.
|
// language.
|
||||||
@ -185,16 +191,6 @@ bool cmSourceFile::FindFullPath()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the user provided a full path, trust it. If the file is not
|
|
||||||
// there the native tool will complain at build time.
|
|
||||||
if(!this->Location.DirectoryIsAmbiguous())
|
|
||||||
{
|
|
||||||
this->FullPath = this->Location.GetDirectory();
|
|
||||||
this->FullPath += "/";
|
|
||||||
this->FullPath += this->Location.GetName();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmOStringStream e;
|
cmOStringStream e;
|
||||||
e << "Cannot find source file \"" << this->Location.GetName() << "\"";
|
e << "Cannot find source file \"" << this->Location.GetName() << "\"";
|
||||||
e << ". Tried extensions";
|
e << ". Tried extensions";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user