* finally, first socket test work
[profile/ivi/genivi/genivi-audio-manager.git] / CMakeLists.txt
1  #
2  #  Copyright (C) 2011, BMW AG 
3  # 
4  # AudioManagerDeamon
5  #
6  # @file CMakeLists.txt
7  #
8  # @date: 20.05.2011
9  # @author: Christian Müller (christian.ei.mueller@bmw.de)
10  #
11
12 cmake_minimum_required(VERSION 2.6)
13
14 PROJECT(AudioManagerDeamon)
15
16 OPTION( WITH_DBUS_WRAPPER 
17         "Enable Dbus Wrapper Support" ON )
18
19 OPTION( WITH_SOCKETHANDLER_LOOP 
20         "Enable SocketHandler Support (cannot work with SimpleDBusLoop)" ON )
21
22 OPTION( WITH_SIMPLEDBUS_LOOP 
23         "Enable SimpleDBusLoop (requires DBus_Wrapper,cannot work with SocketHandler)" OFF )
24
25 OPTION( WITH_TESTS
26         "Build together with all available unitTest" ON )
27
28 OPTION( WITH_DOCUMENTATION
29         "Build together with Doxygen Documentation" OFF )
30
31 OPTION( WITH_PLUGIN_COMMAND
32         "Build command pluings" ON)
33
34 OPTION( WITH_PLUGIN_CONTROL
35         "Build control pluing" ON)
36
37 OPTION( WITH_PLUGIN_ROUTING
38         "Build routing pluings" ON)
39
40 OPTION( WITH_MAIN
41         "Build with daemon" ON)
42
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)
47
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)
52
53 SET(PLUGINS_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/plugins)
54
55 SET(DEFAULT_PLUGIN_COMMAND_DIR "${PLUGINS_OUTPUT_PATH}/command")
56 SET(DEFAULT_PLUGIN_ROUTING_DIR "${PLUGINS_OUTPUT_PATH}/routing")
57 SET(CONTROLLER_PLUGIN "${PLUGINS_OUTPUT_PATH}/control/libPluginControlInterface.so")
58
59 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
60 SET(AUDIO_INCLUDES_FOLDER ${CMAKE_SOURCE_DIR}/includes)
61 SET(DOC_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/doc)
62 SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
63 SET(TEST_EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/test)
64 SET(DOXY_FILE ${CMAKE_SOURCE_DIR}/cmake/DoxyFile.in)
65 SET(INTROSPECTION_COMMAND_XML_FILE "${AUDIO_INCLUDES_FOLDER}/dbus/CommandInterface.xml")
66
67 CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/config.cmake ${CMAKE_SOURCE_DIR}/includes/config.h )
68
69 FIND_PACKAGE(PkgConfig)
70 pkg_check_modules(DLT REQUIRED automotive-dlt)
71
72 IF(WITH_DOCUMENTATION)
73         find_package(Doxygen)
74         file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces)
75         configure_file(${DOXY_FILE}  ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile  @ONLY IMMEDIATE)
76         add_custom_target (Interfaces ALL 
77                 COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces
78                 SOURCES ${AUDIO_INCLUDES_FOLDER} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile
79         )
80 ENDIF(WITH_DOCUMENTATION)
81
82 ##global build flags
83 #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -std=c++98")
84
85 if(WITH_PLUGIN_COMMAND)
86         add_subdirectory (PluginCommandInterfaceDbus)
87 endif(WITH_PLUGIN_COMMAND)
88
89 if(WITH_PLUGIN_ROUTING)
90         add_subdirectory (PluginRoutingInterfaceDbus)
91 endif(WITH_PLUGIN_ROUTING)
92
93 if(WITH_PLUGIN_CONTROL)
94         add_subdirectory (PluginControlInterface)
95 endif(WITH_PLUGIN_CONTROL)
96
97 if(WITH_MAIN)
98         add_subdirectory (AudioManagerDaemon)
99 endif(WITH_MAIN)
100
101
102
103