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.
This commit is contained in:
parent
d57be904ae
commit
8a205b980c
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue