Added 'Dump' method to the database handler and to the telnet server (Info -> Dump...
[profile/ivi/genivi/genivi-audio-manager.git] / AudioManagerDaemon / CMakeLists.txt
1 # Copyright (C) 2012, BMW AG
2 #
3 # This file is part of GENIVI Project AudioManager.
4
5 # Contributions are licensed to the GENIVI Alliance under one or more
6 # Contribution License Agreements.
7
8 # copyright
9 # This Source Code Form is subject to the terms of the
10 # Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
11 # this file, You can obtain one at http://mozilla.org/MPL/2.0/.
12
13 # author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
14 #
15 # For further information see http://www.genivi.org/.
16 #
17
18 cmake_minimum_required(VERSION 2.6)
19
20 PROJECT(AudioManagerDeamon)
21
22 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
23 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
24
25 set(DOC_OUTPUT_PATH ${DOC_OUTPUT_PATH}/AudioManager)
26 set(INCLUDE_FOLDER "include")
27
28 IF (WITH_DATABASE_STORAGE)
29     pkg_check_modules(SQLITE REQUIRED sqlite3)
30 ENDIF (WITH_DATABASE_STORAGE)
31
32 IF (WITH_SYSTEMD_WATCHDOG)
33         pkg_check_modules(SYSTEMD libsystemd-daemon>=44)
34         IF (SYSTEMD_FOUND)
35                 message(STATUS "Found libsystemd-daemon, version: ${SYSTEMD_VERSION}")
36         ELSE (SYSTEMD_FOUND)
37                 message(STATUS "Did not find libsystemd-daemon, using own lib")
38         ENDIF(SYSTEMD_FOUND)
39 ENDIF (WITH_SYSTEMD_WATCHDOG)
40
41 IF(WITH_DBUS_WRAPPER)
42     FIND_PACKAGE(DBUS REQUIRED)
43 ENDIF(WITH_DBUS_WRAPPER)
44
45 FIND_PACKAGE(NSM REQUIRED)
46
47 SET(AUDIOMAN_SRCS_CXX
48     src/main.cpp
49     src/CAmCommandReceiver.cpp
50     src/CAmCommandSender.cpp
51     src/CAmControlReceiver.cpp
52     src/CAmControlSender.cpp
53     src/CAmDatabaseObserver.cpp
54     src/CAmRoutingReceiver.cpp
55     src/CAmRoutingSender.cpp
56     src/CAmRouter.cpp
57     src/CAmSocketHandler.cpp
58     src/CAmDltWrapper.cpp
59 )
60  
61
62 IF(WITH_TELNET)
63         SET (AUDIOMAN_SRCS_CXX
64                 ${AUDIOMAN_SRCS_CXX}
65                 src/CAmTelnetServer.cpp
66                 src/CAmTelnetMenuHelper.cpp
67      )          
68 ENDIF(WITH_TELNET)              
69
70 IF(WITH_SYSTEMD_WATCHDOG)
71         SET (AUDIOMAN_SRCS_CXX
72                 ${AUDIOMAN_SRCS_CXX}
73                 src/CAmWatchdog.cpp
74      )          
75 ENDIF(WITH_SYSTEMD_WATCHDOG)
76
77 IF (NOT SYSTEMD_FOUND)
78         SET (AUDIOMAN_SRCS_CXX
79                 ${AUDIOMAN_SRCS_CXX}
80                 src/sd-daemon.c
81         )
82 ENDIF (NOT SYSTEMD_FOUND)
83
84 IF(WITH_DBUS_WRAPPER)
85     SET (AUDIOMAN_SRCS_CXX
86         ${AUDIOMAN_SRCS_CXX}
87         src/CAmDbusWrapper.cpp
88     )
89 ENDIF(WITH_DBUS_WRAPPER)
90
91 IF(WITH_NSM)
92     SET (AUDIOMAN_SRCS_CXX
93         ${AUDIOMAN_SRCS_CXX}
94         src/CAmNodeStateCommunicator.cpp
95     )
96 ENDIF(WITH_NSM)
97
98 IF(WITH_DATABASE_STORAGE)
99     SET (AUDIOMAN_SRCS_CXX
100         ${AUDIOMAN_SRCS_CXX}
101         src/CAmDatabaseHandler.cpp
102     )
103 ELSE(WITH_DATABASE_STORAGE)
104     SET (AUDIOMAN_SRCS_CXX
105         ${AUDIOMAN_SRCS_CXX}
106         src/CAmMapHandler.cpp
107     )
108 ENDIF(WITH_DATABASE_STORAGE)
109
110 INCLUDE_DIRECTORIES(    
111         ${CMAKE_SOURCE_DIR} 
112         ${CMAKE_CURRENT_BINARY_DIR}     
113         ${AUDIO_INCLUDE_FOLDER}
114         ${PROJECT_INCLUDE_FOLDER}
115         ${INCLUDE_FOLDER}
116         ${NSM_INCLUDE_DIR}
117 )
118
119 IF(WITH_DLT)
120 INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES}
121     ${DLT_INCLUDE_DIRS}
122 )
123 ENDIF(WITH_DLT)
124
125 IF(WITH_DBUS_WRAPPER)
126 INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES}
127     ${DBUS_ARCH_INCLUDE_DIR}
128     ${DBUS_INCLUDE_DIR}
129 )
130 ENDIF(WITH_DBUS_WRAPPER)
131
132 ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX})
133
134 IF(WITH_DBUS_WRAPPER)
135     TARGET_LINK_LIBRARIES(AudioManager 
136         ${SQLITE_LIBRARIES}
137         ${CMAKE_DL_LIBS}
138         ${DBUS_LIBRARY}
139         rt
140     )
141 ELSE(WITH_DBUS_WRAPPER)
142     TARGET_LINK_LIBRARIES(AudioManager 
143         ${SQLITE_LIBRARIES}
144         ${CMAKE_DL_LIBS}
145         rt
146     )
147 ENDIF(WITH_DBUS_WRAPPER)
148
149 IF(WITH_DLT)
150     TARGET_LINK_LIBRARIES(AudioManager
151         ${DLT_LIBRARIES} 
152     )
153 ENDIF(WITH_DLT) 
154
155 IF (SYSTEMD_FOUND)
156         TARGET_LINK_LIBRARIES(AudioManager
157         ${SYSTEMD_LIBRARIES} 
158         )
159 ENDIF (SYSTEMD_FOUND)
160
161 #IF(WITH_DOCUMENTATION)
162 #       file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
163 #       configure_file(${DOXY_FILE}  ${DOC_OUTPUT_PATH}/Doxyfile  @ONLY IMMEDIATE)
164 #       add_custom_target (Docs ALL 
165 #               COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
166 #               SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
167 #       )
168 #ENDIF(WITH_DOCUMENTATION)
169
170 INSTALL(TARGETS AudioManager 
171         RUNTIME 
172         DESTINATION bin
173         PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
174         COMPONENT bin
175 )
176
177 INSTALL(DIRECTORY "${AUDIO_INCLUDE_FOLDER}/" 
178         DESTINATION include
179         COMPONENT dev
180 )
181
182 IF(WITH_NSM)
183     IF(USE_BUILD_LIBS) 
184         SET(NSM_INTROSPECTION_FILE ${EXECUTABLE_OUTPUT_PATH}/LifeCycleConsumer.xml)
185             execute_process(
186             COMMAND mkdir -p "${CMAKE_SOURCE_DIR}/bin"
187             COMMAND cp "${CMAKE_SOURCE_DIR}/cmake/LifecycleConsumer.xml" ${NSM_INTROSPECTION_FILE})
188     ELSE(USE_BUILD_LIBS) 
189         SET(NSM_INTROSPECTION_FILE ${CMAKE_INSTALL_PREFIX}/share/audiomanager/LifeCycleConsumer.xml)
190         INSTALL(
191             FILES ${CMAKE_SOURCE_DIR}/cmake/LifecycleConsumer.xml
192             DESTINATION "${NSM_INTROSPECTION_FILE}"
193             COMPONENT bin)
194     ENDIF(USE_BUILD_LIBS)
195 ENDIF(WITH_NSM)
196
197 CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/config.cmake ${CMAKE_SOURCE_DIR}/include/config.h )
198
199 IF(WITH_TESTS)
200         add_subdirectory (test)
201 ENDIF(WITH_TESTS)
202
203 # General packet dependency
204 IF(WITH_DATABASE_STORAGE)
205     SET(ADD_DEPEND_BIN_PROP "sqlite3(>=3.6.22)")
206 ENDIF(WITH_DATABASE_STORAGE)
207
208 # Optional packet dependency
209 IF(WITH_DLT)
210     SET(ADD_DEPEND_BIN_PROP ${ADD_DEPEND_BIN_PROP} "dlt")
211 ENDIF(WITH_DLT)
212
213 IF(WITH_DBUS_WRAPPER)
214     SET(ADD_DEPEND_BIN_PROP ${ADD_DEPEND_BIN_PROP} "libdbus-1-3(>=1.2.16)")
215 ENDIF()
216
217 # Additional Dev packet dependency
218 SET(ADD_DEPEND_DEV_PROP "audiomanager-bin" ${ADD_DEPEND_BIN_PROP})
219
220 MESSAGE(STATUS "bin packet dependency: ${ADD_DEPEND_BIN_PROP}")
221 MESSAGE(STATUS "dev dependency: ${ADD_DEPEND_DEV_PROP}")
222
223 set_property(GLOBAL APPEND PROPERTY bin_prop "${ADD_DEPEND_BIN_PROP}")
224 set_property(GLOBAL APPEND PROPERTY dev_prop "${ADD_DEPEND_DEV_PROP}")
225
226
227