ENH: Better linker search path computation.

- Use linker search path -L.. -lfoo for lib w/out soname
    when platform sets CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME
  - Rename cmOrderRuntimeDirectories to cmOrderDirectories
    and generalize it for both soname constraints and link
    library constraints
  - Use cmOrderDirectories to order -L directories based
    on all needed constraints
  - Avoid processing implicit link directories
  - For CMAKE_OLD_LINK_PATHS add constraints from libs
    producing them to produce old ordering
This commit is contained in:
Brad King
2008-02-21 11:41:11 -05:00
parent 9f2f456e7d
commit fd37a6ec3d
15 changed files with 847 additions and 507 deletions
+5
View File
@@ -281,6 +281,10 @@ public:
/** Get the soname of the target. Allowed only for a shared library. */
std::string GetSOName(const char* config);
/** Test for special case of a third-party shared library that has
no soname at all. */
bool IsImportedSharedLibWithoutSOName(const char* config);
/** Get the full path to the target according to the settings in its
makefile and the configuration type. */
std::string GetFullPath(const char* config=0, bool implib = false,
@@ -501,6 +505,7 @@ private:
// Cache import information from properties for each configuration.
struct ImportInfo
{
bool NoSOName;
std::string Location;
std::string SOName;
std::string ImportLibrary;