- first attempt to remove QT
[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 "-g -pipe -g -Wall -W -D_REENTRANT")
17
18 set(STD_INCLUDE_DIRS "/usr/include")
19 set(EXECUTABLE_OUTPUT_PATH ../../bin/)
20 set(DOC_OUTPUT_PATH ../../doc/)
21 set(DBUS_FOLDER ${CMAKE_SOURCE_DIR}/../dbusInterfaces)
22 set(DOC_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/../doc/AudioManager)
23 set(DOCUMENT $ENV{gendoc})
24
25 cmake_policy(SET CMP0015 NEW)
26
27 file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
28
29 FIND_PACKAGE(PkgConfig)
30 pkg_check_modules(SQLITE REQUIRED sqlite3)
31 pkg_check_modules(DLT REQUIRED automotive-dlt)
32 pkg_check_modules(JACK REQUIRED jack)
33
34 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR} ${STD_INCLUDE_DIRS})
35
36 #all source files go here
37 SET(AUDIOMAN_SRCS_CXX
38         AudioManagerCore.cpp
39     RoutingReceive.cpp
40     Router.cpp 
41     DataBaseHandler.cpp
42     main.cpp
43     DBusCommandInterface.cpp
44     HookEngine.cpp
45     PluginHandler.cpp
46 )
47
48 INCLUDE_DIRECTORIES(
49         include
50         ${CMAKE_SOURCE_DIR} 
51         ${STD_INCLUDE_DIRS}
52         ${JACK_INCLUDE_DIRS}
53         ${CMAKE_CURRENT_BINARY_DIR}
54         ${DBUS_FOLDER}
55         ${DLT_INCLUDE_DIRS}
56 )
57
58 LINK_DIRECTORIES(
59         ${LINK_DIRECTORIES}
60         ${PULSE_LIBRARY_DIRS}
61         ${JACK_LIBRARY_DIRS}
62         ${DBUS_FOLDER}
63         ${PROJECT_BINARY_DIR}/../plugins
64 )
65
66 ADD_EXECUTABLE(AudioManager ${AUDIOMAN_SRCS_CXX})
67
68 TARGET_LINK_LIBRARIES(AudioManager 
69         ${SQLITE_LIBRARIES}
70         ${DLT_LIBRARIES}
71 )
72
73 add_custom_command(
74         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} 
75         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/DBusCommand_.h ${CMAKE_CURRENT_BINARY_DIR}/DBusCommand.cpp
76         COMMAND qdbusxml2cpp ARGS -c DBusCommand -a DBusCommand.h:DBusCommand.cpp ${DBUS_FOLDER}/DBusAudioManager.xml
77         MAIN_DEPENDENCY ${DBUS_FOLDER}/DBusAudioManager.xml
78 )
79
80
81 add_custom_command(
82         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
83         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/DBusCommand.h
84         COMMAND sed ARGS -i  '1i \#include \"../../dbusInterfaces/DBusTypes.h\"' DBusCommand.h
85         MAIN_DEPENDENCY ${CMAKE_CURRENT_BINARY_DIR}/DBusCommand_.h
86 )
87
88 #add a target to generate API documentation with Doxygen
89 find_package(Doxygen)
90 if(DOXYGEN_FOUND)
91 if(DOCUMENT)
92         configure_file(Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile  @ONLY IMMEDIATE)
93         add_custom_target (Docs ALL 
94         COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
95         SOURCES ${PROJECT_BINARY_DIR}/Doxyfile)
96 endif(DOCUMENT)
97 endif(DOXYGEN_FOUND)
98
99
100
101