From 43669f0ef279a88816e8b9053beed6e9ee772ab5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 3 Jul 2009 10:33:49 -0400 Subject: [PATCH] BUG: Avoid cmTarget::GetDirectory for utilities Since utility targets have no main output files like executables or libraries, they do not define an output directory. This removes a call to cmTarget::GetDirectory from cmLocalVisualStudio{6,7}Generator for such targets. --- Source/cmLocalVisualStudio6Generator.cxx | 16 +++++++++------- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Templates/UtilityHeader.dsptemplate | 4 ---- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx index bcd908e4b..faf679262 100644 --- a/Source/cmLocalVisualStudio6Generator.cxx +++ b/Source/cmLocalVisualStudio6Generator.cxx @@ -882,9 +882,6 @@ void cmLocalVisualStudio6Generator const char *libName, cmTarget &target, std::vector &) { - // Lookup the output directory for the target. - std::string outPath = target.GetDirectory(); - bool targetBuilds = (target.GetType() >= cmTarget::EXECUTABLE && target.GetType() <= cmTarget::MODULE_LIBRARY); #ifdef CM_USE_OLD_VS6 @@ -1415,10 +1412,15 @@ void cmLocalVisualStudio6Generator removeQuotes(this->ConvertToOptionallyRelativeOutputPath (exePath.c_str())).c_str()); #endif - cmSystemTools::ReplaceString - (line, "OUTPUT_DIRECTORY", - removeQuotes(this->ConvertToOptionallyRelativeOutputPath - (outPath.c_str())).c_str()); + + if(targetBuilds) + { + std::string outPath = target.GetDirectory(); + cmSystemTools::ReplaceString + (line, "OUTPUT_DIRECTORY", + removeQuotes(this->ConvertToOptionallyRelativeOutputPath + (outPath.c_str())).c_str()); + } cmSystemTools::ReplaceString(line, "EXTRA_DEFINES", diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 397c02f7d..f0096576a 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -864,7 +864,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout, // end of Version >= 8 ) + if(targetBuilds && this->Version >= 8) { // Check the filesystem type where the target will be written. if(cmLVS6G_IsFAT(target.GetDirectory(configName).c_str())) diff --git a/Templates/UtilityHeader.dsptemplate b/Templates/UtilityHeader.dsptemplate index 4ad57d551..509f597f1 100644 --- a/Templates/UtilityHeader.dsptemplate +++ b/Templates/UtilityHeader.dsptemplate @@ -38,7 +38,6 @@ MTL=midl.exe # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "OUTPUT_DIRECTORY\Release" # PROP Intermediate_Dir "Release" # PROP Target_Dir "" @@ -53,7 +52,6 @@ CMAKE_CUSTOM_RULE_CODE_RELEASE # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 -# PROP Output_Dir "OUTPUT_DIRECTORY\Debug" # PROP Intermediate_Dir "Debug" # PROP Target_Dir "" @@ -68,7 +66,6 @@ CMAKE_CUSTOM_RULE_CODE_DEBUG # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "OUTPUT_DIRECTORY\MinSizeRel" # PROP Intermediate_Dir "MinSizeRel" # PROP Target_Dir "" @@ -83,7 +80,6 @@ CMAKE_CUSTOM_RULE_CODE_MINSIZEREL # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "OUTPUT_DIRECTORY\RelWithDebInfo" # PROP Intermediate_Dir "RelWithDebInfo" # PROP Target_Dir ""