summaryrefslogtreecommitdiff
blob: 6737f7666df18d57f6c0c831e74364950fb91924 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Find package.xml in ros_packages/package_name too as we moved it here.

Index: pluginlib-1.10.4/include/pluginlib/class_loader_imp.h
===================================================================
--- pluginlib-1.10.4.orig/include/pluginlib/class_loader_imp.h
+++ pluginlib-1.10.4/include/pluginlib/class_loader_imp.h
@@ -444,6 +444,7 @@ namespace pluginlib
     std::string package_name;
     boost::filesystem::path p(plugin_xml_file_path);
     boost::filesystem::path parent = p.parent_path();
+    boost::filesystem::path basename = p.filename();
 
     //Figure out exactly which package the passed XML file is exported by.
     while (true)
@@ -453,6 +454,11 @@ namespace pluginlib
         std::string package_file_path = (boost::filesystem::path(parent / "package.xml")).string();
         return(extractPackageNameFromPackageXML(package_file_path));
       }
+      else if(boost::filesystem::exists(parent / "ros_packages" / basename / "package.xml"))
+      {
+        std::string package_file_path = (boost::filesystem::path(parent / "ros_packages" / basename / "package.xml")).string();
+        return(extractPackageNameFromPackageXML(package_file_path));
+      }
       else if (boost::filesystem::exists(parent / "manifest.xml"))
       {
 #if BOOST_FILESYSTEM_VERSION >= 3
@@ -470,6 +476,7 @@ namespace pluginlib
       }
 
       //Recursive case - hop one folder up
+      basename = parent.filename();
       parent = parent.parent_path().string();
 
       //Base case - reached root and cannot find what we're looking for