summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-07-11 15:41:38 (GMT)
committerBrad King <brad.king@kitware.com>2006-07-11 15:41:38 (GMT)
commit9bf5af6e32570195b06df594c1cb07f8c7a6a83e (patch)
treead72b8722793ae974c26b9b2138547f3cab62aae /Source/cmLocalVisualStudio7Generator.cxx
parentc05b8fb993a4e92fded0d735a66063bb8b265630 (diff)
downloadCMake-9bf5af6e32570195b06df594c1cb07f8c7a6a83e.zip
CMake-9bf5af6e32570195b06df594c1cb07f8c7a6a83e.tar.gz
CMake-9bf5af6e32570195b06df594c1cb07f8c7a6a83e.tar.bz2
ENH: Moved unique object file name computation from cmLocalUnixMakefileGenerator3 up to cmLocalGenerator for use by all generators. Created cmLocalVisualStudioGenerator as superclass for all VS generators. Implemented on-demand unique object file name computation for VS 7 generator to avoid slow compiles when all sources are in subdirectories.
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.cxx')
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx10
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index c755dfb..4466e8d 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1012,6 +1012,9 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
sourceGroup.AssignSource(*i);
}
+ // Compute which sources need unique object computation.
+ this->ComputeObjectNameRequirements(sourceGroups);
+
// open the project
this->WriteProjectStart(fout, libName, target, sourceGroups);
// write the configuration information
@@ -1064,12 +1067,9 @@ void cmLocalVisualStudio7Generator
const cmCustomCommand *command = (*sf)->GetCustomCommand();
std::string compileFlags;
std::string additionalDeps;
- objectName = (*sf)->GetSourceName();
- if(!(*sf)->GetPropertyAsBool("HEADER_FILE_ONLY" )
- && objectName.find("/") != objectName.npos)
+ if(this->NeedObjectName.find(*sf) != this->NeedObjectName.end())
{
- cmSystemTools::ReplaceString(objectName, "/", "_");
- objectName += ".obj";
+ objectName = this->GetObjectFileNameWithoutTarget(*(*sf));
}
else
{