Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install includes to include/${PROJECT_NAME} #184

Merged
merged 1 commit into from
Dec 13, 2021

Conversation

sloretz
Copy link
Contributor

@sloretz sloretz commented Dec 7, 2021

Part of ros2/ros2#1150
Part of ament/ament_cmake#365

This installs includes to another package specific include prefix. This avoids include directory search order issues that can happen when overriding packages in a merged underlay workspace.

I also made it export a modern CMake target instead of old style CMake variables.

@sloretz sloretz self-assigned this Dec 7, 2021
@sloretz
Copy link
Contributor Author

sloretz commented Dec 7, 2021

CI (build: --packages-above-and-dependencies robot_state_publisher test: --packages-select robot_state_publisher)

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@sloretz
Copy link
Contributor Author

sloretz commented Dec 7, 2021

Not sure what the cause of windows CI failing is. I'll come back and investigate

13:18:41 component_container_isolated.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl rclcpp_components::ComponentManagerIsolated<class rclcpp::executors::MultiThreadedExecutor>::add_node_to_executor(unsigned __int64)" (?add_node_to_executor@?$ComponentManagerIsolated@VMultiThreadedExecutor@executors@rclcpp@@@rclcpp_components@@MEAAX_K@Z) [C:\ci\ws\build\rclcpp_components\component_container_isolated.vcxproj]

13:18:41 component_container_isolated.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl rclcpp_components::ComponentManagerIsolated<class rclcpp::executors::SingleThreadedExecutor>::add_node_to_executor(unsigned __int64)" (?add_node_to_executor@?$ComponentManagerIsolated@VSingleThreadedExecutor@executors@rclcpp@@@rclcpp_components@@MEAAX_K@Z) [C:\ci\ws\build\rclcpp_components\component_container_isolated.vcxproj]

13:18:41 component_container_isolated.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl rclcpp_components::ComponentManagerIsolated<class rclcpp::executors::MultiThreadedExecutor>::remove_node_from_executor(unsigned __int64)" (?remove_node_from_executor@?$ComponentManagerIsolated@VMultiThreadedExecutor@executors@rclcpp@@@rclcpp_components@@MEAAX_K@Z) [C:\ci\ws\build\rclcpp_components\component_container_isolated.vcxproj]

13:18:41 component_container_isolated.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl rclcpp_components::ComponentManagerIsolated<class rclcpp::executors::SingleThreadedExecutor>::remove_node_from_executor(unsigned __int64)" (?remove_node_from_executor@?$ComponentManagerIsolated@VSingleThreadedExecutor@executors@rclcpp@@@rclcpp_components@@MEAAX_K@Z) [C:\ci\ws\build\rclcpp_components\component_container_isolated.vcxproj]

13:18:41 C:\ci\ws\build\rclcpp_components\Release\component_container_isolated.exe : fatal error LNK1120: 4 unresolved externals [C:\ci\ws\build\rclcpp_components\component_container_isolated.vcxproj]

@clalancette
Copy link
Contributor

Windows failures aside, I'm good with the general idea of this. Though I would like to see a bunch of these types of PRs get merged at the same time, so I'd want to see more of the packages listed in ros2/ros2#1150 (comment) done before merging this.

@sloretz
Copy link
Contributor Author

sloretz commented Dec 10, 2021

Though I would like to see a bunch of these types of PRs get merged at the same time

I would recommend trialing this on a small number of packages and releasing them to Rolling first. That would give early warning if there's a problem without having to work on and then revert a bunch of PRs

@clalancette
Copy link
Contributor

I would recommend trialing this on a small number of packages and releasing them to Rolling first. That would give early warning if there's a problem without having to work on and then revert a bunch of PRs

All right, that's fair enough.

By the way, the failing Windows build may have been unrelated to this PR and may have been fixed by ros2/rclcpp#1843 . So I'd recommend kicking it off again.

@sloretz
Copy link
Contributor Author

sloretz commented Dec 10, 2021

Windows CI re-run Build Status

@sloretz sloretz merged commit ff29b5c into ros2 Dec 13, 2021
@sloretz sloretz deleted the robot_state_publisher__prefix_includ_dir branch December 13, 2021 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants