diff options
author | Brad King <brad.king@kitware.com> | 2006-07-11 15:41:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2006-07-11 15:41:38 (GMT) |
commit | 9bf5af6e32570195b06df594c1cb07f8c7a6a83e (patch) | |
tree | ad72b8722793ae974c26b9b2138547f3cab62aae /Source/cmLocalVisualStudio7Generator.cxx | |
parent | c05b8fb993a4e92fded0d735a66063bb8b265630 (diff) | |
download | CMake-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.cxx | 10 |
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 { |