diff --git a/tf2_bullet/CMakeLists.txt b/tf2_bullet/CMakeLists.txt index 693275c52..2c540744c 100644 --- a/tf2_bullet/CMakeLists.txt +++ b/tf2_bullet/CMakeLists.txt @@ -16,12 +16,19 @@ find_package(geometry_msgs REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) -if(WIN32) - set(BULLET_ROOT $ENV{ChocolateyInstall}/lib/bullet) -endif() -find_package(Bullet REQUIRED) +include(bullet-extras.cmake) + +add_library(tf2_bullet INTERFACE) +target_include_directories(tf2_bullet INTERFACE + "$" + "$") +target_link_libraries(tf2_bullet INTERFACE + tf2_bullet::Bullet + tf2::tf2 + ${geometry_msgs_TARGETS} + tf2_ros::tf2_ros) -include_directories(include ${BULLET_INCLUDE_DIRS}) +install(TARGETS tf2_bullet EXPORT export_tf2_bullet) install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION include/${PROJECT_NAME} @@ -38,12 +45,9 @@ if(BUILD_TESTING) find_package(ament_cmake_gtest REQUIRED) ament_add_gtest(test_bullet test/test_tf2_bullet.cpp) - ament_target_dependencies(test_bullet - tf2 - geometry_msgs - tf2_ros - ) + target_link_libraries(test_bullet tf2_bullet) endif() -ament_export_include_directories(include) +ament_export_targets(export_tf2_bullet) + ament_package(CONFIG_EXTRAS bullet-extras.cmake) diff --git a/tf2_bullet/bullet-extras.cmake b/tf2_bullet/bullet-extras.cmake index 88adb23c2..03c77e30c 100644 --- a/tf2_bullet/bullet-extras.cmake +++ b/tf2_bullet/bullet-extras.cmake @@ -26,9 +26,15 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +# Bullet CMake only exports old-style CMake variables. +# This script makes an imported target for them. + if(WIN32) set(BULLET_ROOT $ENV{ChocolateyInstall}/lib/bullet) endif() find_package(Bullet REQUIRED) -include_directories(SYSTEM ${BULLET_INCLUDE_DIRS}) +add_library(tf2_bullet::Bullet INTERFACE IMPORTED) +target_include_directories(tf2_bullet::Bullet INTERFACE ${BULLET_INCLUDE_DIRS}) +target_link_libraries(tf2_bullet::Bullet INTERFACE ${BULLET_LIBRARIES}) +target_compile_definitions(tf2_bullet::Bullet INTERFACE ${BULLET_DEFINITIONS})