diff options
author | Brad King <brad.king@kitware.com> | 2014-07-14 18:39:20 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-14 18:39:20 (GMT) |
commit | 8a205b980c8dc088aa2c9f91adb90d57a65fa560 (patch) | |
tree | 5b631a4434a072c0939ddbf85c8f2444ffb8888b /Source | |
parent | d57be904ae997e44ec9ac3b44722277f81936577 (diff) | |
download | CMake-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.h | 2 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 8 | ||||
-rw-r--r-- | Source/cmTarget.h | 13 |
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; |