summaryrefslogtreecommitdiff
path: root/AudioManagerCore/CMakeLists.txt
blob: 2a553ba48249bbda15b053f09e92624b8228080b (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
104
105
106
107
108
109
# Copyright (C) 2012, BMW AG
#
# This file is part of GENIVI Project AudioManager.
# 
# Contributions are licensed to the GENIVI Alliance under one or more
# Contribution License Agreements.
# 
# copyright
# This Source Code Form is subject to the terms of the
# Mozilla Public License, 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/.
# 
# author Christian Linke, christian.linke@bmw.de BMW 2011,2012
#
# For further information see http://www.genivi.org/.
#

cmake_minimum_required(VERSION 3.0)

project (AudioManagerCore LANGUAGES CXX VERSION ${DAEMONVERSION})

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")

SET(AUDIOMANAGER_CORE_INCLUDE
	${AUDIOMANAGER_CORE}/include
	${AUDIOMANAGER_UTILITIES_INCLUDE}
	CACHE INTERNAL "AUDIOMANAGER_CORE_INCLUDE directories" FORCE)

SET(AUDIO_MANAGER_CORE_LIBS
	${AUDIO_MANAGER_UTILITIES_LIBS}
	AudioManagerUtilities
	CACHE INTERNAL "AUDIO_MANAGER_CORE_LIBS libs" FORCE)

IF (WITH_SHARED_CORE)
    SET(LIBRARY_TYPE SHARED)
ELSE (WITH_SHARED_CORE)
    SET(LIBRARY_TYPE STATIC)
ENDIF (WITH_SHARED_CORE)

set(AUDIOMAN_CORE_SRCS_CXX
    src/CAmCommandReceiver.cpp
    src/CAmCommandSender.cpp
    src/CAmControlReceiver.cpp
    src/CAmControlSender.cpp
    src/CAmDatabaseObserver.cpp
    src/CAmRoutingReceiver.cpp
    src/CAmRoutingSender.cpp
    src/CAmRouter.cpp
    src/CAmLog.cpp
    src/CAmDatabaseHandlerMap.cpp
)

if(WITH_TELNET)
	set (AUDIOMAN_CORE_SRCS_CXX
		${AUDIOMAN_CORE_SRCS_CXX}
		src/CAmTelnetServer.cpp
		src/CAmTelnetMenuHelper.cpp)		
endif(WITH_TELNET)

INCLUDE_DIRECTORIES(${AUDIOMANAGER_CORE_INCLUDE})

ADD_LIBRARY(AudioManagerCore ${LIBRARY_TYPE} ${AUDIOMAN_CORE_SRCS_CXX})

TARGET_LINK_LIBRARIES(AudioManagerCore ${AUDIO_MANAGER_CORE_LIBS} )

ADD_DEPENDENCIES(AudioManagerCore AudioManagerUtilities)

set_target_properties(AudioManagerCore PROPERTIES VERSION ${AudioManagerCore_VERSION} SOVERSION ${AudioManagerCore_VERSION_MAJOR})


IF (WITH_SHARED_CORE)
	INSTALL(TARGETS AudioManagerCore
		LIBRARY DESTINATION lib
		PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ
		COMPONENT bin)
ELSE (WITH_SHARED_CORE)
	INSTALL(TARGETS AudioManagerCore
	        ARCHIVE DESTINATION lib
	        COMPONENT dev)
ENDIF (WITH_SHARED_CORE)

configure_file( ${CMAKE_SOURCE_DIR}/cmake/audiomanagercore.pc.in ${CMAKE_BINARY_DIR}/audiomanagercore.pc @ONLY )       
install(FILES ${CMAKE_BINARY_DIR}/audiomanagercore.pc DESTINATION lib/pkgconfig COMPONENT devel) 

configure_package_config_file ( 
	${CMAKE_SOURCE_DIR}/cmake/AudioManagerCoreConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerCoreConfig.cmake
	INSTALL_DESTINATION lib/${LIB_INSTALL_SUFFIX}/cmake
	PATH_VARS AUDIO_INCLUDE_FOLDER )
							  
write_basic_package_version_file(
	${CMAKE_CURRENT_BINARY_DIR}/AudioManagerCoreConfigVersion.cmake
	VERSION ${DAEMONVERSION}
	COMPATIBILITY SameMajorVersion )	
	
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerCoreConfig.cmake
	  ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerCoreConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/cmake/AudioManagerCore-${DAEMONVERSION})

INSTALL(DIRECTORY "${AUDIOMANAGER_CORE}/include/" 
        DESTINATION ${CMAKE_INSTALL_PREFIX}/include/${LIB_INSTALL_SUFFIX}/AudioManagerCore
        COMPONENT dev)

if(WITH_TESTS)
	add_subdirectory (test)
endif(WITH_TESTS)