ENH: allow multiple files with the same name in different subdirs
This commit is contained in:
parent
c80faed7f6
commit
69488e5bd2
@ -973,7 +973,8 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
|
|||||||
this->WriteVCProjFooter(fout);
|
this->WriteVCProjFooter(fout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget target, std::ostream &fout, const char *libName, std::vector<std::string> *configs)
|
void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget target,
|
||||||
|
std::ostream &fout, const char *libName, std::vector<std::string> *configs)
|
||||||
{
|
{
|
||||||
const std::vector<const cmSourceFile *> &sourceFiles =
|
const std::vector<const cmSourceFile *> &sourceFiles =
|
||||||
sg->GetSourceFiles();
|
sg->GetSourceFiles();
|
||||||
@ -991,6 +992,7 @@ void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Loop through each source in the source group.
|
// Loop through each source in the source group.
|
||||||
|
std::string sourceName;
|
||||||
for(std::vector<const cmSourceFile *>::const_iterator sf =
|
for(std::vector<const cmSourceFile *>::const_iterator sf =
|
||||||
sourceFiles.begin(); sf != sourceFiles.end(); ++sf)
|
sourceFiles.begin(); sf != sourceFiles.end(); ++sf)
|
||||||
{
|
{
|
||||||
@ -998,6 +1000,16 @@ void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
|
|||||||
const cmCustomCommand *command = (*sf)->GetCustomCommand();
|
const cmCustomCommand *command = (*sf)->GetCustomCommand();
|
||||||
std::string compileFlags;
|
std::string compileFlags;
|
||||||
std::string additionalDeps;
|
std::string additionalDeps;
|
||||||
|
sourceName = (*sf)->GetSourceName();
|
||||||
|
if(sourceName.find("/") != sourceName.npos)
|
||||||
|
{
|
||||||
|
cmSystemTools::ReplaceString(sourceName, "/", "_");
|
||||||
|
sourceName += ".obj";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sourceName = "";
|
||||||
|
}
|
||||||
|
|
||||||
// Add per-source flags.
|
// Add per-source flags.
|
||||||
const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS");
|
const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS");
|
||||||
@ -1049,7 +1061,7 @@ void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
|
|||||||
comment.c_str(), command->GetDepends(),
|
comment.c_str(), command->GetDepends(),
|
||||||
command->GetOutputs(), flags);
|
command->GetOutputs(), flags);
|
||||||
}
|
}
|
||||||
else if(compileFlags.size() || additionalDeps.length())
|
else if(compileFlags.size() || additionalDeps.length() || sourceName.size())
|
||||||
{
|
{
|
||||||
const char* aCompilerTool = "VCCLCompilerTool";
|
const char* aCompilerTool = "VCCLCompilerTool";
|
||||||
std::string ext = (*sf)->GetSourceExtension();
|
std::string ext = (*sf)->GetSourceExtension();
|
||||||
@ -1083,6 +1095,11 @@ void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
|
|||||||
fout << "\t\t\t\t\tAdditionalDependencies=\""
|
fout << "\t\t\t\t\tAdditionalDependencies=\""
|
||||||
<< additionalDeps.c_str() << "\"\n";
|
<< additionalDeps.c_str() << "\"\n";
|
||||||
}
|
}
|
||||||
|
if(sourceName.size())
|
||||||
|
{
|
||||||
|
fout << "\t\t\t\t\tObjectFile=\"$(IntDir)/"
|
||||||
|
<< sourceName.c_str() << "\"\n";
|
||||||
|
}
|
||||||
fout << "\t\t\t\t\t/>\n"
|
fout << "\t\t\t\t\t/>\n"
|
||||||
<< "\t\t\t\t</FileConfiguration>\n";
|
<< "\t\t\t\t</FileConfiguration>\n";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user