From f40ac1096ba170e91e94f5cfcd8638cc7f8dc2f0 Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Fri, 25 Oct 2019 18:57:36 +0100 Subject: [PATCH 1/4] WIP: Add CMake config generation --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 713deab88..07af7465c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(PROJECT_NAME eigenpy) SET(PROJECT_DESCRIPTION "Bindings between Numpy and Eigen using Boost.Python") SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy") +SET(PROJECT_USE_CMAKE_EXPORT TRUE) # Check if the submodule cmake have been initialized IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake/base.cmake") @@ -140,6 +141,7 @@ TARGET_COMPILE_OPTIONS(${PROJECT_NAME} PRIVATE $<$:-bigobj TARGET_LINK_BOOST_PYTHON(${PROJECT_NAME}) PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME} eigen3) INSTALL(TARGETS ${PROJECT_NAME} + EXPORT ${TARGETS_EXPORT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) @@ -168,3 +170,5 @@ PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME}) PKG_CONFIG_APPEND_CFLAGS("-I${PYTHON_INCLUDE_DIRS}") PKG_CONFIG_APPEND_CFLAGS("-I${NUMPY_INCLUDE_DIRS}") PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS}) + +SETUP_PROJECT_PACKAGE_FINALIZE() From e5c6af8ec7c9b33fa07d980ba86313ed54e2c6e3 Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Mon, 4 Nov 2019 04:28:07 +0000 Subject: [PATCH 2/4] [cmake] Sync submodule --- cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake b/cmake index 9b9f18fc7..046c3be55 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 9b9f18fc79e2b4e85a95ed8080b9c1d2eea3db2c +Subproject commit 046c3be5553c4ea340eb672d0289627f0c07b1a4 From 6f0d3fc3bb7d36576011b916cd4b7310ac1354e9 Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Mon, 4 Nov 2019 04:38:17 +0000 Subject: [PATCH 3/4] Use Olivier's suggestions to export include directories --- CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 07af7465c..a15d12a96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,7 +66,7 @@ FIND_NUMPY() INCLUDE_DIRECTORIES(SYSTEM ${NUMPY_INCLUDE_DIRS}) # ---------------------------------------------------- -# --- DEPENDANCIES ----------------------------------- +# --- DEPENDENCIES ----------------------------------- # ---------------------------------------------------- ADD_REQUIRED_DEPENDENCY("eigen3 >= 3.0.5") @@ -142,6 +142,8 @@ TARGET_LINK_BOOST_PYTHON(${PROJECT_NAME}) PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME} eigen3) INSTALL(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} + PUBLIC_HEADER + INCLUDES DESTINATION ${CMAKE_INSTALL_PREFIX}/include LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) @@ -152,6 +154,7 @@ ADD_SOURCE_GROUP(${PROJECT_NAME}_SOURCES) INCLUDE(GenerateExportHeader) GENERATE_EXPORT_HEADER(${PROJECT_NAME} EXPORT_FILE_NAME eigenpy/${PROJECT_NAME}_export.h) TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} INTERFACE "$") +SET(PUBLIC_HEADER ${${PROJECT_NAME}_HEADERS}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigenpy/${PROJECT_NAME}_export.h From 7854c0fc8ae6646dfc5ba7a81567028d0a6ba8c4 Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Wed, 6 Nov 2019 14:36:33 +0000 Subject: [PATCH 4/4] Install eigenpyConfig.cmake for catkin backwards compatibility to fix MoveIt - MoveIt cannot make a new release right now with our bugfix due to people constraints - We cannot roll back due to project constraints - This adds a cmake config that internally uses the pkg-config. This will be replaced in the future with one with proper CMake targets --- CMakeLists.txt | 9 ++++++--- eigenpyConfig.cmake | 6 ++++++ 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 eigenpyConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index a15d12a96..b9777ec98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(PROJECT_NAME eigenpy) SET(PROJECT_DESCRIPTION "Bindings between Numpy and Eigen using Boost.Python") SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy") -SET(PROJECT_USE_CMAKE_EXPORT TRUE) # Check if the submodule cmake have been initialized IF(NOT EXISTS "${CMAKE_SOURCE_DIR}/cmake/base.cmake") @@ -159,6 +158,12 @@ SET(PUBLIC_HEADER ${${PROJECT_NAME}_HEADERS}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/eigenpy/${PROJECT_NAME}_export.h DESTINATION include/eigenpy) + +# This is a temporary work-around to fix MoveIt until jrl-cmakemodules +# can correctly create non-target CMake configs +install(FILES eigenpyConfig.cmake DESTINATION share/eigenpy/cmake) +install(FILES package.xml DESTINATION share/eigenpy) + # ---------------------------------------------------- # --- PYTHON LIBRARY --------------------------------- # ---------------------------------------------------- @@ -173,5 +178,3 @@ PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME}) PKG_CONFIG_APPEND_CFLAGS("-I${PYTHON_INCLUDE_DIRS}") PKG_CONFIG_APPEND_CFLAGS("-I${NUMPY_INCLUDE_DIRS}") PKG_CONFIG_APPEND_BOOST_LIBS(${BOOST_COMPONENTS}) - -SETUP_PROJECT_PACKAGE_FINALIZE() diff --git a/eigenpyConfig.cmake b/eigenpyConfig.cmake new file mode 100644 index 000000000..468431b5b --- /dev/null +++ b/eigenpyConfig.cmake @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 2.8.3) + +message(STATUS "Loading eigenpy from PkgConfig") + +find_package(PkgConfig) +pkg_check_modules(eigenpy REQUIRED eigenpy)