Statistics
| Branch: | Tag: | Revision:

hlrc / server / CMakeLists.txt @ b3694223

History | View | Annotate | Download (4.828 KB)

1 0c286af0 Simon Schulz
cmake_minimum_required(VERSION 2.8.3)
2
project(hlrc_server)
3
4 7c5d8279 Simon Schulz
set(ENV{ROS_LANG_DISABLE} "genjava")
5
6 0c286af0 Simon Schulz
## System dependencies are found with CMake's conventions
7
# find_package(Boost REQUIRED COMPONENTS system)
8
9
INCLUDE(FindPkgConfig)
10
11
find_package(Boost REQUIRED COMPONENTS system thread)
12
13
#######################################
14 aa1958c6 Simon Schulz
#allow forced disable of RSB
15
option(IGNORE_RSB "IGNORE_RSB" OFF)
16 9aa2bb7c semeyerz
17 aa1958c6 Simon Schulz
#######################################
18
# check if we have RSB support:
19
IF (IGNORE_RSB) 
20
    MESSAGE(INFO "RSB disabled per command line flag IGNORE_RSB")
21
ELSE (IGNORE_RSB)
22 b3694223 Robert Haschke
FIND_PACKAGE(RSB 0.11 QUIET)
23 0c286af0 Simon Schulz
IF (RSB_FOUND)
24
    #RSB
25
    SET(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/")
26
    FIND_PACKAGE(RSC 0.11 REQUIRED)
27
    FIND_PACKAGE(RSB 0.11 REQUIRED)
28
    #RST
29
    FIND_PACKAGE(RST REQUIRED COMPONENTS sandbox)
30
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RST_INCLUDE_DIRS})
31
    ADD_DEFINITIONS(${RST_CFLAGS} ${RSTSANDBOX_CFLAGS})
32
33
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RSB_INCLUDE_DIRS})
34
    LIST(INSERT CMAKE_MODULE_PATH 0 ${RSC_CMAKE_MODULE_PATH})
35
    #RSB
36
    SET(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/")
37
    FIND_PACKAGE(RSC 0.11 REQUIRED)
38
    FIND_PACKAGE(RSB 0.11 REQUIRED)
39
    #RST
40
    FIND_PACKAGE(RST REQUIRED COMPONENTS sandbox)
41
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RST_INCLUDE_DIRS})
42
    ADD_DEFINITIONS(${RST_CFLAGS} ${RSTSANDBOX_CFLAGS})
43
44
    INCLUDE_DIRECTORIES(BEFORE SYSTEM ${RSB_INCLUDE_DIRS})
45
    LIST(INSERT CMAKE_MODULE_PATH 0 ${RSC_CMAKE_MODULE_PATH})
46
47
    message(STATUS "RSB Support is ON")
48
    add_definitions(-DRSB_SUPPORT=1)
49 b3694223 Robert Haschke
ELSE(RSB_FOUND)
50
    message(STATUS "RSB not found.")
51 0c286af0 Simon Schulz
ENDIF (RSB_FOUND)
52 aa1958c6 Simon Schulz
ENDIF(IGNORE_RSB)
53 0c286af0 Simon Schulz
54
################################################################
55
# check for ROS support:
56 b3694223 Robert Haschke
find_package(catkin QUIET)
57 0c286af0 Simon Schulz
IF (catkin_FOUND)
58
    SET(ROS_FOUND 1)
59
60 96284eda Fabian Berthold
    find_package(catkin REQUIRED COMPONENTS roscpp std_msgs geometry_msgs sensor_msgs message_generation genmsg actionlib_msgs actionlib tf2_ros tf2_eigen angles humotion)
61 2cf3c285 Robert Haschke
    find_package(PkgConfig REQUIRED)
62
    pkg_search_module(EIGEN3 REQUIRED eigen3)
63 0c286af0 Simon Schulz
64
    message(STATUS "ROS Support is ON")
65
    add_definitions(-DROS_SUPPORT=1)
66
67
    add_message_files(
68
        FILES
69
        phoneme.msg
70
        soundchunk.msg
71 b47687f8 Robert Haschke
        utterance.msg
72 0c286af0 Simon Schulz
    )
73
74
    add_service_files(
75
        FILES
76
    )
