summaryrefslogtreecommitdiff
path: root/PluginRoutingInterfacePulse/CMakeLists.txt
blob: 1a15b404f428878463caffa9f23b14764388548a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
############################################################################
# SPDX license identifier: MPL-2.0
#
# Copyright (C) 2012-2014, Wind River Systems
# Copyright (C) 2014, GENIVI Alliance
#
# This file is part of Pulse Audio Interface Routing Plugin.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License (MPL), v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# For further information see http://www.genivi.org/.
#
# List of changes:
#
# 21.08.2014, Adrian Scarlat, First version of the code;
#                             Porting code from AM ver1.x to AM ver3.0;
#                             Added Copyright and License information;
############################################################################

cmake_minimum_required(VERSION 2.6)

PROJECT(PluginRoutingInterfacePULSE)

set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
FILE(GLOB pulseConf "${CMAKE_CURRENT_SOURCE_DIR}/README*")
FIND_PACKAGE(PkgConfig)

OPTION( WITH_DOCUMENTATION
        "Build together with Doxygen Documentation" OFF )

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
SET(PLUGINS_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/plugins)
set(LIBRARY_OUTPUT_PATH ${PLUGINS_OUTPUT_PATH}/routing)
set(DOC_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/doc/RoutingPlugin)
set(INCLUDES_FOLDER "include")
SET(LIB_INSTALL_SUFFIX "audioManager")

FIND_PACKAGE(DBUS REQUIRED)
FIND_PATH(AUDIO_INCLUDE_FOLDER audiomanagertypes.h /usr/include)

if(DEFINED AUDIO_INCLUDE_FOLDER)
        message(STATUS "Found AudioManager include: ${AUDIO_INCLUDE_FOLDER}")
else(DEFINED AUDIO_INCLUDE_FOLDER)
        message(STATUS "Did not found AudioManager include!")
endif(DEFINED AUDIO_INCLUDE_FOLDER)

FILE(READ "${AUDIO_INCLUDE_FOLDER}/routing/IAmRoutingSend.h" VERSION_BUFFER LIMIT 6000)
STRING(REGEX MATCH "RoutingSendVersion*.[^0-9]*[0-9]" LIB_INTERFACE_VERSION_STRING ${VERSION_BUFFER})
STRING(REGEX REPLACE "[^0-9]" "" LIB_INTERFACE_VERSION ${LIB_INTERFACE_VERSION_STRING})
MESSAGE(STATUS "Building against routing interface version ${LIB_INTERFACE_VERSION}")

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
FIND_PACKAGE(DBUS REQUIRED)

INCLUDE_DIRECTORIES(
        ${CMAKE_SOURCE_DIR}
        ${CMAKE_CURRENT_BINARY_DIR}
        ${DBUS_INCLUDE_DIR}
        ${DBUS_ARCH_INCLUDE_DIR}
        ${AUDIO_INCLUDE_FOLDER}
        ${INCLUDES_FOLDER}
)

# all source files go here
file(GLOB PLUGINDBUS_SRCS_CXX "src/*.cpp")

add_library(PluginRoutingInterfacePULSE SHARED ${PLUGINDBUS_SRCS_CXX})

TARGET_LINK_LIBRARIES(PluginRoutingInterfacePULSE
    pulse
    ${DLT_LIBRARIES}
    ${DBUS_LIBRARY}
)

IF(WITH_DOCUMENTATION)
        file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
        configure_file(${DOXY_FILE}  ${DOC_OUTPUT_PATH}/Doxyfile  @ONLY IMMEDIATE)
        add_custom_target (PluginRoutingInterfacePULSEDocs ALL
                COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
                SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
        )
ENDIF(WITH_DOCUMENTATION)

INSTALL(TARGETS PluginRoutingInterfacePULSE
        DESTINATION "lib/${LIB_INSTALL_SUFFIX}/routing"
        PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
        COMPONENT sampleplugins
)

INSTALL(FILES data/libPluginRoutingInterfacePULSE.conf
        DESTINATION "lib/${LIB_INSTALL_SUFFIX}/routing"
        PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
        COMPONENT sampleplugins
)

# Uncomment the following five lines bellow (that start with #CONFIGURE_FILE...)
# to make those files available in build environment;
# For meta-ivi deployment purposes leave them commented.

#CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/PluginRoutingInterfacePulse/data/libPluginRoutingInterfacePULSE.conf ${PLUGINS_OUTPUT_PATH}/routing/libPluginRoutingInterfacePULSE.conf )