CMakeLists.txt 3.05 KB
Newer Older
Thomas Moulard's avatar
Thomas Moulard committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Copyright 2010, 2011, Florent Lamiraux, Thomas Moulard, JRL, CNRS/AIST
#
# This file is part of dynamic-graph-python.
# dynamic-graph-python is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# dynamic-graph-python is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Lesser Public License for more details.  You should have
# received a copy of the GNU Lesser General Public License along with
# dynamic-graph-python. If not, see <http://www.gnu.org/licenses/>.
florent's avatar
florent committed
15
16
17
18
19
20
21
22
23
24
25
26
27
28

#
# Python
#
INCLUDE(FindPythonLibs)
IF (NOT ${PYTHONLIBS_FOUND} STREQUAL TRUE)
   MESSAGE(FATAL_ERROR "Python has not been found.")
ENDIF (NOT ${PYTHONLIBS_FOUND} STREQUAL TRUE)

INCLUDE(FindPythonInterp)
IF (NOT ${PYTHONINTERP_FOUND} STREQUAL TRUE)
   MESSAGE(FATAL_ERROR "Python executable has not been found.")
ENDIF (NOT ${PYTHONINTERP_FOUND} STREQUAL TRUE)

29
30
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})

florent's avatar
florent committed
31
32
# provide path to library libdynamic-graph.so
LINK_DIRECTORIES(${DYNAMIC_GRAPH_LIBRARY_DIRS})
florent's avatar
florent committed
33
ADD_DEFINITIONS(${DYNAMIC_GRAPH_CFLAGS})
florent's avatar
florent committed
34

35
36
37
38
39
40
41
42
43
44
#
#
#  Python interpreter
#
#
SET(LIBRARY_NAME ${PROJECT_NAME})
ADD_LIBRARY(${LIBRARY_NAME}
  SHARED
  interpreter.cc)

45
46
47
TARGET_LINK_LIBRARIES(${LIBRARY_NAME}
  ${Boost_LIBRARIES}
  ${PYTHON_LIBRARY})
48
49
50
51
52
53
54
55
56
57
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} dynamic-graph)

INSTALL(TARGETS ${LIBRARY_NAME}
  DESTINATION lib)

SET(EXECUTABLE_NAME dg-python)
ADD_EXECUTABLE(${EXECUTABLE_NAME} dg-python.cc)
TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME}
  ${LIBRARY_NAME}
58
  )
59
60
INSTALL(TARGETS dg-python DESTINATION bin)

florent's avatar
florent committed
61
62
63
64
65
66
67
68
69
70
#
#
#  Python bindings
#
#

SET(PYTHON_MODULE wrap)

ADD_LIBRARY(${PYTHON_MODULE}
	MODULE
Nicolas Mansard's avatar
IVIGIT.    
Nicolas Mansard committed
71
	exception-python.cc
72
	convert-dg-to-py.cc
73
74
75
	dynamic-graph-py.cc
	signal-base-py.cc
	entity-py.cc
florent's avatar
florent committed
76
	factory-py.cc
77
	signal-caster-py.cc
78
)
florent's avatar
florent committed
79
80
81
82
83

# Remove prefix lib
SET_TARGET_PROPERTIES(${PYTHON_MODULE}
	PROPERTIES PREFIX "")

florent's avatar
florent committed
84
85
TARGET_LINK_LIBRARIES(${PYTHON_MODULE} ${DYNAMIC_GRAPH_LIBRARIES})

florent's avatar
florent committed
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})

#
# Installation
#

EXEC_PROGRAM(${PYTHON_EXECUTABLE} ARGS "-c \"from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='')\""
  OUTPUT_VARIABLE PYTHON_SITELIB)

MESSAGE(STATUS "PYTHON_SITELIB=${PYTHON_SITELIB}")

SET(PYTHON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${PYTHON_SITELIB}/dynamic_graph)

INSTALL(TARGETS ${PYTHON_MODULE}
	       DESTINATION
	       ${PYTHON_INSTALL_DIR})

SET (PYTHON_SOURCES
    dynamic_graph/__init__.py
105
106
    dynamic_graph/entity.py
    dynamic_graph/signal_base.py
florent's avatar
florent committed
107
108
109
110
111
112
113
114
115
116
117
118
)

SET (PYTHON_SOURCES_FULLPATH "")
FOREACH (SOURCE ${PYTHON_SOURCES})
    SET(PYTHON_SOURCES_FULLPATH
    	${PYTHON_SOURCES_FULLPATH}
	${CMAKE_SOURCE_DIR}/src/${SOURCE}
    )
ENDFOREACH (SOURCE)

INSTALL(FILES ${PYTHON_SOURCES_FULLPATH}
	DESTINATION ${PYTHON_INSTALL_DIR})