From 43b10d3f08d71a03fd0229081cf1345165bd5367 Mon Sep 17 00:00:00 2001 From: Tyler Weaver Date: Wed, 1 Feb 2023 10:31:20 -0700 Subject: [PATCH] Fix overriding of package --- CMakeLists.txt | 74 ++++++++++++++++++++++++-------------------------- package.xml | 5 +--- 2 files changed, 37 insertions(+), 42 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 537d764e..fda0ecb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,7 @@ -cmake_minimum_required(VERSION 3.5) -project(control_toolbox) +cmake_minimum_required(VERSION 3.16) +project(control_toolbox LANGUAGES CXX) -# Default to C++14 -if(NOT CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 14) -endif() - -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)") add_compile_options(-Wall -Wextra -Wpedantic) endif() @@ -18,26 +13,33 @@ if(WIN32) ) endif() +set(THIS_PACKAGE_INCLUDE_DEPENDS + control_msgs + rclcpp + rcutils + realtime_tools +) + find_package(ament_cmake REQUIRED) -find_package(control_msgs REQUIRED) -find_package(rclcpp REQUIRED) -find_package(rcutils REQUIRED) -find_package(realtime_tools REQUIRED) +foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS}) + find_package(${Dependency} REQUIRED) +endforeach() -add_library(${PROJECT_NAME} SHARED +add_library(control_toolbox SHARED src/dither.cpp src/limited_proxy.cpp src/pid_ros.cpp src/pid.cpp src/sine_sweep.cpp - src/sinusoid.cpp) -target_include_directories(${PROJECT_NAME} PUBLIC include) -target_compile_definitions(${PROJECT_NAME} PRIVATE "CONTROL_TOOLBOX_BUILDING_LIBRARY") -ament_target_dependencies(${PROJECT_NAME} - control_msgs - rclcpp - rcutils - realtime_tools) + src/sinusoid.cpp +) +target_compile_features(control_toolbox PUBLIC cxx_std_17) +target_include_directories(control_toolbox PUBLIC + $ + $ +) +ament_target_dependencies(control_toolbox PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS}) +target_compile_definitions(control_toolbox PRIVATE "CONTROL_TOOLBOX_BUILDING_LIBRARY") if(BUILD_TESTING) find_package(ament_cmake_gmock REQUIRED) @@ -45,31 +47,27 @@ if(BUILD_TESTING) find_package(rclcpp_lifecycle REQUIRED) ament_add_gmock(pid_tests test/pid_tests.cpp) - target_link_libraries(pid_tests ${PROJECT_NAME}) + target_link_libraries(pid_tests control_toolbox) ament_add_gtest(pid_parameters_tests test/pid_parameters_tests.cpp) - target_link_libraries(pid_parameters_tests ${PROJECT_NAME}) + target_link_libraries(pid_parameters_tests control_toolbox) ament_add_gtest(pid_publisher_tests test/pid_publisher_tests.cpp) - target_link_libraries(pid_publisher_tests ${PROJECT_NAME}) + target_link_libraries(pid_publisher_tests control_toolbox) ament_target_dependencies(pid_publisher_tests rclcpp_lifecycle) endif() -# Install -install(DIRECTORY include/ - DESTINATION include) - -install(TARGETS ${PROJECT_NAME} +install( + DIRECTORY include/ + DESTINATION include/control_toolbox +) +install(TARGETS control_toolbox + EXPORT export_control_toolbox ARCHIVE DESTINATION lib LIBRARY DESTINATION lib - RUNTIME DESTINATION bin) - -ament_export_dependencies( - control_msgs - rclcpp - rcutils - realtime_tools) -ament_export_include_directories(include) -ament_export_libraries(${PROJECT_NAME}) + RUNTIME DESTINATION bin +) +ament_export_targets(export_control_toolbox HAS_LIBRARY_TARGET) +ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS}) ament_package() diff --git a/package.xml b/package.xml index 3e972271..4bf4ee10 100644 --- a/package.xml +++ b/package.xml @@ -18,10 +18,7 @@ ament_cmake - control_msgs - - control_msgs - + control_msgs rclcpp rcutils realtime_tools