CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(bluetooth-ipsp-agent C CXX) SET(SRCS bluetooth-ipsp-agent.c ../include/bluetooth-agent-profile.c) IF("${CMAKE_BUILD_TYPE}" STREQUAL "") SET(CMAKE_BUILD_TYPE "Release") ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) SET(PKG_MODULES capi-network-connection capi-network-bluetooth bluetooth-api gio-2.0 dlog capi-system-info ) INCLUDE(FindPkgConfig) pkg_check_modules(pkgs_ipsp_agent REQUIRED ${PKG_MODULES}) FOREACH(flag ${pkgs_ipsp_agent_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -Wall") ENDFOREACH(flag) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_C_FLAGS_RELEASE "-O2") SET(APP_SYSCONFDIR /opt/var/lib/bluetooth) SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_ipsp_agent_LDFLAGS} -L${CMAKE_CURRENT_SOURCE_DIR}/../bt-api -lbluetooth-api) IF (BUILD_GTESTS) # -fvisibility option should be "default" to call internal functions SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=default -Werror -Wno-deprecated-declarations") ADD_LIBRARY(ipsp-agent SHARED ${SRCS}) SET_TARGET_PROPERTIES(ipsp-agent PROPERTIES SOVERSION 0.1.0 CLEAN_DIRECT_OUTPUT 1) TARGET_LINK_LIBRARIES(ipsp-agent ${pkgs_ipsp_agent_LDFLAGS}) INSTALL(TARGETS ipsp-agent DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) ENDIF (BUILD_GTESTS) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.bluez.ipsp_agent.service DESTINATION share/dbus-1/system-services) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bluetooth-ipsp-agent.conf DESTINATION /etc/dbus-1/system.d) SET(PREFIX ${CMAKE_INSTALL_PREFIX})