diff --git a/CMakeLists.txt b/CMakeLists.txt index ce917a0575016b31e90d006e222940ada45b53e5..fbfbe15217d253aa1c5ef4e00d2289b5d24024e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,30 +6,32 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) INCLUDE(cmake/base.cmake) INCLUDE(cmake/boost.cmake) -INCLUDE(cmake/cpack.cmake) -INCLUDE(cmake/eigen.cmake) INCLUDE(cmake/python.cmake) SET(PROJECT_NAME eigenpy) SET(PROJECT_DESCRIPTION "Wrapping Eigen3 -- numpy") -SET(PROJECT_URL "http://github.com/stac-of-tasks/eigenpy") +SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy") # Disable -Werror on Unix for now. SET(CXX_DISABLE_WERROR True) SET(CMAKE_VERBOSE_MAKEFILE True) -project(${PROJECT_NAME}) SETUP_PROJECT() STRING(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +IF(APPLE) + SET(CMAKE_MACOSX_RPATH TRUE) +ENDIF(APPLE) + # ---------------------------------------------------- # --- DEPENDANCIES ----------------------------------- # ---------------------------------------------------- -SEARCH_FOR_EIGEN() +ADD_REQUIRED_DEPENDENCY("eigen3 >= 3.0.5") SET(BOOST_COMPONENTS python) SEARCH_FOR_BOOST() set(Python_ADDITIONAL_VERSIONS 2.7) FINDPYTHON() +FIND_NUMPY() # ---------------------------------------------------- # --- INCLUDE ---------------------------------------- @@ -66,39 +68,44 @@ ENDFOREACH(header) # ---------------------------------------------------- # --- TARGETS ---------------------------------------- # ---------------------------------------------------- -INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS}) +# Add Boost path to include directories. INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) -SET(eigenpy_SOURCES +SET(${PROJECT_NAME}_SOURCES src/exception.cpp src/eigenpy.cpp src/details.cpp src/angle-axis.cpp src/quaternion.cpp - ) +) -ADD_LIBRARY(eigenpy SHARED ${eigenpy_SOURCES}) -TARGET_LINK_LIBRARIES(eigenpy ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) -INSTALL(TARGETS eigenpy DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) +# With Darwin system, the library needs to be static for a complete exposion of eigen structure under Python +IF(APPLE) + ADD_LIBRARY(${PROJECT_NAME} ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) +ELSE(APPLE) + ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS}) +ENDIF(APPLE) + +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) +PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME} eigen3) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) # ---------------------------------------------------- # --- UNIT TEST -------------------------------------- # ---------------------------------------------------- ADD_LIBRARY(matrix SHARED unittest/matrix.cpp) -TARGET_LINK_LIBRARIES(matrix ${Boost_LIBRARIES} eigenpy) +TARGET_LINK_LIBRARIES(matrix ${Boost_LIBRARIES} ${PROJECT_NAME}) SET_TARGET_PROPERTIES(matrix PROPERTIES PREFIX "") ADD_LIBRARY(geometry SHARED unittest/geometry.cpp) -TARGET_LINK_LIBRARIES(geometry ${Boost_LIBRARIES} eigenpy) +TARGET_LINK_LIBRARIES(geometry ${Boost_LIBRARIES} ${PROJECT_NAME}) SET_TARGET_PROPERTIES(geometry PROPERTIES PREFIX "") -PKG_CONFIG_APPEND_CFLAGS(${_Eigen_CFLAGS}) PKG_CONFIG_APPEND_CFLAGS("-I${PYTHON_INCLUDE_DIRS}") -#PKG_CONFIG_APPEND_LIBS_RAW(${Boost_LIBRARIES}) +PKG_CONFIG_APPEND_CFLAGS("-I${NUMPY_INCLUDE_DIRS}") PKG_CONFIG_APPEND_LIBS("boost_python") PKG_CONFIG_APPEND_LIBS_RAW(${PYTHON_LIBRARIES}) PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME}) SETUP_PROJECT_FINALIZE() -SETUP_PROJECT_CPACK() - diff --git a/eigenpy.pc.cmake b/eigenpy.pc.cmake deleted file mode 100644 index 1810450ffa0d87196719a704b0093aa199bd87c5..0000000000000000000000000000000000000000 --- a/eigenpy.pc.cmake +++ /dev/null @@ -1,13 +0,0 @@ -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${install_pkg_prefix} -libdir=${install_pkg_exec_prefix}/lib -includedir=${install_pkg_prefix}/include -datarootdir=${install_pkg_prefix}/share -docdir=${install_pkg_datarootdir}/doc/${PROJECT_NAME} - -Name: ${PROJECT_NAME} -Description: -Version: ${PROJECT_VERSION} -Requires: ${PACKAGE_REQUIREMENTS} -Libs: ${LIBDIR_KW}${install_pkg_libdir} ${${PROJECT_NAME}_LDFLAGS} -Cflags: -I${install_pkg_include_dir} ${${PROJECT_NAME}_CXXFLAGS}