Statistics
| Branch: | Tag: | Revision:

hlrc / server / CMakeLists.txt @ b3694223

History | View | Annotate | Download (4.828 KB)

1
cmake_minimum_required(VERSION 2.8.3)
2
project(hlrc_server)
3

    
4
set(ENV{ROS_LANG_DISABLE} "genjava")
5

    
6
## 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
#allow forced disable of RSB
15
option(IGNORE_RSB "IGNORE_RSB" OFF)
16

    
17
#######################################
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
FIND_PACKAGE(RSB 0.11 QUIET)
23
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
ELSE(RSB_FOUND)
50
    message(STATUS "RSB not found.")
51
ENDIF (RSB_FOUND)
52
ENDIF(IGNORE_RSB)
53

    
54
################################################################
55
# check for ROS support:
56
find_package(catkin QUIET)
57
IF (catkin_FOUND)
58
    SET(ROS_FOUND 1)
59

    
60
    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
    find_package(PkgConfig REQUIRED)
62
    pkg_search_module(EIGEN3 REQUIRED eigen3)
63

    
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
        utterance.msg
72
    )
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
        tts.action
85
        emotionstate.action
86
        gazetarget.action
87
        lookattarget.action
88
        mouthtarget.action
89
    )
90

    
91
    generate_messages(
92
        DEPENDENCIES
93
        actionlib_msgs
94
        std_msgs
95
        geometry_msgs
96
        hlrc_server
97
    )
98

    
99
    catkin_package(
100
        # INCLUDE_DIRS include
101
        LIBRARIES
102
        CATKIN_DEPENDS actionlib_msgs
103
        #CATKIN_DEPENDS message_runtime
104
        #DEPENDS system_lib
105
    )
106
ELSE(catkin_FOUND)
107
    message(STATUS "ROS not found.")
108
ENDIF(catkin_FOUND)
109

    
110
add_definitions ("-Wall")
111

    
112
###################################
113
# humotion
114
INCLUDE(FindPkgConfig)
115
find_package(humotion 0.0.1 REQUIRED)
116
message(STATUS "using humotion includes from " ${humotion_INCLUDE_DIRS})
117

    
118
###################################
119
# libao audio
120
PKG_CHECK_MODULES(AO REQUIRED ao>=1.1.0)
121
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

    
126
#build 
127
include_directories(include ${catkin_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${humotion_INCLUDE_DIRS} ${AO_INCLUDE_DIRS} ${humotion_INCLUDE_DIRS})
128
link_directories(${catkin_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${AO_LIBRARY_DIRS} ${humotion_LIBRARY_DIRS})
129

    
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
set_property(TARGET ${PROJECT_NAME} PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
157

    
158

    
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

    
171