From b0b44b5060d2d7280d028012574f6c2a31279fd6 Mon Sep 17 00:00:00 2001
From: Olivier Stasse <ostasse@laas.fr>
Date: Sat, 9 Nov 2019 06:13:04 +0800
Subject: [PATCH] [cmake] Add target_include_directories.

---
 CMakeLists.txt | 42 ++++++++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 20 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7a145fc0..fd878c65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,30 +1,36 @@
 # Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
-
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
-
 SET(PROJECT_ORG stack-of-tasks)
 SET(PROJECT_NAME dynamic-graph)
 SET(PROJECT_DESCRIPTION "Dynamic graph library")
 SET(PROJECT_URL "http://github.com/${PROJECT_ORG}/${PROJECT_NAME}")
 SET(PROJECT_SUFFIX "-v3")
 
-
 # Export CMake Target
 SET(PROJECT_USE_CMAKE_EXPORT TRUE)
 # Make sure that every header is generated in dynamic-graph
 SET(CUSTOM_HEADER_DIR ${PROJECT_NAME})
 
 INCLUDE(cmake/base.cmake)
-PROJECT(${PROJECT_NAME} CXX)
 
+# Specify the project.
+cmake_policy(SET CMP0048 NEW)
+PROJECT(${PROJECT_NAME}
+  LANGUAGES
+  CXX
+  VERSION
+  ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
+  )
+
+
+# jrl-cmakemodules handling of usual modules
 INCLUDE(cmake/header.cmake)
 INCLUDE(cmake/boost.cmake)
 INCLUDE(cmake/pthread.cmake)
 add_project_dependency(Eigen3 REQUIRED NO_MODULE)
 
-SET(CUSTOM_HEADER_DIR "${PROJECT_NAME}")
-
+# Allows math in mathjax.
 SET(DOXYGEN_USE_MATHJAX YES)
 
 # Defines paths.
@@ -42,7 +48,7 @@ set(PACKAGE_EXTRA_MACROS
 
 # Specific to PKG module
 # FIXME: to be changed into lib/dynamic-graph
-# to avoid name collision when installing dynamic-graph in /usr.
+# to avoid name collision whenX installing dynamic-graph in /usr.
 SET(PLUGINDIR "${CMAKE_INSTALL_FULL_LIBDIR}/plugin")
 
 # Add extra keys to pkg-config file to export the location of the
@@ -57,9 +63,10 @@ SET(BOOST_COMPONENTS serialization system unit_test_framework thread)
 SEARCH_FOR_BOOST()
 SEARCH_FOR_PTHREAD()
 #SEARCH_FOR_EIGEN()
+#find_package(catkin
+#  REQUIRED COMPONENTS
+#  )
 
-# Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
-#
 
 ####################################
 ### Main Library
@@ -98,7 +105,7 @@ ADD_LIBRARY(${LIBRARY_NAME}
 
   src/command/value.cpp
   src/command/command.cpp
-  
+
   )
 
 SET(${PROJECT_NAME}_HEADERS
@@ -157,36 +164,31 @@ SET(PUBLIC_HEADER ${${PROJECT_NAME}_HEADERS})
 
 INSTALL(TARGETS ${PROJECT_NAME}
   EXPORT ${TARGETS_EXPORT_NAME}
-  PUBLIC_HEADER 
+  PUBLIC_HEADER
   INCLUDES DESTINATION include
-  LIBRARY DESTINATION  ${CMAKE_INSTALL_LIBDIR}
+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
   ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
   )
 
 # We need to include Eigen3 because the CMakeFile at 16.04 LTS
 # is not so modern.
 target_include_directories(${PROJECT_NAME}
-   PUBLIC
+  PUBLIC
+  $<BUILD_INTERFACE:${CMAKE_BUILD_DIR}/include>
    $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
    $<BUILD_INTERFACE:${EIGEN3_INCLUDE_DIR}>
-   INTERFACE
-   ${EIGEN3_INCLUDE_DIR}   
+   INTERFACE ${EIGEN3_INCLUDE_DIR}
    $<INSTALL_INTERFACE:include>
    )
 
 SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
 
-
 IF (UNIX)
   TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${CMAKE_DL_LIBS} pthread)
 ENDIF (UNIX)
 
 TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${Boost_LIBRARIES})
 
-#IF (UNIX AND NOT APPLE)
-#  TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${JRL_MAL_LDFLAGS_OTHER})
-#ENDIF (UNIX AND NOT APPLE)
-
 ####################################
 ### Plugins
 ####################################
-- 
GitLab