Skip to content

Nested include directories complicates header inclusion logic #964

@russkel

Description

@russkel

Bug report

As mentioned by @pablogs9 originally in #959 (comment) the added PROJECT_NAME to include paths complicates other build logic that doesn't rely on cmake files.

Required Info:

  • Operating System:
    • Ubuntu 21.10
  • Installation type:
    • From source using rosinstall
  • Version or commit hash:
    • version: release/rolling/rcl/5.1.0-1

Steps to reproduce issue

sudo apt install python3-rosinstall-generator
rosinstall_generator ros_core --rosdistro rolling --deps > rolling-ros-core.rosinstall
vcs import src < rolling-ros-core.rosinstall
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"
colcon build --merge-install
cd install

Expected behavior

Non-nested rcl directory, i.e. include/rcl/context.h etc

Actual behavior

$ russ @ xxx in ~/work/ros2_rolling/install [0:12:02]
↳ find include | grep rcl/
include/rcl/rcl
include/rcl/rcl/context.h
include/rcl/rcl/event_callback.h
include/rcl/rcl/service.h
include/rcl/rcl/domain_id.h
include/rcl/rcl/log_level.h
include/rcl/rcl/subscription.h
include/rcl/rcl/validate_enclave_name.h
include/rcl/rcl/allocator.h
include/rcl/rcl/arguments.h
include/rcl/rcl/client.h
include/rcl/rcl/rmw_implementation_identifier_check.h
include/rcl/rcl/publisher.h
include/rcl/rcl/remap.h
include/rcl/rcl/macros.h
include/rcl/rcl/logging_rosout.h
include/rcl/rcl/init_options.h
include/rcl/rcl/init.h
include/rcl/rcl/wait.h
include/rcl/rcl/expand_topic_name.h
include/rcl/rcl/rcl.h
include/rcl/rcl/types.h
include/rcl/rcl/guard_condition.h
include/rcl/rcl/network_flow_endpoints.h
include/rcl/rcl/lexer.h
include/rcl/rcl/visibility_control.h
include/rcl/rcl/timer.h
include/rcl/rcl/lexer_lookahead.h
include/rcl/rcl/validate_topic_name.h
include/rcl/rcl/security.h
include/rcl/rcl/event.h
include/rcl/rcl/graph.h
include/rcl/rcl/logging.h
include/rcl/rcl/node_options.h
include/rcl/rcl/time.h
include/rcl/rcl/localhost.h
include/rcl/rcl/node.h
include/rcl/rcl/error_handling.h

The above shows a nested rcl directory.

Additional information


Feature request

Feature description

Implementation considerations

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions