diff options
Diffstat (limited to 'Source/cmOrderDirectories.cxx')
-rw-r--r-- | Source/cmOrderDirectories.cxx | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index 7bc5dd6..a0ff9c1 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -119,6 +119,15 @@ public: const char* soname): cmOrderDirectoriesConstraint(od, file), SOName(soname? soname : "") { + if(this->SOName.empty()) + { + // Try to guess the soname. + std::string soguess; + if(cmSystemTools::GuessLibrarySOName(file, soguess)) + { + this->SOName = soguess; + } + } } virtual void Report(std::ostream& e) @@ -164,7 +173,6 @@ bool cmOrderDirectoriesConstraintSOName::FindConflict(std::string const& dir) // Get the set of files that might conflict. Since we do not // know the soname just look at all files that start with the // file name. Usually the soname starts with the library name. - // TODO: Check if the library is a symlink and guess the soname. std::string base = this->FileName; std::set<cmStdString>::const_iterator first = files.lower_bound(base); ++base[base.size()-1]; |