diff options
author | Brad King <brad.king@kitware.com> | 2009-06-03 19:08:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-06-03 19:08:30 (GMT) |
commit | d2b108150f5549e7012609bc4a48f34a1b963654 (patch) | |
tree | 53918a1bf02a8951bf20a5d830965883785e1a84 | |
parent | 1d3320f1268bc147d32368489c9ee5cc22047dec (diff) | |
download | CMake-d2b108150f5549e7012609bc4a48f34a1b963654.zip CMake-d2b108150f5549e7012609bc4a48f34a1b963654.tar.gz CMake-d2b108150f5549e7012609bc4a48f34a1b963654.tar.bz2 |
BUG: Recognize .so shared libraries on HP-UX
HP-UX uses both .sl and .so as extensions for shared libraries. This
teaches CMake to recognize .so shared libraries so they are treated
properly during link dependency analysis.
-rw-r--r-- | Modules/Platform/HP-UX.cmake | 1 | ||||
-rw-r--r-- | Source/cmComputeLinkInformation.cxx | 11 | ||||
-rw-r--r-- | Source/cmDocumentVariables.cxx | 9 |
3 files changed, 21 insertions, 0 deletions
diff --git a/Modules/Platform/HP-UX.cmake b/Modules/Platform/HP-UX.cmake index 381ef39..9191cef 100644 --- a/Modules/Platform/HP-UX.cmake +++ b/Modules/Platform/HP-UX.cmake @@ -1,6 +1,7 @@ SET(CMAKE_SHARED_LIBRARY_SUFFIX ".sl") # .so SET(CMAKE_DL_LIBS "dld") SET(CMAKE_FIND_LIBRARY_SUFFIXES ".sl" ".so" ".a") +SET(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".so") # The HP linker needs to find transitive shared library dependencies # in the -L path. Therefore the runtime path must be added to the diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 331e3fd..058a0d4 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -814,6 +814,17 @@ void cmComputeLinkInformation::ComputeItemParserInfo() this->AddLinkExtension(i->c_str(), LinkUnknown); } } + if(const char* sharedSuffixes = + mf->GetDefinition("CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES")) + { + std::vector<std::string> sharedSuffixVec; + cmSystemTools::ExpandListArgument(sharedSuffixes, sharedSuffixVec); + for(std::vector<std::string>::iterator i = sharedSuffixVec.begin(); + i != sharedSuffixVec.end(); ++i) + { + this->AddLinkExtension(i->c_str(), LinkShared); + } + } // Compute a regex to match link extensions. std::string libext = this->CreateExtensionRegex(this->LinkExtensions); diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index cf5337b..32c8d69 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -377,6 +377,15 @@ void cmDocumentVariables::DefineVariables(cmake* cm) "The suffix to use for the end of a static library, .lib on Windows.", false, "Variables that Provide Information"); + cm->DefineProperty + ("CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES", cmProperty::VARIABLE, + "Additional suffixes for shared libraries.", + "Extensions for shared libraries other than that specified by " + "CMAKE_SHARED_LIBRARY_SUFFIX, if any. " + "CMake uses this to recognize external shared library files during " + "analysis of libraries linked by a target.", + false, + "Variables that Provide Information"); // Variables defined by cmake, that change the behavior |