Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions rclcpp/src/rclcpp/typesupport_helpers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,27 +123,27 @@ std::string get_typesupport_library_path(
{
const char * dynamic_library_folder;
#ifdef _WIN32
dynamic_library_folder = "/bin/";
dynamic_library_folder = "bin";
#elif __APPLE__
dynamic_library_folder = "/lib/";
dynamic_library_folder = "lib";
#else
dynamic_library_folder = "/lib/";
dynamic_library_folder = "lib";
#endif

std::string package_prefix;
std::filesystem::path package_prefix;
try {
package_prefix = ament_index_cpp::get_package_prefix(package_name);
ament_index_cpp::get_package_prefix(package_name, package_prefix);
} catch (ament_index_cpp::PackageNotFoundError & e) {
throw std::runtime_error(e.what());
}

const std::string library_path = rcpputils::path_for_library(
package_prefix + dynamic_library_folder,
(package_prefix / dynamic_library_folder).string(),
package_name + "__" + typesupport_identifier);
if (library_path.empty()) {
throw std::runtime_error(
"Typesupport library for " + package_name + " does not exist in '" + package_prefix +
"'.");
"Typesupport library for " + package_name + " does not exist in '" +
package_prefix.string() + "'.");
}
return library_path;
}
Expand Down
12 changes: 4 additions & 8 deletions rclcpp_components/src/component_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,17 +93,13 @@ std::vector<ComponentManager::ComponentResource>
ComponentManager::get_component_resources(
const std::string & package_name, const std::string & resource_index) const
{
std::string content;
std::string base_path;
if (
!ament_index_cpp::get_resource(
resource_index, package_name, content, &base_path))
{
auto result = ament_index_cpp::get_resource(resource_index, package_name);
if (result.resourcePath == std::nullopt) {
throw ComponentManagerException("Could not find requested resource in ament index");
}

std::vector<ComponentResource> resources;
std::vector<std::string> lines = rcpputils::split(content, '\n', true);
std::vector<std::string> lines = rcpputils::split(result.contents, '\n', true);
for (const auto & line : lines) {
std::vector<std::string> parts = rcpputils::split(line, ';');
if (parts.size() != 2) {
Expand All @@ -112,7 +108,7 @@ ComponentManager::get_component_resources(

std::filesystem::path library_path = parts[1];
if (!library_path.is_absolute()) {
library_path = (base_path / library_path);
library_path = (result.resourcePath.value() / library_path);
}
resources.push_back({parts[0], library_path.string()});
}
Expand Down