summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-14 18:39:20 (GMT)
committerBrad King <brad.king@kitware.com>2014-07-14 18:39:20 (GMT)
commit8a205b980c8dc088aa2c9f91adb90d57a65fa560 (patch)
tree5b631a4434a072c0939ddbf85c8f2444ffb8888b /Source
parentd57be904ae997e44ec9ac3b44722277f81936577 (diff)
downloadCMake-8a205b980c8dc088aa2c9f91adb90d57a65fa560.zip
CMake-8a205b980c8dc088aa2c9f91adb90d57a65fa560.tar.gz
CMake-8a205b980c8dc088aa2c9f91adb90d57a65fa560.tar.bz2
cmTarget: Compile old-style link dependencies only for VS 6
Compile all the "ForVS6" cmTarget members only on Windows. No other platforms support the VS 6 generator.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalGenerator.h2
-rw-r--r--Source/cmTarget.cxx8
-rw-r--r--Source/cmTarget.h13
3 files changed, 20 insertions, 3 deletions
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 160a8fb..5e6c03e 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -214,8 +214,10 @@ public:
*/
virtual void FindMakeProgram(cmMakefile*);
+#if defined(_WIN32) && !defined(__CYGWIN__)
/** Is this the Visual Studio 6 generator? */
virtual bool IsForVS6() const { return false; }
+#endif
///! Find a target by name by searching the local generators.
cmTarget* FindTarget(const std::string& name,
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 0d17dc2..aaae457 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -258,7 +258,9 @@ cmTarget::cmTarget()
#undef INITIALIZE_TARGET_POLICY_MEMBER
this->Makefile = 0;
+#if defined(_WIN32) && !defined(__CYGWIN__)
this->LinkLibrariesForVS6Analyzed = false;
+#endif
this->HaveInstallRule = false;
this->DLLPlatform = false;
this->IsApple = false;
@@ -517,11 +519,13 @@ void cmTarget::FinishConfigure()
// invalidation code in this source file is buggy.
this->ClearLinkMaps();
+#if defined(_WIN32) && !defined(__CYGWIN__)
// Do old-style link dependency analysis only for CM_USE_OLD_VS6.
if(this->Makefile->GetLocalGenerator()->GetGlobalGenerator()->IsForVS6())
{
this->AnalyzeLibDependenciesForVS6(*this->Makefile);
}
+#endif
}
//----------------------------------------------------------------------------
@@ -1335,7 +1339,9 @@ void cmTarget::AddLinkLibrary(cmMakefile& mf,
cmTarget::LibraryID tmp;
tmp.first = lib;
tmp.second = llt;
+#if defined(_WIN32) && !defined(__CYGWIN__)
this->LinkLibrariesForVS6.push_back( tmp );
+#endif
this->OriginalLinkLibraries.push_back(tmp);
this->ClearLinkMaps();
@@ -1401,6 +1407,7 @@ cmTarget::AddSystemIncludeDirectories(const std::vector<std::string> &incs)
}
}
+#if defined(_WIN32) && !defined(__CYGWIN__)
//----------------------------------------------------------------------------
void
cmTarget::AnalyzeLibDependenciesForVS6( const cmMakefile& mf )
@@ -1693,6 +1700,7 @@ void cmTarget::GatherDependenciesForVS6( const cmMakefile& mf,
this->DeleteDependencyForVS6( dep_map, lib, lib);
}
}
+#endif
//----------------------------------------------------------------------------
static bool whiteListedInterfaceProperty(const std::string& prop)
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index bd5417a..c2efb14 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -179,8 +179,6 @@ public:
typedef std::pair<std::string, LinkLibraryType> LibraryID;
typedef std::vector<LibraryID > LinkLibraryVectorType;
- const LinkLibraryVectorType &GetLinkLibrariesForVS6() const {
- return this->LinkLibrariesForVS6;}
const LinkLibraryVectorType &GetOriginalLinkLibraries() const
{return this->OriginalLinkLibraries;}
@@ -613,6 +611,11 @@ public:
return this->MaxLanguageStandards;
}
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ const LinkLibraryVectorType &GetLinkLibrariesForVS6() const {
+ return this->LinkLibrariesForVS6;}
+#endif
+
private:
bool HandleLocationPropertyPolicy(cmMakefile* context) const;
@@ -622,6 +625,7 @@ private:
std::vector<std::pair<TLLSignature, cmListFileBacktrace> > TLLCommands;
+#if defined(_WIN32) && !defined(__CYGWIN__)
/**
* A list of direct dependencies. Use in conjunction with DependencyMap.
*/
@@ -672,6 +676,7 @@ private:
DependencyMap& dep_map);
void AnalyzeLibDependenciesForVS6( const cmMakefile& mf );
+#endif
const char* GetSuffixVariableInternal(bool implib) const;
const char* GetPrefixVariableInternal(bool implib) const;
@@ -720,9 +725,11 @@ private:
std::vector<cmCustomCommand> PreLinkCommands;
std::vector<cmCustomCommand> PostBuildCommands;
TargetType TargetTypeValue;
- LinkLibraryVectorType LinkLibrariesForVS6;
LinkLibraryVectorType PrevLinkedLibraries;
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ LinkLibraryVectorType LinkLibrariesForVS6;
bool LinkLibrariesForVS6Analyzed;
+#endif
std::vector<std::string> LinkDirectories;
std::set<std::string> LinkDirectoriesEmmitted;
bool HaveInstallRule;