mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-13 12:59:55 -05:00
ENH: Implement linking with paths to library files instead of -L and -l separation. See bug #3832
- This is purely an implementation improvement. No interface has changed.
- Create cmComputeLinkInformation class
- Move and re-implement logic from:
cmLocalGenerator::ComputeLinkInformation
cmOrderLinkDirectories
- Link libraries to targets with their full path (if it is known)
- Dirs specified with link_directories command still added with -L
- Make link type specific to library names without paths
(name libfoo.a without path becomes -Wl,-Bstatic -lfoo)
- Make directory ordering specific to a runtime path computation feature
(look for conflicting SONAMEs instead of library names)
- Implement proper rpath support on HP-UX and AIX.
This commit is contained in:
@@ -27,6 +27,7 @@ struct cmVS7FlagTable;
|
||||
|
||||
class cmLocalVisualStudio7GeneratorOptions;
|
||||
class cmLocalVisualStudio7GeneratorFCInfo;
|
||||
class cmLocalVisualStudio7GeneratorInternals;
|
||||
|
||||
/** \class cmLocalVisualStudio7Generator
|
||||
* \brief Write Visual Studio .NET project files.
|
||||
@@ -96,10 +97,8 @@ private:
|
||||
cmTarget &target, const char *libName);
|
||||
void OutputBuildTool(std::ostream& fout, const char* configName,
|
||||
cmTarget& t);
|
||||
void OutputLibraries(std::ostream& fout,
|
||||
std::vector<cmStdString> const& libs);
|
||||
void OutputLibraryDirectories(std::ostream& fout,
|
||||
std::vector<cmStdString> const& dirs);
|
||||
std::vector<std::string> const& dirs);
|
||||
void OutputModuleDefinitionFile(std::ostream& fout, cmTarget &target);
|
||||
void WriteProjectStart(std::ostream& fout, const char *libName,
|
||||
cmTarget &tgt, std::vector<cmSourceGroup> &sgs);
|
||||
@@ -120,11 +119,13 @@ private:
|
||||
virtual std::string GetTargetDirectory(cmTarget const&) const;
|
||||
|
||||
friend class cmLocalVisualStudio7GeneratorFCInfo;
|
||||
friend class cmLocalVisualStudio7GeneratorInternals;
|
||||
|
||||
cmVS7FlagTable const* ExtraFlagTable;
|
||||
std::string ModuleDefinitionFile;
|
||||
int Version;
|
||||
std::string PlatformName; // Win32 or x64
|
||||
cmLocalVisualStudio7GeneratorInternals* Internal;
|
||||
};
|
||||
|
||||
// This is a table mapping XML tag IDE names to command line options
|
||||
|
||||
Reference in New Issue
Block a user