@@ -9,15 +9,18 @@ SET(PROJECT_DESCRIPTION "Dynamic graph library")
9
9
SET (PROJECT_URL "http://github.com/${PROJECT_ORG} /${PROJECT_NAME} " )
10
10
SET (PROJECT_SUFFIX "-v3" )
11
11
12
+ # Export CMake Target
13
+ SET (PROJECT_USE_CMAKE_EXPORT TRUE )
14
+ # Make sure that every header is generated in dynamic-graph
15
+ SET (CUSTOM_HEADER_DIR ${PROJECT_NAME} )
16
+
12
17
INCLUDE (cmake/base.cmake )
13
18
PROJECT (${PROJECT_NAME} CXX )
14
19
20
+ INCLUDE (cmake/header.cmake )
15
21
INCLUDE (cmake/boost.cmake )
16
- INCLUDE (cmake/eigen.cmake )
17
22
INCLUDE (cmake/pthread.cmake )
18
-
19
- # Export CMake Target
20
- SET (PROJECT_USE_CMAKE_EXPORT TRUE )
23
+ add_project_dependency (Eigen3 REQUIRED NO_MODULE )
21
24
22
25
SET (CUSTOM_HEADER_DIR "${PROJECT_NAME} " )
23
26
@@ -33,6 +36,10 @@ GENERATE_CONFIGURATION_HEADER(
33
36
${HEADER_DIR}
34
37
config-tracer-real-time.hh DG_TRACERREALTIME tracer_real_time_EXPORTS )
35
38
39
+ set (PACKAGE_EXTRA_MACROS
40
+ "set (DYNAMIC_GRAPH_PLUGINDIR \$ {CMAKE_CURRENT_LIST_DIR}/../../plugin)" )
41
+
42
+ # Specific to PKG module
36
43
# FIXME: to be changed into lib/dynamic-graph
37
44
# to avoid name collision when installing dynamic-graph in /usr.
38
45
SET (PLUGINDIR "${CMAKE_INSTALL_FULL_LIBDIR} /plugin" )
@@ -48,13 +55,172 @@ PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
48
55
SET (BOOST_COMPONENTS serialization system unit_test_framework thread )
49
56
SEARCH_FOR_BOOST ()
50
57
SEARCH_FOR_PTHREAD ()
58
+ #SEARCH_FOR_EIGEN()
51
59
52
- # Search for Boost.
53
- SEARCH_FOR_EIGEN ()
60
+ # Copyright 2010, Olivier Stasse, JRL, CNRS/AIST
61
+ #
62
+
63
+ ####################################
64
+ ### Main Library
65
+ ####################################
66
+ SET (LIBRARY_NAME ${PROJECT_NAME} )
67
+
68
+ # Verbosity level
69
+ IF (NOT (\"${CMAKE_VERBOSITY_LEVEL} \" STREQUAL \"\" ))
70
+ ADD_DEFINITIONS(-DVP_DEBUG_MODE=${CMAKE_VERBOSITY_LEVEL} -DVP_DEBUG)
71
+ ENDIF (NOT (\" ${CMAKE_VERBOSITY_LEVEL} \" STREQUAL \"\" ))
72
+
73
+ # Declare boost include directories
74
+ #include_directories(${Boost_INCLUDE_DIRS} )
75
+ #link_directories(${Boost_LIBRARY_DIRS} )
76
+
77
+ ADD_LIBRARY(${LIBRARY_NAME}
78
+ SHARED
79
+ src/debug/debug.cpp
80
+ src/debug/real-time-logger.cpp
81
+ src/debug/logger.cpp
82
+
83
+ src/dgraph/entity.cpp
84
+ src/dgraph/factory.cpp
85
+ src/dgraph/pool.cpp
86
+
87
+ src/exception/exception-abstract.cpp
88
+ src/exception/exception-factory.cpp
89
+ src/exception/exception-signal.cpp
90
+ src/exception/exception-traces.cpp
91
+
92
+ src/mt/process-list.cpp
93
+
94
+ src/signal/signal-array.cpp
95
+ src/signal/signal-caster.cpp
96
+ src/signal/signal-cast-helper.cpp
97
+
98
+ src/command/value.cpp
99
+ src/command/command.cpp
100
+
101
+ )
102
+
103
+ SET(${PROJECT_NAME} _HEADERS
104
+ include/dynamic-graph/fwd.hh
105
+ include/dynamic-graph/null-ptr.hh
106
+ include/dynamic-graph/debug.h
107
+ include/dynamic-graph/real-time-logger.h
108
+
109
+ include/dynamic-graph/dynamic-graph-api.h
110
+
111
+ include/dynamic-graph/entity.h
112
+ include/dynamic-graph/factory.h
113
+ include/dynamic-graph/pool.h
114
+
115
+ include/dynamic-graph/exception-abstract.h
116
+ include/dynamic-graph/exception-factory.h
117
+ include/dynamic-graph/exception-signal.h
118
+ include/dynamic-graph/exception-traces.h
119
+
120
+ include/dynamic-graph/signal.h
121
+ include/dynamic-graph/signal-array.h
122
+ include/dynamic-graph/signal-base.h
123
+ include/dynamic-graph/signal-ptr.h
124
+ include/dynamic-graph/signal-time-dependent.h
125
+ include/dynamic-graph/signal-ptr.t.cpp
126
+ include/dynamic-graph/signal.t.cpp
127
+ include/dynamic-graph/time-dependency.h
128
+ include/dynamic-graph/time-dependency.t.cpp
129
+ include/dynamic-graph/signal-caster.h
130
+ include/dynamic-graph/signal-cast-helper.h
131
+ include/dynamic-graph/all-signals.h
132
+ include/dynamic-graph/signal-helper.h
133
+ include/dynamic-graph/entity-helper.h
134
+
135
+ include/dynamic-graph/tracer.h
136
+ include/dynamic-graph/tracer-real-time.h
137
+
138
+ include/dynamic-graph/command.h
139
+ include/dynamic-graph/eigen-io.h
140
+ include/dynamic-graph/linear-algebra.h
141
+ include/dynamic-graph/value.h
142
+
143
+ include/dynamic-graph/command-setter.h
144
+ include/dynamic-graph/command-setter.t.cpp
145
+ include/dynamic-graph/command-getter.h
146
+ include/dynamic-graph/command-getter.t.cpp
147
+ include/dynamic-graph/command-direct-getter.h
148
+ include/dynamic-graph/command-direct-setter.h
149
+ include/dynamic-graph/command-bind.h
150
+ include/dynamic-graph/all-commands.h
151
+
152
+ include/dynamic-graph/logger.h
153
+ )
154
+
155
+ SET(PUBLIC_HEADER ${${PROJECT_NAME} _HEADERS})
156
+
157
+ INSTALL(TARGETS ${PROJECT_NAME}
158
+ EXPORT ${TARGETS_EXPORT_NAME}
159
+ PUBLIC_HEADER
160
+ INCLUDES DESTINATION include
161
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
162
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
163
+ )
164
+
165
+ # We need to include Eigen3 because the CMakeFile at 16.04 LTS
166
+ # is not so modern.
167
+ target_include_directories(${PROJECT_NAME}
168
+ PUBLIC
169
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR} /include>
170
+ $<BUILD_INTERFACE:${EIGEN3_INCLUDE_DIR} >
171
+ INTERFACE
172
+ ${EIGEN3_INCLUDE_DIR}
173
+ $<INSTALL_INTERFACE:include>
174
+ )
175
+
176
+ SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION} )
177
+
178
+
179
+ IF (UNIX)
180
+ TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${CMAKE_DL_LIBS} pthread)
181
+ ENDIF (UNIX)
182
+
183
+ TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${Boost_LIBRARIES} )
184
+
185
+ #IF (UNIX AND NOT APPLE)
186
+ # TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${JRL_MAL_LDFLAGS_OTHER} )
187
+ #ENDIF (UNIX AND NOT APPLE)
188
+
189
+ ####################################
190
+ ### Plugins
191
+ ####################################
192
+ SET(plugins_list
193
+ src/traces/tracer
194
+ src/traces/tracer-real-time
195
+ )
196
+
197
+ SET(tracer-real-time_dependency tracer)
198
+
199
+ FOREACH(plugin_file ${plugins_list} )
200
+ GET_FILENAME_COMPONENT(plugin ${plugin_file} NAME)
201
+ ADD_LIBRARY(${plugin} SHARED " ${plugin_file} .cpp ")
202
+
203
+ TARGET_LINK_LIBRARIES(${plugin}
204
+ ${PROJECT_NAME} ${${plugin} _dependency}
205
+ ${Boost_LIBRARIES} )
206
+
207
+ SET_TARGET_PROPERTIES(${plugin}
208
+ PROPERTIES
209
+ PREFIX ""
210
+ )
211
+
212
+ INSTALL(TARGETS ${plugin} EXPORT ${TARGET_NAME} DESTINATION ${PLUGINDIR} )
213
+ ENDFOREACH(plugin_file)
54
214
55
- ADD_SUBDIRECTORY (src )
56
215
ADD_SUBDIRECTORY(include/${PROJECT_NAME} )
57
216
ADD_SUBDIRECTORY(tests)
58
217
59
- SETUP_PROJECT_FINALIZE ()
218
+
219
+ #SETUP_PROJECT_FINALIZE()
60
220
SETUP_PROJECT_PACKAGE_FINALIZE()
221
+
222
+ get_cmake_property(_variableNames VARIABLES)
223
+ list (SORT _variableNames)
224
+ foreach (_variableName ${_variableNames} )
225
+ message(STATUS " ${_variableName} =${${_variableName}} ")
226
+ endforeach()
0 commit comments