diff -up ./CMakeLists.txt.tinyxml ./CMakeLists.txt --- ./CMakeLists.txt.tinyxml 2013-05-01 20:33:42.000000000 -0400 +++ ./CMakeLists.txt 2013-08-25 09:33:23.655987113 -0400 @@ -6,7 +6,7 @@ catkin_project(rospack LIBRARIES rospack INCLUDE_DIRS include ) - +include(FindPkgConfig) # BUILD_SHARED_LIBS is a global cmake variable (usually defaults to on) that determines # the build type of libraries: # http://www.cmake.org/cmake/help/cmake-2-8-docs.html#variable:BUILD_SHARED_LIBS @@ -31,16 +31,18 @@ if(NOT Boost_FOUND) message(FATAL_ERROR "Couldn't find Boost") endif() +find_library(TINYXML_LIBRARY NAMES tinyxml) +if (NOT TINYXML_LIBRARY) + message(FATAL_ERROR "Couldn't find tinyxml") +endif() + include_directories(include ${PROJECT_SOURCE_DIR} ${Boost_INCLUDE_DIRS}) add_definitions(-DTIXML_USE_STL) add_library(rospack src/rospack.cpp ${backcompat_source} - src/utils.cpp src/rospack_cmdline.cpp - tinyxml-2.5.3/tinyxml.cpp - tinyxml-2.5.3/tinyxmlparser.cpp - tinyxml-2.5.3/tinyxmlerror.cpp) + src/utils.cpp src/rospack_cmdline.cpp) -target_link_libraries(rospack ${Boost_LIBRARIES}) +target_link_libraries(rospack ${Boost_LIBRARIES} ${TINYXML_LIBRARY}) add_executable(rospackexe src/rospack_main.cpp) # Set the name, and make it a "global" executable set_target_properties(rospackexe @@ -55,8 +57,8 @@ set_target_properties(rosstackexe RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) install(TARGETS rospack rospackexe rosstackexe - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib${LIB_SUFFIX} + LIBRARY DESTINATION lib${LIB_SUFFIX} RUNTIME DESTINATION bin) install(DIRECTORY include/ DESTINATION include diff -up ./src/rospack.cpp.tinyxml ./src/rospack.cpp --- ./src/rospack.cpp.tinyxml 2013-05-01 20:33:42.000000000 -0400 +++ ./src/rospack.cpp 2013-08-25 09:32:59.428212063 -0400 @@ -27,7 +27,7 @@ #include "rospack/rospack.h" #include "utils.h" -#include "tinyxml-2.5.3/tinyxml.h" +#include "tinyxml.h" #include <boost/filesystem.hpp> #include <boost/algorithm/string.hpp> @@ -87,7 +87,7 @@ static const int MAX_CRAWL_DEPTH = 1000; static const int MAX_DEPENDENCY_DEPTH = 1000; static const double DEFAULT_MAX_CACHE_AGE = 60.0; -rospack_tinyxml::TiXmlElement* get_manifest_root(Stackage* stackage); +TiXmlElement* get_manifest_root(Stackage* stackage); double time_since_epoch(); #ifdef __APPLE__ @@ -120,7 +120,7 @@ class Stackage // \brief have we already loaded the manifest? bool manifest_loaded_; // \brief TinyXML structure, filled in during parsing - rospack_tinyxml::TiXmlDocument manifest_; + TiXmlDocument manifest_; std::vector<Stackage*> deps_; bool deps_computed_; @@ -627,8 +627,8 @@ Rosstackage::rosdeps(const std::string& it != deps_vec.end(); ++it) { - rospack_tinyxml::TiXmlElement* root = get_manifest_root(*it); - for(rospack_tinyxml::TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_ROSDEP); + TiXmlElement* root = get_manifest_root(*it); + for(TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_ROSDEP); ele; ele = ele->NextSiblingElement(MANIFEST_TAG_ROSDEP)) { @@ -667,8 +667,8 @@ Rosstackage::vcs(const std::string& name it != deps_vec.end(); ++it) { - rospack_tinyxml::TiXmlElement* root = get_manifest_root(*it); - for(rospack_tinyxml::TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_VERSIONCONTROL); + TiXmlElement* root = get_manifest_root(*it); + for(TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_VERSIONCONTROL); ele; ele = ele->NextSiblingElement(MANIFEST_TAG_VERSIONCONTROL)) { @@ -715,14 +715,14 @@ Rosstackage::exports(const std::string& it != deps_vec.end(); ++it) { - rospack_tinyxml::TiXmlElement* root = get_manifest_root(*it); - for(rospack_tinyxml::TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_EXPORT); + TiXmlElement* root = get_manifest_root(*it); + for(TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_EXPORT); ele; ele = ele->NextSiblingElement(MANIFEST_TAG_EXPORT)) { bool os_match = false; const char *best_match = NULL; - for(rospack_tinyxml::TiXmlElement* ele2 = ele->FirstChildElement(lang); + for(TiXmlElement* ele2 = ele->FirstChildElement(lang); ele2; ele2 = ele2->NextSiblingElement(lang)) { @@ -829,12 +829,12 @@ Rosstackage::plugins(const std::string& it != stackages.end(); ++it) { - rospack_tinyxml::TiXmlElement* root = get_manifest_root(*it); - for(rospack_tinyxml::TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_EXPORT); + TiXmlElement* root = get_manifest_root(*it); + for(TiXmlElement* ele = root->FirstChildElement(MANIFEST_TAG_EXPORT); ele; ele = ele->NextSiblingElement(MANIFEST_TAG_EXPORT)) { - for(rospack_tinyxml::TiXmlElement* ele2 = ele->FirstChildElement(name); + for(TiXmlElement* ele2 = ele->FirstChildElement(name); ele2; ele2 = ele2->NextSiblingElement(name)) { @@ -1230,7 +1230,7 @@ Rosstackage::computeDeps(Stackage* stack stackage->deps_computed_ = true; - rospack_tinyxml::TiXmlElement* root; + TiXmlElement* root; try { loadManifest(stackage); @@ -1243,10 +1243,10 @@ Rosstackage::computeDeps(Stackage* stack else throw e; } - rospack_tinyxml::TiXmlNode *dep_node = NULL; + TiXmlNode *dep_node = NULL; while((dep_node = root->IterateChildren("depend", dep_node))) { - rospack_tinyxml::TiXmlElement *dep_ele = dep_node->ToElement(); + TiXmlElement *dep_ele = dep_node->ToElement(); const char* dep_pkgname = dep_ele->Attribute(tag_.c_str()); if(!dep_pkgname) { @@ -1765,10 +1765,10 @@ Rosstack::usage() " is used (if it contains a stack.xml).\n\n"; } -rospack_tinyxml::TiXmlElement* +TiXmlElement* get_manifest_root(Stackage* stackage) { - rospack_tinyxml::TiXmlElement* ele = stackage->manifest_.RootElement(); + TiXmlElement* ele = stackage->manifest_.RootElement(); if(!ele) { std::string errmsg = std::string("error parsing manifest of package ") +