2 # Copyright (C) 2011, BMW AG
9 # @author: Christian Müller (christian.ei.mueller@bmw.de)
12 cmake_minimum_required(VERSION 2.6)
14 PROJECT(AudioManagerDeamon)
16 OPTION( WITH_DBUS_WRAPPER
17 "Enable Dbus Wrapper Support" ON )
19 OPTION( WITH_SOCKETHANDLER_LOOP
20 "Enable SocketHandler Support (cannot work with SimpleDBusLoop)" ON )
22 OPTION( WITH_SIMPLEDBUS_LOOP
23 "Enable SimpleDBusLoop (requires DBus_Wrapper,cannot work with SocketHandler)" OFF )
26 "Build together with all available unitTest" ON )
28 OPTION( WITH_DOCUMENTATION
29 "Build together with Doxygen Documentation" OFF )
31 OPTION( WITH_PLUGIN_COMMAND
32 "Build command pluings" ON)
34 OPTION( WITH_PLUGIN_CONTROL
35 "Build control pluing" ON)
37 OPTION( WITH_PLUGIN_ROUTING
38 "Build routing pluings" ON)
41 "Build with daemon" ON)
43 #Can be changed via passing -DDBUS_SERVICE_PREFIX="XXX" to cmake
44 IF(NOT DEFINED DBUS_SERVICE_PREFIX)
45 SET( DBUS_SERVICE_PREFIX "org.genivi.audiomanager\0" )
46 ENDIF(NOT DEFINED DBUS_SERVICE_PREFIX)
48 #Can be changed via passing -DDBUS_SERVICE_OBJECT_PATH="XXX" to cmake
49 IF(NOT DEFINED DBUS_SERVICE_OBJECT_PATH)
50 SET( DBUS_SERVICE_OBJECT_PATH "/org/genivi/audiomanager\0" )
51 ENDIF(NOT DEFINED DBUS_SERVICE_OBJECT_PATH)
53 SET(DLT_CONTEXT AudioManager)
54 SET(PLUGINS_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/plugins)
56 SET(DEFAULT_PLUGIN_COMMAND_DIR "${PLUGINS_OUTPUT_PATH}/command")
57 SET(DEFAULT_PLUGIN_ROUTING_DIR "${PLUGINS_OUTPUT_PATH}/routing")
58 SET(CONTROLLER_PLUGIN "${PLUGINS_OUTPUT_PATH}/control/libPluginControlInterface.so")
60 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
61 SET(AUDIO_INCLUDES_FOLDER ${CMAKE_SOURCE_DIR}/includes)
62 SET(DOC_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/doc)
63 SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
64 SET(TEST_EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/test)
65 SET(DOXY_FILE ${CMAKE_SOURCE_DIR}/cmake/DoxyFile.in)
66 SET(INTROSPECTION_COMMAND_XML_FILE "${AUDIO_INCLUDES_FOLDER}/dbus/CommandInterface.xml")
68 CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/config.cmake ${CMAKE_SOURCE_DIR}/includes/config.h )
70 FIND_PACKAGE(PkgConfig)
71 pkg_check_modules(DLT REQUIRED automotive-dlt)
73 IF(WITH_DOCUMENTATION)
75 file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces)
76 configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile @ONLY IMMEDIATE)
77 add_custom_target (Interfaces ALL
78 COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces
79 SOURCES ${AUDIO_INCLUDES_FOLDER} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile
81 ENDIF(WITH_DOCUMENTATION)
84 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -std=c++98")
86 if(WITH_PLUGIN_COMMAND)
87 add_subdirectory (PluginCommandInterfaceDbus)
88 endif(WITH_PLUGIN_COMMAND)
90 if(WITH_PLUGIN_ROUTING)
91 add_subdirectory (PluginRoutingInterfaceDbus)
92 add_subdirectory (PluginRoutingInterfaceAsync)
93 endif(WITH_PLUGIN_ROUTING)
95 if(WITH_PLUGIN_CONTROL)
96 add_subdirectory (PluginControlInterface)
97 endif(WITH_PLUGIN_CONTROL)
100 add_subdirectory (AudioManagerDaemon)