Statistics
| Branch: | Tag: | Revision:

hlrc / client / cpp / CMakeLists.txt @ b3694223

History | View | Annotate | Download (6.525 KB)

1 0c286af0 Simon Schulz
SET( PROJECT_NAME hlrc_client_cpp )
2
PROJECT( ${PROJECT_NAME} )
3
4
#debug?
5
set(CMAKE_BUILD_TYPE Debug)
6
7
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
8
INCLUDE(FindPkgConfig)
9
10
SET(HLRC_CLIENT_LIBNAME "${PROJECT_NAME}")
11
SET(HLRC_CLIENT_VERSION_MAJOR    "0")
12
SET(HLRC_CLIENT_VERSION_MINOR    "1")
13
SET(HLRC_CLIENT_VERSION_REVISION "0")
14
SET(HLRC_CLIENT_VERSION   "${HLRC_CLIENT_VERSION_MAJOR}.${HLRC_CLIENT_VERSION_MINOR}.${HLRC_CLIENT_VERSION_REVISION}")
15
SET(HLRC_CLIENT_SOVERSION "${HLRC_CLIENT_VERSION_MAJOR}.${HLRC_CLIENT_VERSION_MINOR}")
16
SET(HLRC_CLIENT_PACKAGE   "${HLRC_CLIENT_LIBNAME}-${HLRC_CLIENT_VERSION_MAJOR}.${HLRC_CLIENT_VERSION_MINOR}")
17
18
SET(PREFIX      ${CMAKE_INSTALL_PREFIX})
19
SET(BINDIR     "${PREFIX}/bin")
20
SET(INCLUDEDIR "${PREFIX}/include/hlrc_client")
21
SET(MANDIR     "${PREFIX}/man")
22
SET(LIBDIR     "${PREFIX}/lib")
23
SET(PKGDIR     "${PREFIX}/lib/pkgconfig")
24
SET(DATADIR    "${PREFIX}/share/hlrc_client")
25
26
#######################################
27 3c77f276 Robert Haschke
FIND_PACKAGE(hlrc_server)
28
29 c5a47e56 Simon Schulz
#######################################
30
#allow forced disable of RSB
31
option(IGNORE_RSB "IGNORE_RSB" OFF)
32 9aa2bb7c semeyerz
33 c5a47e56 Simon Schulz
#######################################
34
# check if we have RSB support:
35
IF (IGNORE_RSB)
36
    MESSAGE(INFO "RSB disabled per command line flag IGNORE_RSB")
37
ELSE (IGNORE_RSB)
38 b3694223 Robert Haschke
FIND_PACKAGE(RSB 0.11 QUIET)
39 0c286af0 Simon Schulz
IF (RSB_FOUND)
40
    #RSB
41
    SET(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/")
42
    FIND_PACKAGE(RSC 0.11 REQUIRED)
43
    FIND_PACKAGE(RSB 0.11 REQUIRED)
44
    #RST
45
    FIND_PACKAGE(RST REQUIRED COMPONENTS sandbox)
46
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RST_INCLUDE_DIRS})
47
    ADD_DEFINITIONS(${RST_CFLAGS} ${RSTSANDBOX_CFLAGS})
48
49
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RSB_INCLUDE_DIRS})
50
    LIST(INSERT CMAKE_MODULE_PATH 0 ${RSC_CMAKE_MODULE_PATH})
51
    #RSB
52
    SET(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/")
53
    FIND_PACKAGE(RSC 0.11 REQUIRED)
54
    FIND_PACKAGE(RSB 0.11 REQUIRED)
55
    #RST
56
    FIND_PACKAGE(RST REQUIRED COMPONENTS sandbox)
57
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RST_INCLUDE_DIRS})
58
    ADD_DEFINITIONS(${RST_CFLAGS} ${RSTSANDBOX_CFLAGS})
59
60
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RSB_INCLUDE_DIRS})
61
    LIST(INSERT CMAKE_MODULE_PATH 0 ${RSC_CMAKE_MODULE_PATH})
62
63
    message(STATUS "RSB Support is ON")
64
    add_definitions(-DRSB_SUPPORT=1)
65 b3694223 Robert Haschke
ELSE(RSB_FOUND)
66
    message(STATUS "RSB not found.")
67
ENDIF(RSB_FOUND)
68 c5a47e56 Simon Schulz
ENDIF(IGNORE_RSB)
69
70 0c286af0 Simon Schulz
################################################################
71
# check for ROS support:
72 b3694223 Robert Haschke
find_package(catkin QUIET)
73
IF(catkin_FOUND)
74 0c286af0 Simon Schulz
    SET(ROS_FOUND 1)
75
76
    catkin_package(
77
        INCLUDE_DIRS include
78 96284eda Fabian Berthold
        LIBRARIES ${HLRC_CLIENT_LIBNAME}
79 0c286af0 Simon Schulz
    )
80 462c8a3c sschulz
81 96284eda Fabian Berthold
    find_package(catkin REQUIRED COMPONENTS roscpp std_msgs sensor_msgs message_generation genmsg hlrc_server humotion tf2_eigen actionlib)
82
83 0c286af0 Simon Schulz
    message(STATUS "ROS Support is ON")
84
    add_definitions(-DROS_SUPPORT=1)
85 02461ac8 Robert Haschke
    include_directories(${catkin_INCLUDE_DIRS})
86 b3694223 Robert Haschke
ELSE(catkin_FOUND)
87
    message(STATUS "ROS not found.")
