@@ -6,30 +6,32 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
66
77INCLUDE (cmake/base.cmake)
88INCLUDE (cmake/boost.cmake)
9- INCLUDE (cmake/cpack.cmake)
10- INCLUDE (cmake/eigen.cmake)
119INCLUDE (cmake/python.cmake)
1210
1311SET (PROJECT_NAME eigenpy)
1412SET (PROJECT_DESCRIPTION "Wrapping Eigen3 -- numpy" )
15- SET (PROJECT_URL "http://github.com/stac -of-tasks/eigenpy" )
13+ SET (PROJECT_URL "http://github.com/stack -of-tasks/eigenpy" )
1614
1715# Disable -Werror on Unix for now.
1816SET (CXX_DISABLE_WERROR True )
1917SET (CMAKE_VERBOSE_MAKEFILE True )
2018
21- project (${PROJECT_NAME} )
2219SETUP_PROJECT()
2320STRING (REPLACE "-pedantic" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} )
2421
22+ IF (APPLE )
23+ SET (CMAKE_MACOSX_RPATH TRUE )
24+ ENDIF (APPLE )
25+
2526# ----------------------------------------------------
2627# --- DEPENDANCIES -----------------------------------
2728# ----------------------------------------------------
28- SEARCH_FOR_EIGEN( )
29+ ADD_REQUIRED_DEPENDENCY( "eigen3 >= 3.0.5" )
2930SET (BOOST_COMPONENTS python)
3031SEARCH_FOR_BOOST()
3132set (Python_ADDITIONAL_VERSIONS 2.7)
3233FINDPYTHON()
34+ FIND_NUMPY()
3335
3436# ----------------------------------------------------
3537# --- INCLUDE ----------------------------------------
@@ -66,39 +68,44 @@ ENDFOREACH(header)
6668# ----------------------------------------------------
6769# --- TARGETS ----------------------------------------
6870# ----------------------------------------------------
69- INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_DIRS} )
71+ INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS} )
72+ # Add Boost path to include directories.
7073INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIRS} )
7174
72- SET (eigenpy_SOURCES
75+ SET (${PROJECT_NAME} _SOURCES
7376 src/exception.cpp
7477 src/eigenpy.cpp
7578 src/details.cpp
7679 src/angle-axis.cpp
7780 src/quaternion.cpp
78- )
81+ )
7982
80- ADD_LIBRARY (eigenpy SHARED ${eigenpy_SOURCES} )
81- TARGET_LINK_LIBRARIES (eigenpy ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} )
82- INSTALL (TARGETS eigenpy DESTINATION ${CMAKE_INSTALL_PREFIX} /lib)
83+ # With Darwin system, the library needs to be static for a complete exposion of eigen structure under Python
84+ IF (APPLE )
85+ ADD_LIBRARY (${PROJECT_NAME} ${${PROJECT_NAME} _SOURCES} ${${PROJECT_NAME} _HEADERS})
86+ ELSE (APPLE )
87+ ADD_LIBRARY (${PROJECT_NAME} SHARED ${${PROJECT_NAME} _SOURCES} ${${PROJECT_NAME} _HEADERS})
88+ ENDIF (APPLE )
89+
90+ TARGET_LINK_LIBRARIES (${PROJECT_NAME} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} )
91+ PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME} eigen3)
92+ INSTALL (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX} /lib)
8393
8494# ----------------------------------------------------
8595# --- UNIT TEST --------------------------------------
8696# ----------------------------------------------------
8797ADD_LIBRARY (matrix SHARED unittest/matrix.cpp)
88- TARGET_LINK_LIBRARIES (matrix ${Boost_LIBRARIES} eigenpy )
98+ TARGET_LINK_LIBRARIES (matrix ${Boost_LIBRARIES} ${PROJECT_NAME} )
8999SET_TARGET_PROPERTIES (matrix PROPERTIES PREFIX "" )
90100
91101ADD_LIBRARY (geometry SHARED unittest/geometry.cpp)
92- TARGET_LINK_LIBRARIES (geometry ${Boost_LIBRARIES} eigenpy )
102+ TARGET_LINK_LIBRARIES (geometry ${Boost_LIBRARIES} ${PROJECT_NAME} )
93103SET_TARGET_PROPERTIES (geometry PROPERTIES PREFIX "" )
94104
95- PKG_CONFIG_APPEND_CFLAGS(${_Eigen_CFLAGS} )
96105PKG_CONFIG_APPEND_CFLAGS("-I${PYTHON_INCLUDE_DIRS} " )
97- #PKG_CONFIG_APPEND_LIBS_RAW(${Boost_LIBRARIES} )
106+ PKG_CONFIG_APPEND_CFLAGS( "-I ${NUMPY_INCLUDE_DIRS} " )
98107PKG_CONFIG_APPEND_LIBS("boost_python" )
99108PKG_CONFIG_APPEND_LIBS_RAW(${PYTHON_LIBRARIES} )
100109PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME} )
101110
102111SETUP_PROJECT_FINALIZE()
103- SETUP_PROJECT_CPACK()
104-
0 commit comments