Skip to content
Snippets Groups Projects
Unverified Commit b20044cd authored by Justin Carpentier's avatar Justin Carpentier Committed by GitHub
Browse files

Merge pull request #132 from jcarpent/devel

Improve packaging and export of the project
parents e3087e90 17627d69
No related branches found
No related tags found
No related merge requests found
...@@ -54,8 +54,15 @@ before_install: ./.travis/run before_install ...@@ -54,8 +54,15 @@ before_install: ./.travis/run before_install
install: pip install coveralls numpy install: pip install coveralls numpy
script: script:
- export CMAKE_ADDITIONAL_OPTIONS="-DCMAKE_BUILD_TYPE=${BUILDTYPE}" - 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 - ./.travis/run ../travis_custom/custom_build
- cd $TRAVIS_BUILD_DIR/unittest/cmake
- mkdir build
- cd build
- export CMAKE_PREFIX_PATH=/tmp/_ci/install
- cmake ..
- make
- ./extra_lib
- cd /tmp/_ci/build
- make uninstall
after_failure: ./.travis/run after_failure after_failure: ./.travis/run after_failure
after_success: ./.travis/run after_success after_success: ./.travis/run after_success
...@@ -9,6 +9,7 @@ SET(PROJECT_NAME eigenpy) ...@@ -9,6 +9,7 @@ SET(PROJECT_NAME eigenpy)
SET(PROJECT_DESCRIPTION "Bindings between Numpy and Eigen using Boost.Python") SET(PROJECT_DESCRIPTION "Bindings between Numpy and Eigen using Boost.Python")
SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy") SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy")
SET(PROJECT_USE_CMAKE_EXPORT TRUE) SET(PROJECT_USE_CMAKE_EXPORT TRUE)
SET(PROJECT_USE_KEYWORD_LINK_LIBRARIES TRUE)
SET(PROJECT_CUSTOM_HEADER_EXTENSION "hpp") SET(PROJECT_CUSTOM_HEADER_EXTENSION "hpp")
# Check if the submodule cmake have been initialized # Check if the submodule cmake have been initialized
...@@ -102,11 +103,6 @@ LIST(APPEND ${PROJECT_NAME}_HEADERS ...@@ -102,11 +103,6 @@ LIST(APPEND ${PROJECT_NAME}_HEADERS
${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/deprecated.hpp ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/deprecated.hpp
${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/warning.hpp) ${${PROJECT_NAME}_BINARY_DIR}/include/${PROJECT_NAME}/warning.hpp)
INCLUDE_DIRECTORIES(${${PROJECT_NAME}_BINARY_DIR}/include)
INCLUDE_DIRECTORIES(${${PROJECT_NAME}_SOURCE_DIR}/include)
LINK_DIRECTORIES(${PYTHON_LIBRARY_DIRS})
# ---------------------------------------------------- # ----------------------------------------------------
# --- TARGETS ---------------------------------------- # --- TARGETS ----------------------------------------
# ---------------------------------------------------- # ----------------------------------------------------
...@@ -126,7 +122,14 @@ SET(${PROJECT_NAME}_SOURCES ...@@ -126,7 +122,14 @@ SET(${PROJECT_NAME}_SOURCES
) )
ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) 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}
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
IF(NOT WIN32) IF(NOT WIN32)
TARGET_COMPILE_OPTIONS(${PROJECT_NAME} PRIVATE $<$<CXX_COMPILER_ID:MSVC>:-bigobj> "-Wno-conversion") TARGET_COMPILE_OPTIONS(${PROJECT_NAME} PRIVATE $<$<CXX_COMPILER_ID:MSVC>:-bigobj> "-Wno-conversion")
ELSE() ELSE()
...@@ -155,10 +158,6 @@ INSTALL(FILES ...@@ -155,10 +158,6 @@ INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/eigenpy/${PROJECT_NAME}_export.h ${CMAKE_CURRENT_BINARY_DIR}/eigenpy/${PROJECT_NAME}_export.h
DESTINATION include/eigenpy) 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 package for ROS
install(FILES package.xml DESTINATION share/eigenpy) install(FILES package.xml DESTINATION share/eigenpy)
......
Subproject commit 3d9ae677710fd6f86176e9031aa3fe40d8f656ce Subproject commit 365af59c5162364263ac8d69860f5931fae11d93
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()
...@@ -39,13 +39,13 @@ ELSE() ...@@ -39,13 +39,13 @@ ELSE()
SET(${PYWRAP}_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${PYTHON_SITELIB}/${PROJECT_NAME}) SET(${PYWRAP}_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${PYTHON_SITELIB}/${PROJECT_NAME})
ENDIF() ENDIF()
SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES SUFFIX ${PYTHON_EXT_SUFFIX}) SET_TARGET_PROPERTIES(${PYWRAP}
PROPERTIES
SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES PREFIX ""
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}") SUFFIX ${PYTHON_EXT_SUFFIX}
OUTPUT_NAME "${PROJECT_NAME}"
SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES PREFIX "") LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python/${PROJECT_NAME}"
SET_TARGET_PROPERTIES(${PYWRAP} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") )
INSTALL(TARGETS ${PYWRAP} DESTINATION ${${PYWRAP}_INSTALL_DIR}) INSTALL(TARGETS ${PYWRAP} DESTINATION ${${PYWRAP}_INSTALL_DIR})
......
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)
target_link_libraries(extra_lib PUBLIC eigenpy::eigenpy ${PYTHON_LIBRARIES})
#include <eigenpy/version.hpp>
int main(int /*argc*/, char ** /*argv*/)
{
eigenpy::checkVersionAtLeast(0,0,0);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment