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 headers to include/${PROJECT_NAME} #30

Merged
merged 1 commit into from Feb 15, 2022

Conversation

sloretz
Copy link

@sloretz sloretz commented Feb 12, 2022

Marked as draft because a branch for Rolling is needed for this to be merged into. It looks like there's only a Foxy branch.

Part of ros2/ros2#1150 - this installs headers to a unique include directory to prevent include directory search order issues when overriding packages from a merged workspace.

Signed-off-by: Shane Loretz <sloretz@openrobotics.org>
@sloretz sloretz self-assigned this Feb 12, 2022
@clalancette
Copy link

I've now created the rolling branch on this repository, so I'll go ahead and retarget this.

@clalancette clalancette changed the base branch from foxy to rolling February 14, 2022 16:32
@sloretz sloretz marked this pull request as ready for review February 15, 2022 18:48
@sloretz
Copy link
Author

sloretz commented Feb 15, 2022

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

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

@sloretz
Copy link
Author

sloretz commented Feb 15, 2022

CI re-run, this time with a supplemental repos file

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

@sloretz
Copy link
Author

sloretz commented Feb 15, 2022

The windows CMake warning

CMake Warning (dev) at CMakeLists.txt:20 (add_library):
  Policy CMP0115 is not set: Source file extensions must be explicit.  Run
  "cmake --help-policy CMP0115" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  File:

    C:/ci/ws/src/ros2/teleop_twist_joy/src/teleop_twist_joy.cpp
and three code warnings
C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(38,1): warning C4275: non dll-interface class 'rclcpp::Node' used as base for dll-interface class 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

C:\ci\ws\install\include\rclcpp/node.hpp(77): message : see declaration of 'rclcpp::Node' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(37): message : see declaration of 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(47,44): warning C4251: 'teleop_twist_joy::TeleopTwistJoy::callback_handle': class 'std::shared_ptr<rclcpp::node_interfaces::OnSetParametersCallbackHandle>' needs to have dll-interface to be used by clients of class 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

C:\ci\ws\install\include\rclcpp/node_interfaces/node_parameters_interface.hpp(38): message : see declaration of 'std::shared_ptr<rclcpp::node_interfaces::OnSetParametersCallbackHandle>' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

C:\ci\ws\install\include\rclcpp/any_subscription_callback.hpp(397,7): warning C4996: 'rclcpp::AnySubscriptionCallback<MessageT,AllocatorT>::set_deprecated': use 'void(std::shared_ptr<const MessageT>)' instead [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              MessageT=sensor_msgs::msg::Joy,

              AllocatorT=std::allocator<void>

          ]

C:\ci\ws\install\include\rclcpp/subscription_factory.hpp(94): message : see reference to function template instantiation 'rclcpp::AnySubscriptionCallback<MessageT,AllocatorT> rclcpp::AnySubscriptionCallback<MessageT,AllocatorT>::set<_Ty>(CallbackT)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              MessageT=sensor_msgs::msg::Joy,

              AllocatorT=std::allocator<void>,

              _Ty=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>

          ]

C:\ci\ws\install\include\rclcpp/subscription_factory.hpp(94): message : see reference to function template instantiation 'rclcpp::AnySubscriptionCallback<MessageT,AllocatorT> rclcpp::AnySubscriptionCallback<MessageT,AllocatorT>::set<_Ty>(CallbackT)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              MessageT=sensor_msgs::msg::Joy,

              AllocatorT=std::allocator<void>,

              _Ty=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>

          ]

C:\ci\ws\install\include\rclcpp/create_subscription.hpp(127): message : see reference to function template instantiation 'rclcpp::SubscriptionFactory rclcpp::create_subscription_factory<MessageT,_Ty,std::allocator<void>,rclcpp::Subscription<MessageT,std::allocator<void>,sensor_msgs::msg::Joy_<std::allocator<void>>,sensor_msgs::msg::Joy_<std::allocator<void>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>,sensor_msgs::msg::Joy_<std::allocator<void>>>(CallbackT &&,const rclcpp::SubscriptionOptionsWithAllocator<std::allocator<void>> &,std::shared_ptr<rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>>,std::shared_ptr<rclcpp::topic_statistics::SubscriptionTopicStatistics<sensor_msgs::msg::Joy_<std::allocator<void>>>>)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              MessageT=sensor_msgs::msg::Joy,

              _Ty=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,

              AllocatorT=std::allocator<void>,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>

          ]

C:\ci\ws\install\include\rclcpp/create_subscription.hpp(192): message : see reference to function template instantiation 'std::shared_ptr<rclcpp::Subscription<sensor_msgs::msg::Joy,std::allocator<void>,sensor_msgs::msg::Joy_<std::allocator<void>>,sensor_msgs::msg::Joy_<std::allocator<void>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>> rclcpp::detail::create_subscription<MessageT,CallbackT,AllocatorT,SubscriptionT,MessageMemoryStrategyT,NodeT,NodeT,sensor_msgs::msg::Joy_<std::allocator<void>>>(NodeParametersT &,NodeTopicsT &,const std::string &,const rclcpp::QoS &,CallbackT &&,const rclcpp::SubscriptionOptionsWithAllocator<std::allocator<void>> &,std::shared_ptr<rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>>)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              ROSMessageT=sensor_msgs::msg::Joy_<std::allocator<void>>,

              AllocatorT=std::allocator<void>,

              MessageT=sensor_msgs::msg::Joy,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,

              SubscriptionT=rclcpp::Subscription<sensor_msgs::msg::Joy,std::allocator<void>,sensor_msgs::msg::Joy_<std::allocator<void>>,sensor_msgs::msg::Joy_<std::allocator<void>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<sensor_msgs::msg::Joy_<std::allocator<void>>,std::allocator<void>>>,

              MessageMemoryStrategyT=rclcpp::message_memory_strategy::MessageMemoryStrategy<sensor_msgs::msg::Joy_<std::allocator<void>>,std::allocator<void>>,

              NodeT=rclcpp::Node,

              NodeParametersT=rclcpp::Node,

              NodeTopicsT=rclcpp::Node

          ]

