VS10: Load projects with obj "source" files (#11147)
WriteCLSources should skip source files with "obj" extensions since WriteObjSources has already written them into the vcxproj file. Likewise, WriteGroupSources should skip source files with "obj" extensions to avoid receiving "item ... already exists under the filter" project-load-time error messages from Visual Studio.
This commit is contained in:
parent
00a0929c04
commit
0cde56dda4
|
@ -598,6 +598,10 @@ WriteGroupSources(const char* name,
|
|||
s != sources.end(); ++s)
|
||||
{
|
||||
cmSourceFile* sf = *s;
|
||||
if(sf->GetExtension() == "obj")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
std::string const& source = sf->GetFullPath();
|
||||
cmSourceGroup& sourceGroup =
|
||||
this->Makefile->FindSourceGroup(source.c_str(), sourceGroups);
|
||||
|
@ -666,17 +670,19 @@ void cmVisualStudio10TargetGenerator::WriteCLSources()
|
|||
for(std::vector<cmSourceFile*>::const_iterator source = sources.begin();
|
||||
source != sources.end(); ++source)
|
||||
{
|
||||
// if it is not a custom command then add it as a c/c++ file,
|
||||
// TODO: need to check for idl or rc
|
||||
if(!(*source)->GetCustomCommand())
|
||||
std::string ext = (*source)->GetExtension();
|
||||
if((*source)->GetCustomCommand() || ext == "obj")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// If it is not a custom command and it is not a pre-built obj file,
|
||||
// then add it as a source (c/c++/header/rc/idl) file
|
||||
bool header = (*source)->GetPropertyAsBool("HEADER_FILE_ONLY")
|
||||
|| this->GlobalGenerator->IgnoreFile
|
||||
((*source)->GetExtension().c_str());
|
||||
|| this->GlobalGenerator->IgnoreFile(ext.c_str());
|
||||
const char* lang = (*source)->GetLanguage();
|
||||
bool cl = lang && (strcmp(lang, "C") == 0 || strcmp(lang, "CXX") ==0);
|
||||
bool rc = lang && (strcmp(lang, "RC") == 0);
|
||||
bool idl = (*source)->GetExtension() == "idl";
|
||||
bool idl = ext == "idl";
|
||||
std::string sourceFile = (*source)->GetFullPath();
|
||||
sourceFile = cmSystemTools::RelativePath(
|
||||
this->Makefile->GetCurrentOutputDirectory(),
|
||||
|
@ -716,7 +722,6 @@ void cmVisualStudio10TargetGenerator::WriteCLSources()
|
|||
(*this->BuildFileStream ) << " />\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
this->WriteString("</ItemGroup>\n", 1);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue