CMakeLists.txt 3.13 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

#
# Python
#

Joseph Mirabel's avatar
Joseph Mirabel committed
20
INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
Francois Keith's avatar
Francois Keith committed
21
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS} ${PYTHON_LIBRARY_DIRS})
florent's avatar
florent committed
22

23
24
25
26
27
28
29
30
31
32
#
#
#  Python interpreter
#
#
SET(LIBRARY_NAME ${PROJECT_NAME})
ADD_LIBRARY(${LIBRARY_NAME}
  SHARED
  interpreter.cc)

33
34
TARGET_LINK_LIBRARIES(${LIBRARY_NAME}
  ${PYTHON_LIBRARY})
Guilhem Saurel's avatar
Guilhem Saurel committed
35
TARGET_LINK_BOOST_PYTHON(${LIBRARY_NAME})
36

37
38
IF(UNIX)
  TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${Boost_LIBRARIES})
39
  TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${CMAKE_DL_LIBS})
40
ENDIF(UNIX)
41

42
43
44
45
SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION})
PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} dynamic-graph)

INSTALL(TARGETS ${LIBRARY_NAME}
46
  DESTINATION lib)
47

florent's avatar
florent committed
48
49
50
51
52
53
54
55
56
#
#
#  Python bindings
#
#

SET(PYTHON_MODULE wrap)

ADD_LIBRARY(${PYTHON_MODULE}
57
58
59
60
61
62
63
64
65
66
67
  MODULE
  convert-dg-to-py.cc
  debug-py.cc
  dynamic-graph-py.cc
  entity-py.cc
  exception-python.cc
  factory-py.cc
  pool-py.cc
  signal-base-py.cc
  signal-caster-py.cc
  signal-wrapper.cc
68
)
florent's avatar
florent committed
69
70
71
72
73

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

Francois Keith's avatar
Francois Keith committed
74
PKG_CONFIG_USE_DEPENDENCY(${PYTHON_MODULE} dynamic-graph)
75
#TARGET_LINK_LIBRARIES(${PYTHON_MODULE} ${PYTHON_LIBRARY})
florent's avatar
florent committed
76

77
CONFIG_FILES(link-to-python.hh)
Joseph Mirabel's avatar
Joseph Mirabel committed
78
79
INCLUDE_DIRECTORIES(SYSTEM ${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
florent's avatar
florent committed
80
81
82
83
84
85
86
87
88
89
90
91

#
# Installation
#

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

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

SET (PYTHON_SOURCES
92
93
94
95
96
97
98
    __init__.py
    attrpath.py
    entity.py
    signal_base.py
    matlab.py
    script_shortcuts.py
    tools.py
99
)
florent's avatar
florent committed
100
101

FOREACH (SOURCE ${PYTHON_SOURCES})
102
  PYTHON_INSTALL_ON_SITE(dynamic_graph ${SOURCE} )
florent's avatar
florent committed
103
104
ENDFOREACH (SOURCE)

105
106
# --- ADD the wrap on the dg modules
# Tracer plugin
107
IF(WIN32)
108
SET(TRACER_PLUGIN ${DYNAMIC_GRAPH_PLUGINDIR}/tracer${CMAKE_STATIC_LIBRARY_SUFFIX})
109
ELSE(WIN32)
110
SET(TRACER_PLUGIN ${DYNAMIC_GRAPH_PLUGINDIR}/tracer${CMAKE_SHARED_LIBRARY_SUFFIX})
111
ENDIF(WIN32)
112
DYNAMIC_GRAPH_PYTHON_MODULE("tracer" ${TRACER_PLUGIN} tracer-wrap)
113
114

# TracerRealTime plugin
115
IF(WIN32)
116
SET(TRACERREALTIME_PLUGIN ${DYNAMIC_GRAPH_PLUGINDIR}/tracer-real-time${CMAKE_STATIC_LIBRARY_SUFFIX})
117
ELSE(WIN32)
118
SET(TRACERREALTIME_PLUGIN ${DYNAMIC_GRAPH_PLUGINDIR}/tracer-real-time${CMAKE_SHARED_LIBRARY_SUFFIX})
119
ENDIF(WIN32)
120
DYNAMIC_GRAPH_PYTHON_MODULE("tracer_real_time" ${TRACERREALTIME_PLUGIN} tracer_real_time-wrap)