# Copyright (C) 2015, ADIT GmbH # # 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 Jens Lorenz, jens.lorenz@de.adit-jv.com ADIT,2015 # # For further information see http://www.genivi.org/. # CMAKE_MINIMUM_REQUIRED(VERSION 3.0) PROJECT(AudioManagerUtilities LANGUAGES C CXX VERSION ${DAEMONVERSION}) FIND_PACKAGE(Threads REQUIRED) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") SET(AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE "") SET(AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES "") SET(AUDIO_MANAGER_UTILITIES_LIBS ${CMAKE_DL_LIBS} CACHE INTERNAL "AUDIO_MANAGER_UTILITIES_LIBS libs" FORCE) IF (WITH_SHARED_UTILITIES) SET(LIBRARY_TYPE SHARED) ELSE (WITH_SHARED_UTILITIES) SET(LIBRARY_TYPE STATIC) ENDIF (WITH_SHARED_UTILITIES) SET(AUDIO_MANAGER_UTILITIES_SRCS_CXX src/CAmCommandLineSingleton.cpp src/CAmDltWrapper.cpp src/CAmSocketHandler.cpp) if(WITH_SYSTEMD_WATCHDOG) pkg_check_modules(SYSTEMD REQUIRED "libsystemd >= 44") message(STATUS "Found libsystemd-daemon, version: ${SYSTEMD_VERSION}") set (AUDIO_MANAGER_UTILITIES_LIBS ${AUDIO_MANAGER_UTILITIES_LIBS} ${SYSTEMD_LIBRARIES} CACHE INTERNAL "AUDIO_MANAGER_UTILITIES_LIBS libs" FORCE) set(AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES ${AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES} ${SYSTEMD_LIBRARY_DIRS}) set(AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE ${AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE} ${SYSTEMD_INCLUDEDIR}) set (AUDIO_MANAGER_UTILITIES_SRCS_CXX ${AUDIO_MANAGER_UTILITIES_SRCS_CXX} src/CAmWatchdog.cpp) endif(WITH_SYSTEMD_WATCHDOG) IF (WITH_DBUS_WRAPPER) pkg_check_modules (DBUS REQUIRED "dbus-1 >= 1.4") set(AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE ${AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE} ${DBUS_INCLUDE_DIRS}) set (AUDIO_MANAGER_UTILITIES_LIBS ${AUDIO_MANAGER_UTILITIES_LIBS} ${DBUS_LIBRARIES} CACHE INTERNAL "AUDIO_MANAGER_UTILITIES_LIBS libs" FORCE) set(AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES ${AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES} ${DBUS_LIBRARY_DIRS}) set(AUDIO_MANAGER_UTILITIES_SRCS_CXX ${AUDIO_MANAGER_UTILITIES_SRCS_CXX} src/CAmDbusWrapper.cpp) ENDIF (WITH_DBUS_WRAPPER) IF (WITH_CAPI_WRAPPER) pkg_check_modules(COMMONAPI REQUIRED "CommonAPI >= 3.1.5") set(AUDIO_MANAGER_UTILITIES_LIBS ${AUDIO_MANAGER_UTILITIES_LIBS} ${COMMONAPI_LIBRARIES} ${COMMONAPI_DBUS_LIBRARIES} CACHE INTERNAL "AUDIO_MANAGER_UTILITIES_LIBS libs" FORCE) set(AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES ${AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES} ${COMMONAPI_LIBRARY_DIRS} ${COMMONAPI_DBUS_LIBRARY_DIRS}) set(AUDIO_MANAGER_UTILITIES_SRCS_CXX ${AUDIO_MANAGER_UTILITIES_SRCS_CXX} src/CAmCommonAPIWrapper.cpp) set(AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE ${AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE} ${COMMONAPI_INCLUDE_DIRS}) ENDIF (WITH_CAPI_WRAPPER) IF (WITH_DLT) pkg_check_modules(DLT REQUIRED "automotive-dlt >= 2.2.0") add_definitions(${DLT_CFLAGS_OTHER}) set(AUDIO_MANAGER_UTILITIES_LIBS ${AUDIO_MANAGER_UTILITIES_LIBS} ${DLT_LIBRARIES} CACHE INTERNAL "AUDIO_MANAGER_UTILITIES_LIBS libs" FORCE) set(AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES ${AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES} ${DLT_LIBRARY_DIRS}) SET(AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE ${AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE} ${DLT_INCLUDE_DIRS}) endif (WITH_DLT) SET(AUDIOMANAGER_UTILITIES_INCLUDE ${AUDIOMANAGER_UTILITIES}/include ${AUDIO_INCLUDE_FOLDER} ${TCLAP_INCLUDE_DIR} ${AUDIOMANAGER_INCLUDE_FOLDER} ${AUDIOMANAGER_UTILITIES_EXTERNAL_INCLUDE} CACHE INTERNAL "AUDIOMANAGER_INCLUDE directories" FORCE) SET(AUDIOMANAGER_UTILITIES_LIB_DIRECTORIES ${AUDIOMANAGER_UTILITIES_EXTERNAL_LIB_DIRECTORIES} CACHE INTERNAL "AUDIOMANAGER_UTILITIES_LIB_DIRECTORIES directories" FORCE) INCLUDE_DIRECTORIES(${AUDIOMANAGER_UTILITIES_INCLUDE}) LINK_DIRECTORIES(${AUDIOMANAGER_UTILITIES_LIB_DIRECTORIES}) ADD_LIBRARY(AudioManagerUtilities ${LIBRARY_TYPE} ${AUDIO_MANAGER_UTILITIES_SRCS_CXX}) TARGET_LINK_LIBRARIES(AudioManagerUtilities ${AUDIO_MANAGER_UTILITIES_LIBS} ${CMAKE_THREAD_LIBS_INIT}) set_target_properties(AudioManagerUtilities PROPERTIES VERSION ${AudioManagerUtilities_VERSION} SOVERSION ${AudioManagerUtilities_VERSION_MAJOR}) IF (WITH_SHARED_UTILITIES) INSTALL(TARGETS AudioManagerUtilities LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ COMPONENT bin) ELSE (WITH_SHARED_UTILITIES) INSTALL(TARGETS AudioManagerUtilities ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev) ENDIF (WITH_SHARED_UTILITIES) configure_file( ${CMAKE_SOURCE_DIR}/cmake/audiomanagerutilities.pc.in ${CMAKE_BINARY_DIR}/audiomanagerutilities.pc @ONLY ) install(FILES ${CMAKE_BINARY_DIR}/audiomanagerutilities.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT devel) configure_package_config_file ( ${CMAKE_SOURCE_DIR}/cmake/AudioManagerUtilitiesConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerUtilitiesConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/${LIB_INSTALL_SUFFIX}/cmake PATH_VARS AUDIO_INCLUDE_FOLDER ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerUtilitiesConfigVersion.cmake VERSION ${DAEMONVERSION} COMPATIBILITY SameMajorVersion ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerUtilitiesConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/AudioManagerUtilitiesConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/AudioManagerUtilities) INSTALL(DIRECTORY "include/" DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${LIB_INSTALL_SUFFIX}/AudioManagerUtilities COMPONENT dev) if(WITH_TESTS) add_subdirectory (test) endif(WITH_TESTS)