update on dbus
[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} -Xlinker -export-dynamic")
17 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic")
18 set(CMAKE_CXX_FLAGS "-g -pipe -g -Wall -W -D_REENTRANT")
19
20 ##todo only when dbus needed!
21 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}")
22
23 set(STD_INCLUDE_DIRS "/usr/include")
24 set(EXECUTABLE_OUTPUT_PATH ../../bin/)
25 set(DOC_OUTPUT_PATH ../../doc/)
26 set(DBUS_FOLDER ${CMAKE_SOURCE_DIR}/../dbusInterfaces)
27 set(DOC_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/../doc/AudioManager)
28 set(DOCUMENT $ENV{gendoc})
29
30 file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
31
32 FIND_PACKAGE(PkgConfig)
33 pkg_check_modules(SQLITE REQUIRED sqlite3)
34 pkg_check_modules(DLT REQUIRED automotive-dlt)
35
36 ##todo: only when dbus is reuqired !
37 find_package (Threads)
38 FIND_PACKAGE(DBUS REQUIRED)
39 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${STD_INCLUDE_DIRS})
40
41 #all source files go here
42 SET(AUDIOMAN_SRCS_CXX
43     main.cpp
44         AudioManagerCore.cpp
45         CommandHandler.cpp
46     CommandReceive.cpp
47     DataBaseHandler.cpp
48     HookEngine.cpp
49     Router.cpp 
50     RoutingReceive.cpp
51     dbusRoothandler.cpp
52 )
53
54 INCLUDE_DIRECTORIES(
55         include
56         ${CMAKE_SOURCE_DIR} 
57         ${STD_INCLUDE_DIRS}
58         ${CMAKE_CURRENT_BINARY_DIR}
59         ${DLT_INCLUDE_DIRS}
60         ${DBUS_INCLUDE_DIR}
61         ${DBUS_ARCH_INCLUDE_DIR}
62 )
63
64
65 ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX})
66
67 ##todo only when dbus is required
68 TARGET_LINK_LIBRARIES(AudioManager 
69         ${SQLITE_LIBRARIES}
70         ${DLT_LIBRARIES}
71         ${DBUS_LIBRARY}
72         ${CMAKE_THREAD_LIBS_INIT}
73 )
74
75 #add a target to generate API documentation with Doxygen
76 find_package(Doxygen)
77 if(DOXYGEN_FOUND)
78 if(DOCUMENT)
79         configure_file(Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile  @ONLY IMMEDIATE)
80         add_custom_target (Docs ALL 
81         COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
82         SOURCES ${PROJECT_BINARY_DIR}/Doxyfile)
83 endif(DOCUMENT)
84 endif(DOXYGEN_FOUND)
85
86
87
88