* finalized Router implementation
[profile/ivi/audiomanager.git] / AudioManagerDaemon / 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 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
17 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
18
19 set(DOC_OUTPUT_PATH ${DOC_OUTPUT_PATH}/AudioManager)
20 set(INCLUDES_FOLDER "include")
21
22 pkg_check_modules(SQLITE REQUIRED sqlite3)
23
24 IF(WITH_DBUS_WRAPPER)
25     FIND_PACKAGE(DBUS REQUIRED)
26 ENDIF(WITH_DBUS_WRAPPER)
27
28 SET(AUDIOMAN_SRCS_CXX
29     src/main.cpp
30     src/CommandReceiver.cpp
31     src/CommandSender.cpp
32     src/ControlReceiver.cpp
33     src/ControlSender.cpp
34     src/DatabaseHandler.cpp
35     src/DatabaseObserver.cpp
36     src/RoutingReceiver.cpp
37     src/RoutingSender.cpp
38     src/SocketHandler.cpp
39     src/TelnetServer.cpp
40     src/Router.cpp
41 )
42
43 IF(WITH_DBUS_WRAPPER)
44     SET (AUDIOMAN_SRCS_CXX
45         ${AUDIOMAN_SRCS_CXX}
46         src/DBusWrapper.cpp
47     )
48 ENDIF(WITH_DBUS_WRAPPER)
49
50 IF(WITH_SOCKETHANDLER_LOOP)
51     SET (AUDIOMAN_SRCS_CXX
52         ${AUDIOMAN_SRCS_CXX}
53         src/SocketHandler.cpp
54      )
55 ENDIF(WITH_SOCKETHANDLER_LOOP)
56
57 INCLUDE_DIRECTORIES(    
58         ${CMAKE_SOURCE_DIR} 
59         ${CMAKE_CURRENT_BINARY_DIR}
60         ${DLT_INCLUDE_DIRS}
61         ${AUDIO_INCLUDES_FOLDER}
62         ${INCLUDES_FOLDER}
63 )
64
65 IF(WITH_DBUS_WRAPPER)
66 INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES}
67     ${DBUS_ARCH_INCLUDE_DIR}
68     ${DBUS_INCLUDE_DIR}
69 )
70 ENDIF(WITH_DBUS_WRAPPER)
71
72 ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX})
73
74 IF(WITH_DBUS_WRAPPER)
75 TARGET_LINK_LIBRARIES(AudioManager 
76         ${SQLITE_LIBRARIES}
77         ${DLT_LIBRARIES}
78         ${DBUS_LIBRARY}
79 )
80 ELSE(WITH_DBUS_WRAPPER)
81     TARGET_LINK_LIBRARIES(AudioManager 
82         ${SQLITE_LIBRARIES}
83         ${DLT_LIBRARIES}
84 )
85 ENDIF(WITH_DBUS_WRAPPER)
86
87 IF(WITH_TESTS)
88         add_subdirectory (test)
89 ENDIF(WITH_TESTS)
90
91 IF(WITH_DOCUMENTATION)
92         file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
93         configure_file(${DOXY_FILE}  ${DOC_OUTPUT_PATH}/Doxyfile  @ONLY IMMEDIATE)
94         add_custom_target (Docs ALL 
95                 COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
96                 SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
97         )
98 ENDIF(WITH_DOCUMENTATION)
99
100 INSTALL(TARGETS AudioManager 
101         RUNTIME 
102         DESTINATION bin
103         PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
104         COMPONENT bin
105 )
106
107 INSTALL(DIRECTORY "${AUDIO_INCLUDES_FOLDER}/" 
108         DESTINATION include
109         COMPONENT dev
110 )
111
112 SET(ADD_DEPEND "sqlite3(>=3.6.22)" "dlt" "libdbus-1-3(>=1.2.16)")
113 set_property(GLOBAL APPEND PROPERTY bin_prop "${ADD_DEPEND}")
114
115 SET(ADD_DEPEND "audiomanager-bin" "sqlite3(>=3.6.22)" "dlt" "libdbus-1-3(>=1.2.16)")
116 set_property(GLOBAL APPEND PROPERTY dev_prop "${ADD_DEPEND}")
117