From a3be7185eceba5327a19c25012721cd8220262a1 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 10:00:17 +0100 Subject: [PATCH 01/11] cmake: remove useless LINK_DIRECTORIES --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 406cacaa2..b75ba7e07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,8 +105,6 @@ LIST(APPEND ${PROJECT_NAME}_HEADERS INCLUDE_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/include) INCLUDE_DIRECTORIES(${${PROJECT_NAME}_SOURCE_DIR}/include) -LINK_DIRECTORIES(${PYTHON_LIBRARY_DIRS}) - # ---------------------------------------------------- # --- TARGETS ---------------------------------------- # ---------------------------------------------------- From cf063849569b133cfb203edfb98b2de3e554a0f7 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 10:00:40 +0100 Subject: [PATCH 02/11] cmake: minor adjustement for export of the project --- CMakeLists.txt | 9 ++++++++- python/CMakeLists.txt | 14 +++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b75ba7e07..e68f29f40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,14 @@ SET(${PROJECT_NAME}_SOURCES ) ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) -TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS}) +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} + SYSTEM PUBLIC + ${Boost_INCLUDE_DIRS} + ${EIGEN3_INCLUDE_DIRS} + ${PYTHON_INCLUDE_DIRS} + ${NUMPY_INCLUDE_DIRS} + $) + IF(NOT WIN32) TARGET_COMPILE_OPTIONS(${PROJECT_NAME} PRIVATE $<$:-bigobj> "-Wno-conversion") ELSE() diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 977892f0d..56d3f6898 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -39,13 +39,13 @@ ELSE() SET(${PYWRAP}_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${PYTHON_SITELIB}/${PROJECT_NAME}) ENDIF() -SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES SUFFIX ${PYTHON_EXT_SUFFIX}) - -SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}") - -SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES PREFIX "") -SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") +SET_TARGET_PROPERTIES(${PYWRAP} + PROPERTIES + PREFIX "" + SUFFIX ${PYTHON_EXT_SUFFIX} + OUTPUT_NAME "${PROJECT_NAME}" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}" + ) INSTALL(TARGETS ${PYWRAP} DESTINATION ${${PYWRAP}_INSTALL_DIR}) From 16b247f042492f9ce4308b5890e0c8dd9fdbe8fc Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 10:09:58 +0100 Subject: [PATCH 03/11] cmake: remove useless INCLUDE_DIRECTORIES --- CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e68f29f40..0a03eb8ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,9 +102,6 @@ LIST(APPEND ${PROJECT_NAME}_HEADERS ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/deprecated.hpp ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/warning.hpp) -INCLUDE_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/include) -INCLUDE_DIRECTORIES(${${PROJECT_NAME}_SOURCE_DIR}/include) - # ---------------------------------------------------- # --- TARGETS ---------------------------------------- # ---------------------------------------------------- From 8ba32feef3eaea4be742da00bd04753e26797998 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 10:10:44 +0100 Subject: [PATCH 04/11] package: remove manual generation of eigenpyConfig.cmake --- CMakeLists.txt | 4 ---- eigenpyConfig.cmake | 14 -------------- 2 files changed, 18 deletions(-) delete mode 100644 eigenpyConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a03eb8ec..700d9217e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,10 +157,6 @@ 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 package for ROS install(FILES package.xml DESTINATION share/eigenpy) diff --git a/eigenpyConfig.cmake b/eigenpyConfig.cmake deleted file mode 100644 index d39ef7d88..000000000 --- a/eigenpyConfig.cmake +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 2.8.3) - -message(STATUS "Loading eigenpy from PkgConfig") - -find_package(PkgConfig REQUIRED) -pkg_check_modules(eigenpy REQUIRED eigenpy) - -# find absolute library paths for all eigenpy_LIBRARIES -set(libs ${eigenpy_LIBRARIES}) -set(eigenpy_LIBRARIES "") -foreach(lib ${libs}) - find_library(abs_lib_${lib} ${lib} HINTS ${eigenpy_LIBRARY_DIRS}) - list(APPEND eigenpy_LIBRARIES "${abs_lib_${lib}}") -endforeach() From 9cd4b7fed7a92c2f5a552a41dd25e8f88979de9d Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 19:09:51 +0100 Subject: [PATCH 05/11] cmake: add PROJECT_USE_KEYWORD_LINK_LIBRARIES --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 700d9217e..0a99ea37a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ 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) +SET(PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE) SET(PROJECT_CUSTOM_HEADER_EXTENSION "hpp") # Check if the submodule cmake have been initialized From db3ab8c35448b690d717de0ecf2f9baf2d47e9b7 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 19:42:53 +0100 Subject: [PATCH 06/11] test: add test of the CMake packaging --- unittest/cmake/CMakeLists.txt | 8 ++++++++ unittest/cmake/extra_lib.cpp | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 unittest/cmake/CMakeLists.txt create mode 100644 unittest/cmake/extra_lib.cpp diff --git a/unittest/cmake/CMakeLists.txt b/unittest/cmake/CMakeLists.txt new file mode 100644 index 000000000..ecbf5edcf --- /dev/null +++ b/unittest/cmake/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 2.6) + +project(ExtraLib CXX) +find_package(eigenpy REQUIRED) +find_package(PythonLibs REQUIRED) + +add_executable(extra_lib extra_lib.cpp) +target_link_libraries(extra_lib PUBLIC eigenpy::eigenpy ${PYTHON_LIBRARIES}) diff --git a/unittest/cmake/extra_lib.cpp b/unittest/cmake/extra_lib.cpp new file mode 100644 index 000000000..7e5a78bc4 --- /dev/null +++ b/unittest/cmake/extra_lib.cpp @@ -0,0 +1,8 @@ + +#include + +int main(int /*argc*/, char ** /*argv*/) +{ + eigenpy::checkVersionAtLeast(0,0,0); + return 0; +} From 7065950ee6daf882c0b88381479a6a618039805e Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 19:50:51 +0100 Subject: [PATCH 07/11] travis: test CMake export --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 897f9f7a9..48be3b1e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -54,8 +54,14 @@ before_install: ./.travis/run before_install install: pip install coveralls numpy script: - export CMAKE_ADDITIONAL_OPTIONS="-DCMAKE_BUILD_TYPE=${BUILDTYPE}" - - sudo free -m -t - - ls -l /usr/lib/x86_64-linux-gnu/libboost_python* - ./.travis/run ../travis_custom/custom_build + - cd $root_dir/unittest/cmake + - mkdir build + - cd build + - cmake .. + - make + - ./extra_lib + - cd $build_dir + - make uninstall after_failure: ./.travis/run after_failure after_success: ./.travis/run after_success From 2ab3292c387ae07bbe8dccaac0c52eed3e96eb71 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 19:51:00 +0100 Subject: [PATCH 08/11] cmake: sync submodule --- cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake b/cmake index 3d9ae6777..365af59c5 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 3d9ae677710fd6f86176e9031aa3fe40d8f656ce +Subproject commit 365af59c5162364263ac8d69860f5931fae11d93 From d52e5c724b51a5967411f50a353cb836e29f66c4 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 20:19:05 +0100 Subject: [PATCH 09/11] travis: fix path --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 48be3b1e7..e32dfc8be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,13 +55,13 @@ install: pip install coveralls numpy script: - export CMAKE_ADDITIONAL_OPTIONS="-DCMAKE_BUILD_TYPE=${BUILDTYPE}" - ./.travis/run ../travis_custom/custom_build - - cd $root_dir/unittest/cmake + - cd $TRAVIS_BUILD_DIR/unittest/cmake - mkdir build - cd build - cmake .. - make - ./extra_lib - - cd $build_dir + - cd /tmp/_ci/build - make uninstall after_failure: ./.travis/run after_failure after_success: ./.travis/run after_success From 6834076f119e61295f836acd61e96f6908930708 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 20:25:32 +0100 Subject: [PATCH 10/11] travis: set CMAKE_MODULE_PATH --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e32dfc8be..8806fee3e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,7 +58,8 @@ script: - cd $TRAVIS_BUILD_DIR/unittest/cmake - mkdir build - cd build - - cmake .. + - export CMAKE_PREFIX_PATH=/tmp/_ci/install + - cmake .. - make - ./extra_lib - cd /tmp/_ci/build From 17627d694c6f51f12288eb8bb101aaef105b6fa1 Mon Sep 17 00:00:00 2001 From: Justin Carpentier Date: Thu, 5 Dec 2019 20:53:32 +0100 Subject: [PATCH 11/11] cmake: add finding of the interpreter --- unittest/cmake/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/unittest/cmake/CMakeLists.txt b/unittest/cmake/CMakeLists.txt index ecbf5edcf..111929b5b 100644 --- a/unittest/cmake/CMakeLists.txt +++ b/unittest/cmake/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.6) project(ExtraLib CXX) find_package(eigenpy REQUIRED) +find_package(PythonInterp REQUIRED) find_package(PythonLibs REQUIRED) add_executable(extra_lib extra_lib.cpp)