diff --git a/Source/cmOrderLinkDirectories.cxx b/Source/cmOrderLinkDirectories.cxx index df466e1e8..5c98b82ef 100644 --- a/Source/cmOrderLinkDirectories.cxx +++ b/Source/cmOrderLinkDirectories.cxx @@ -4,6 +4,12 @@ +//------------------------------------------------------------------- +cmOrderLinkDirectories::cmOrderLinkDirectories() +{ + m_Debug = false; +} + //------------------------------------------------------------------- bool cmOrderLinkDirectories::LibraryInDirectory(const char* dir, const char* libIn) @@ -272,7 +278,11 @@ bool cmOrderLinkDirectories::DetermineLibraryPathOrder() } this->FindIndividualLibraryOrders(); m_SortedSearchPaths.clear(); - + if(m_Debug) + { + this->PrintMap("m_LibraryToDirectories", m_LibraryToDirectories); + this->PrintMap("m_DirectoryToAfterList", m_DirectoryToAfterList); + } this->OrderPaths(m_SortedSearchPaths); // now turn libfoo.a into foo and foo.a into foo // This will prepare the link items for -litem @@ -317,18 +327,18 @@ void cmOrderLinkDirectories::PrintMap(const char* name, std::map >& m) { - std::cerr << name << "\n"; + std::cout << name << "\n"; for(std::map >::iterator i = m.begin(); i != m.end(); ++i) { - std::cerr << i->first << ": "; + std::cout << i->first << ": "; for(std::vector::iterator l = i->second.begin(); l != i->second.end(); ++l) { - std::cerr << *l << " "; + std::cout << *l << " "; } - std::cerr << "\n"; + std::cout << "\n"; } } diff --git a/Source/cmOrderLinkDirectories.h b/Source/cmOrderLinkDirectories.h index 09441b97a..61e3823fe 100644 --- a/Source/cmOrderLinkDirectories.h +++ b/Source/cmOrderLinkDirectories.h @@ -47,6 +47,7 @@ class cmOrderLinkDirectories { public: + cmOrderLinkDirectories(); ///! set link information from the target void SetLinkInformation(const cmTarget&, cmTarget::LinkLibraryType, const char* targetLibrary); @@ -79,6 +80,11 @@ public: cmStdString Path; }; friend struct cmOrderLinkDirectoriesCompare; + void DebugOn() + { + m_Debug = true; + } + private: void CreateRegularExpressions(); void DetermineLibraryPathOrder(std::vector& searchPaths, @@ -119,7 +125,7 @@ private: cmsys::RegularExpression m_RemoveLibraryExtension; cmsys::RegularExpression m_ExtractBaseLibraryName; cmsys::RegularExpression m_ExtractBaseLibraryNameNoPrefix; - + bool m_Debug; }; #endif diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx index 3a9f15049..6c62da37b 100644 --- a/Tests/Complex/Executable/complex.cxx +++ b/Tests/Complex/Executable/complex.cxx @@ -52,6 +52,7 @@ bool TestLibraryOrder(bool shouldFail) std::vector sortedpaths; std::vector linkItems; cmOrderLinkDirectories orderLibs; + orderLibs.DebugOn(); orderLibs.AddLinkExtension(".so"); orderLibs.AddLinkExtension(".a"); orderLibs.SetLinkInformation(target, cmTarget::GENERAL, "A"); diff --git a/Tests/ComplexOneConfig/Executable/complex.cxx b/Tests/ComplexOneConfig/Executable/complex.cxx index 3a9f15049..6c62da37b 100644 --- a/Tests/ComplexOneConfig/Executable/complex.cxx +++ b/Tests/ComplexOneConfig/Executable/complex.cxx @@ -52,6 +52,7 @@ bool TestLibraryOrder(bool shouldFail) std::vector sortedpaths; std::vector linkItems; cmOrderLinkDirectories orderLibs; + orderLibs.DebugOn(); orderLibs.AddLinkExtension(".so"); orderLibs.AddLinkExtension(".a"); orderLibs.SetLinkInformation(target, cmTarget::GENERAL, "A"); diff --git a/Tests/ComplexRelativePaths/Executable/complex.cxx b/Tests/ComplexRelativePaths/Executable/complex.cxx index 3a9f15049..6c62da37b 100644 --- a/Tests/ComplexRelativePaths/Executable/complex.cxx +++ b/Tests/ComplexRelativePaths/Executable/complex.cxx @@ -52,6 +52,7 @@ bool TestLibraryOrder(bool shouldFail) std::vector sortedpaths; std::vector linkItems; cmOrderLinkDirectories orderLibs; + orderLibs.DebugOn(); orderLibs.AddLinkExtension(".so"); orderLibs.AddLinkExtension(".a"); orderLibs.SetLinkInformation(target, cmTarget::GENERAL, "A");