88
ENDIF(catkin_FOUND)
89 0c286af0 Simon Schulz
90
add_definitions ("-Wall")
91
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -fstack-protector-all ")
92
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" )
93
94 462c8a3c sschulz
#search for Boost
95 0c286af0 Simon Schulz
find_package( Boost 1.46 REQUIRED COMPONENTS thread program_options system filesystem regex)
96
LINK_DIRECTORIES( ${Boost_LIBRARY_DIRS}  )
97
include_directories(${Boost_INCLUDE_DIRS} )
98 b3694223 Robert Haschke
message(STATUS "using ${Boost_LIBRARIES}")
99 0c286af0 Simon Schulz
100 ef67692b Simon Schulz
INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include)
101 0c286af0 Simon Schulz
102
# SET(PREFIX ${CMAKE_INSTALL_PREFIX})
103
# SET(BINDIR "${PREFIX}/bin")
104
# SET(INCLUDEDIR "${PREFIX}/include")
105
# SET(MANDIR "${PREFIX}/man")
106
# SET(LIBDIR "${PREFIX}/lib")
107
# SET(DATADIR "${PREFIX}/share/${NAME}")
108
109
#this dummy list will make all header files appear if you use qtcreator to open the cmake project
110
file(GLOB HEADER_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include/*.h  )
111
112
SET(LIB_CLASSES
113
    src/RobotController.cpp
114
    src/Middleware.cpp
115
    src/MiddlewareROS.cpp
116
    src/MiddlewareRSB.cpp
117
)
118
119
add_library(${HLRC_CLIENT_LIBNAME} SHARED
120
    ${LIB_CLASSES}
121
    ${HEADER_LIST}
122
)
123
124
SET(INSTALL_HEADER_LIST
125
    include/RobotController.h
126
    include/RobotGaze.h
127 462c8a3c sschulz
    include/RobotTimestamp.h
128 0c286af0 Simon Schulz
    include/RobotMouth.h
129
    include/RobotEmotion.h
130
    include/RobotHeadAnimation.h
131
)
132
133
SET_TARGET_PROPERTIES(${HLRC_CLIENT_LIBNAME} PROPERTIES VERSION ${HLRC_CLIENT_VERSION} SOVERSION ${HLRC_CLIENT_SOVERSION})
134
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
135
LINK_DIRECTORIES(${LIBDIR})
136
IF (ROS_FOUND)
137 02461ac8 Robert Haschke
    add_dependencies(${HLRC_CLIENT_LIBNAME} ${catkin_EXPORTED_TARGETS})
138 0c286af0 Simon Schulz
ENDIF (ROS_FOUND)
139
140
target_link_libraries(${HLRC_CLIENT_LIBNAME} ${RSB_LIBRARIES} ${RST_LIBRARIES} ${catkin_LIBRARIES})
141
142
#build & install demo
143
#ADD_EXECUTABLE(testMarkerTracker example/testMarkerTracker.cc)
144
#TARGET_LINK_LIBRARIES(testMarkerTracker ${OpenCV_LIBS} ${Boost_LIBRARIES} ${Boost_LIBS} bart)
145
#install(TARGETS testMarkerTracker DESTINATION bin)
146
#build test
147
#ADD_EXECUTABLE(testKalmanMarker src/KalmanMarker.cc)
148
#TARGET_LINK_LIBRARIES(testKalmanMarker ${OpenCV_LIBS} ${Boost_LIBRARIES} ${Boost_LIBS} bart)
149
150
install (TARGETS ${HLRC_CLIENT_LIBNAME} DESTINATION lib )
151
INSTALL(FILES ${INSTALL_HEADER_LIST} DESTINATION ${INCLUDEDIR})
152
153
set_target_properties(${HLRC_CLIENT_LIBNAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
154
set_target_properties(${HLRC_CLIENT_LIBNAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
155
156
#create package config file
157
SET(PKGCONFIG_FILENAME "hlrc_client.pc")
158
configure_file("${PKGCONFIG_FILENAME}.in" "${PKGCONFIG_FILENAME}" @ONLY)
159
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILENAME}" DESTINATION "${PKGDIR}")
160
161
#create cmake config files
162
SET(CMAKECONFIG_FILENAME "hlrc_clientConfig.cmake")
163
configure_file("${CMAKECONFIG_FILENAME}.in" "${CMAKECONFIG_FILENAME}" @ONLY)
164
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKECONFIG_FILENAME}" DESTINATION "${DATADIR}")
165
166
SET(CMAKECONFIGVERSION_FILENAME "hlrc_clientConfigVersion.cmake")
167
configure_file("${CMAKECONFIGVERSION_FILENAME}.in" "${CMAKECONFIGVERSION_FILENAME}" @ONLY)
168
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKECONFIGVERSION_FILENAME}" DESTINATION "${DATADIR}")
169
170
#ADD_EXECUTABLE(${PROJECT_NAME} main.cpp ${SRC_FILES})
171 462c8a3c sschulz
#TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${RSB_LIBRARIES} ${RST_LIBRARIES} ${OpenCV_LIBS} ${Boost_LIBRARIES} ${Boost_LIBS} ${BART_LIBRARIES} )
172 0c286af0 Simon Schulz
173
#build & install examples
174
ADD_EXECUTABLE(${PROJECT_NAME}_example_random_gaze examples/random_gaze/main.cpp)
175
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_example_random_gaze ${HLRC_CLIENT_LIBNAME})
176
#install(TARGETS ${PROJECT_NAME}_calibrate_camera DESTINATION bin)
177
ADD_EXECUTABLE(${PROJECT_NAME}_example_speech_test examples/speech_test/main.cpp)
178
TARGET_LINK_LIBRARIES(${PROJECT_NAME}_example_speech_test ${HLRC_CLIENT_LIBNAME})