From 63c56ebb96b3433b4fa39ad07fb2e94351efa141 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Tue, 19 Nov 2019 15:26:18 +0100
Subject: [PATCH] [CMake] export target hpp-fcl

---
 CMakeLists.txt      |  6 +-----
 src/CMakeLists.txt  | 11 ++++++++++-
 test/CMakeLists.txt |  6 +-----
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9addae60..1176c987 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,7 @@ set(PROJECT_NAME hpp-fcl)
 set(PROJECT_DESCRIPTION
   "HPP fork of FCL -- The Flexible Collision Library"
   )
+SET(PROJECT_USE_CMAKE_EXPORT TRUE)
 
 include(cmake/eigen.cmake)
 include(cmake/boost.cmake)
@@ -73,16 +74,11 @@ search_for_boost()
 # Optional dependencies
 add_optional_dependency("octomap >= 1.6")
 if (OCTOMAP_FOUND)
-  link_directories(${OCTOMAP_LIBRARY_DIRS})
   SET(HPP_FCL_HAVE_OCTOMAP TRUE)
-  add_definitions (-DHPP_FCL_HAVE_OCTOMAP)
   string(REPLACE "." ";" VERSION_LIST ${OCTOMAP_VERSION})
   list(GET VERSION_LIST 0 OCTOMAP_MAJOR_VERSION)
   list(GET VERSION_LIST 1 OCTOMAP_MINOR_VERSION)
   list(GET VERSION_LIST 2 OCTOMAP_PATCH_VERSION)
-  add_definitions (-DOCTOMAP_MAJOR_VERSION=${OCTOMAP_MAJOR_VERSION}
-                   -DOCTOMAP_MINOR_VERSION=${OCTOMAP_MINOR_VERSION}
-                   -DOCTOMAP_PATCH_VERSION=${OCTOMAP_PATCH_VERSION})
   message(STATUS "FCL uses Octomap")
 else()
   SET(HPP_FCL_HAVE_OCTOMAP FALSE)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 498332f1..b5e534ce 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -105,6 +105,15 @@ else()
 endif()
 IF(OCTOMAP_FOUND)
   PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} octomap)
+  target_compile_definitions (${LIBRARY_NAME} PUBLIC
+    -DHPP_FCL_HAVE_OCTOMAP
+    -DOCTOMAP_MAJOR_VERSION=${OCTOMAP_MAJOR_VERSION}
+    -DOCTOMAP_MINOR_VERSION=${OCTOMAP_MINOR_VERSION}
+    -DOCTOMAP_PATCH_VERSION=${OCTOMAP_PATCH_VERSION})
 ENDIF(OCTOMAP_FOUND)
 
-install(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+target_include_directories(${LIBRARY_NAME} PUBLIC
+  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+install(TARGETS ${LIBRARY_NAME}
+  EXPORT ${TARGETS_EXPORT_NAME}
+  DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 11618f72..a3d487da 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -22,11 +22,7 @@ endmacro(add_fcl_test)
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
 add_library(utility STATIC utility.cpp)
-target_include_directories(utility SYSTEM PUBLIC
-  ${EIGEN3_INCLUDE_DIRS}
-  ${Boost_INCLUDE_DIRS}
-  $<$<BOOL:${HPP_FCL_HAVE_OCTOMAP}>:${OCTOMAP_INCLUDE_DIRS}>
-  )
+target_link_libraries(utility hpp-fcl)
 
 add_fcl_test(math math.cpp)
 
-- 
GitLab