C:\ci\ws\install\include\rclcpp\node_impl.hpp(105): message : see reference to function template instantiation 'std::shared_ptr<rclcpp::Subscription<sensor_msgs::msg::Joy,std::allocator<void>,sensor_msgs::msg::Joy_<std::allocator<void>>,sensor_msgs::msg::Joy_<std::allocator<void>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>> rclcpp::create_subscription<MessageT,_Ty,std::allocator<void>,rclcpp::Subscription<MessageT,AllocatorT,sensor_msgs::msg::Joy_<std::allocator<void>>,ROSMessageT,rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>,rclcpp::Node>(NodeT &,const std::string &,const rclcpp::QoS &,CallbackT &&,const rclcpp::SubscriptionOptionsWithAllocator<std::allocator<void>> &,std::shared_ptr<rclcpp::message_memory_strategy::MessageMemoryStrategy<MessageT,AllocatorT>>)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              ROSMessageT=sensor_msgs::msg::Joy_<std::allocator<void>>,

              AllocatorT=std::allocator<void>,

              MessageT=sensor_msgs::msg::Joy,

              _Ty=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,

              NodeT=rclcpp::Node,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>

          ]

C:\ci\ws\src\ros2\teleop_twist_joy\src\teleop_twist_joy.cpp(81): message : see reference to function template instantiation 'std::shared_ptr<rclcpp::Subscription<sensor_msgs::msg::Joy,std::allocator<void>,sensor_msgs::msg::Joy_<std::allocator<void>>,sensor_msgs::msg::Joy_<std::allocator<void>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>> rclcpp::Node::create_subscription<sensor_msgs::msg::Joy,std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>,std::allocator<void>,rclcpp::Subscription<sensor_msgs::msg::Joy,AllocatorT,sensor_msgs::msg::Joy_<std::allocator<void>>,ROSMessageT,rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>,rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>(const std::string &,const rclcpp::QoS &,CallbackT &&,const rclcpp::SubscriptionOptionsWithAllocator<std::allocator<void>> &,std::shared_ptr<rclcpp::message_memory_strategy::MessageMemoryStrategy<ROSMessageT,AllocatorT>>)' being compiled [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy.vcxproj]

          with

          [

              ROSMessageT=sensor_msgs::msg::Joy_<std::allocator<void>>,

              AllocatorT=std::allocator<void>,

              CallbackT=std::_Binder<std::_Unforced,void (__cdecl teleop_twist_joy::TeleopTwistJoy::Impl::* )(std::shared_ptr<sensor_msgs::msg::Joy_<std::allocator<void>>>),teleop_twist_joy::TeleopTwistJoy::Impl *&,const std::_Ph<1> &>

          ]

     Creating library C:/ci/ws/build/teleop_twist_joy/Release/teleop_twist_joy.lib and object C:/ci/ws/build/teleop_twist_joy/Release/teleop_twist_joy.exp

  teleop_twist_joy.vcxproj -> C:\ci\ws\build\teleop_twist_joy\Release\teleop_twist_joy.dll

  Building Custom Rule C:/ci/ws/src/ros2/teleop_twist_joy/CMakeLists.txt

  teleop_node.cpp

C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(38,1): warning C4275: non dll-interface class 'rclcpp::Node' used as base for dll-interface class 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy_node.vcxproj]

C:\ci\ws\install\include\rclcpp/node.hpp(77): message : see declaration of 'rclcpp::Node' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy_node.vcxproj]

C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(37): message : see declaration of 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy_node.vcxproj]

C:\ci\ws\src\ros2\teleop_twist_joy\include\teleop_twist_joy/teleop_twist_joy.hpp(47,44): warning C4251: 'teleop_twist_joy::TeleopTwistJoy::callback_handle': class 'std::shared_ptr<rclcpp::node_interfaces::OnSetParametersCallbackHandle>' needs to have dll-interface to be used by clients of class 'teleop_twist_joy::TeleopTwistJoy' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy_node.vcxproj]

C:\ci\ws\install\include\rclcpp/node_interfaces/node_parameters_interface.hpp(38): message : see declaration of 'std::shared_ptr<rclcpp::node_interfaces::OnSetParametersCallbackHandle>' [C:\ci\ws\build\teleop_twist_joy\teleop_twist_joy_node.vcxproj]

are all unrelated to this PR. I think this is good to merge 🎉

@sloretz sloretz merged commit 4046168 into rolling Feb 15, 2022
@delete-merged-branch delete-merged-branch bot deleted the sloretz__teleop_twist_joy__include_project_name branch February 15, 2022 21:08
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.

None yet

2 participants