77
78
    add_action_files(
79
        DIRECTORY action
80
        FILES
81
        animation.action
82
        speech.action
83
        utterance.action
84 b47687f8 Robert Haschke
        tts.action
85 0c286af0 Simon Schulz
        emotionstate.action
86
        gazetarget.action
87 b47687f8 Robert Haschke
        lookattarget.action
88 0c286af0 Simon Schulz
        mouthtarget.action
89
    )
90
91
    generate_messages(
92
        DEPENDENCIES
93
        actionlib_msgs
94
        std_msgs
95 b47687f8 Robert Haschke
        geometry_msgs
96 0c286af0 Simon Schulz
        hlrc_server
97
    )
98
99
    catkin_package(
100 96284eda Fabian Berthold
        # INCLUDE_DIRS include
101 f0dcf4ca Robert Haschke
        LIBRARIES
102 0c286af0 Simon Schulz
        CATKIN_DEPENDS actionlib_msgs
103
        #CATKIN_DEPENDS message_runtime
104
        #DEPENDS system_lib
105
    )
106 b3694223 Robert Haschke
ELSE(catkin_FOUND)
107
    message(STATUS "ROS not found.")
108
ENDIF(catkin_FOUND)
109 0c286af0 Simon Schulz
110
add_definitions ("-Wall")
111
112
###################################
113
# humotion
114
INCLUDE(FindPkgConfig)
115 b3694223 Robert Haschke
find_package(humotion 0.0.1 REQUIRED)
116
message(STATUS "using humotion includes from " ${humotion_INCLUDE_DIRS})
117 0c286af0 Simon Schulz
118
###################################
119
# libao audio
120
PKG_CHECK_MODULES(AO REQUIRED ao>=1.1.0)
121 b3694223 Robert Haschke
SET(AO_LIBRARY_DIRS "${AO_PREFIX}/lib")
122
SET(AO_INCLUDE_DIRS "${AO_PREFIX}/include")
123
SET(AO_LIBRARIES "ao")
124
MESSAGE(STATUS "using libao version ${AO_VERSION} from ${AO_PREFIX}")
125 0c286af0 Simon Schulz
126
#build 
127 2cf3c285 Robert Haschke
include_directories(include ${catkin_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${humotion_INCLUDE_DIRS} ${AO_INCLUDE_DIRS} ${humotion_INCLUDE_DIRS})
128 9af6ff03 Simon Schulz
link_directories(${catkin_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${AO_LIBRARY_DIRS} ${humotion_LIBRARY_DIRS})
129 0c286af0 Simon Schulz
130
#build dummy list of header files
131
file(GLOB DUMMY_HEADER_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include/*.h include/RSB/*.h include/ROS/*.h)
132
133
# declare library
134
add_executable(${PROJECT_NAME}
135
    src/main.cpp
136
    src/MiddlewareRSB.cpp
137
    src/MiddlewareROS.cpp
138
    src/Arbiter.cpp
139
    src/Utterance.cpp
140
    src/Animation.cpp
141
    src/AudioPlayer.cpp
142
    src/AudioPlayerRSB.cpp
143
    src/AudioPlayerLibAO.cpp
144
    src/MouthConfig.cpp
145
    src/EmotionState.cpp
146
    src/EmotionConfig.cpp
147
    src/Middleware.cpp
148
    ${MIDDLEWARE_SOURCES}
149
    ${DUMMY_HEADER_LIST}
150
)
151
152
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
153
154
#create example:
155
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES} ${RSB_LIBRARIES}  ${catkin_LIBRARIES} ${RST_LIBRARIES} ${humotion_LIBRARIES} ${AO_LIBRARIES})
156 5303d8b4 Simon Schulz
set_property(TARGET ${PROJECT_NAME} PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
157
158 0c286af0 Simon Schulz
159
IF (catkin_FOUND)
160
add_dependencies(${PROJECT_NAME} ${catkin_EXPORTED_TARGETS} hlrc_server_gencpp)
161
ENDIF (catkin_FOUND)
162
163
#    install(TARGETS ${PROJECT_NAME}
164
#        ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
165
#        LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
166
#        RUNTIME DESTINATION bin
167
#    )
168
169
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
170