1 # Copyright (C) 2012, BMW AG
3 # This file is part of GENIVI Project AudioManager.
5 # Contributions are licensed to the GENIVI Alliance under one or more
6 # Contribution License Agreements.
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/.
13 # author Christian Mueller, christian.ei.mueller@bmw.de BMW 2011,2012
15 # For further information see http://www.genivi.org/.
18 cmake_minimum_required(VERSION 2.6)
20 PROJECT(AudioManagerDeamon)
22 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
23 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
25 set(DOC_OUTPUT_PATH ${DOC_OUTPUT_PATH}/AudioManager)
26 set(INCLUDE_FOLDER "include")
28 IF (WITH_DATABASE_STORAGE)
29 pkg_check_modules(SQLITE REQUIRED sqlite3)
30 ENDIF (WITH_DATABASE_STORAGE)
32 IF (WITH_SYSTEMD_WATCHDOG)
33 pkg_check_modules(SYSTEMD libsystemd-daemon>=44)
35 message(STATUS "Found libsystemd-daemon, version: ${SYSTEMD_VERSION}")
37 message(STATUS "Did not find libsystemd-daemon, using own lib")
39 ENDIF (WITH_SYSTEMD_WATCHDOG)
42 FIND_PACKAGE(DBUS REQUIRED)
43 ENDIF(WITH_DBUS_WRAPPER)
45 FIND_PACKAGE(NSM REQUIRED)
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
57 src/CAmSocketHandler.cpp
63 SET (AUDIOMAN_SRCS_CXX
65 src/CAmTelnetServer.cpp
66 src/CAmTelnetMenuHelper.cpp
70 IF(WITH_SYSTEMD_WATCHDOG)
71 SET (AUDIOMAN_SRCS_CXX
75 ENDIF(WITH_SYSTEMD_WATCHDOG)
77 IF (NOT SYSTEMD_FOUND)
78 SET (AUDIOMAN_SRCS_CXX
82 ENDIF (NOT SYSTEMD_FOUND)
85 SET (AUDIOMAN_SRCS_CXX
87 src/CAmDbusWrapper.cpp
89 ENDIF(WITH_DBUS_WRAPPER)
92 SET (AUDIOMAN_SRCS_CXX
94 src/CAmNodeStateCommunicator.cpp
98 IF(WITH_DATABASE_STORAGE)
99 SET (AUDIOMAN_SRCS_CXX
101 src/CAmDatabaseHandler.cpp
103 ELSE(WITH_DATABASE_STORAGE)
104 SET (AUDIOMAN_SRCS_CXX
106 src/CAmMapHandler.cpp
108 ENDIF(WITH_DATABASE_STORAGE)
112 ${CMAKE_CURRENT_BINARY_DIR}
113 ${AUDIO_INCLUDE_FOLDER}
114 ${PROJECT_INCLUDE_FOLDER}
120 INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES}
125 IF(WITH_DBUS_WRAPPER)
126 INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES}
127 ${DBUS_ARCH_INCLUDE_DIR}
130 ENDIF(WITH_DBUS_WRAPPER)
132 ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX})
134 IF(WITH_DBUS_WRAPPER)
135 TARGET_LINK_LIBRARIES(AudioManager
141 ELSE(WITH_DBUS_WRAPPER)
142 TARGET_LINK_LIBRARIES(AudioManager
147 ENDIF(WITH_DBUS_WRAPPER)
150 TARGET_LINK_LIBRARIES(AudioManager
156 TARGET_LINK_LIBRARIES(AudioManager
159 ENDIF (SYSTEMD_FOUND)
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
168 #ENDIF(WITH_DOCUMENTATION)
170 INSTALL(TARGETS AudioManager
173 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
177 INSTALL(DIRECTORY "${AUDIO_INCLUDE_FOLDER}/"
184 SET(NSM_INTROSPECTION_FILE ${EXECUTABLE_OUTPUT_PATH}/LifeCycleConsumer.xml)
186 COMMAND mkdir -p "${CMAKE_SOURCE_DIR}/bin"
187 COMMAND cp "${CMAKE_SOURCE_DIR}/cmake/LifecycleConsumer.xml" ${NSM_INTROSPECTION_FILE})
189 SET(NSM_INTROSPECTION_FILE ${CMAKE_INSTALL_PREFIX}/share/audiomanager/LifeCycleConsumer.xml)
191 FILES ${CMAKE_SOURCE_DIR}/cmake/LifecycleConsumer.xml
192 DESTINATION "${NSM_INTROSPECTION_FILE}"
194 ENDIF(USE_BUILD_LIBS)
197 CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/config.cmake ${CMAKE_SOURCE_DIR}/include/config.h )
200 add_subdirectory (test)
203 # General packet dependency
204 IF(WITH_DATABASE_STORAGE)
205 SET(ADD_DEPEND_BIN_PROP "sqlite3(>=3.6.22)")
206 ENDIF(WITH_DATABASE_STORAGE)
208 # Optional packet dependency
210 SET(ADD_DEPEND_BIN_PROP ${ADD_DEPEND_BIN_PROP} "dlt")
213 IF(WITH_DBUS_WRAPPER)
214 SET(ADD_DEPEND_BIN_PROP ${ADD_DEPEND_BIN_PROP} "libdbus-1-3(>=1.2.16)")
217 # Additional Dev packet dependency
218 SET(ADD_DEPEND_DEV_PROP "audiomanager-bin" ${ADD_DEPEND_BIN_PROP})
220 MESSAGE(STATUS "bin packet dependency: ${ADD_DEPEND_BIN_PROP}")
221 MESSAGE(STATUS "dev dependency: ${ADD_DEPEND_DEV_PROP}")
223 set_property(GLOBAL APPEND PROPERTY bin_prop "${ADD_DEPEND_BIN_PROP}")
224 set_property(GLOBAL APPEND PROPERTY dev_prop "${ADD_DEPEND_DEV_PROP}")