CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(bluetooth-map-agent C)
+PROJECT(bluetooth-map-agent C CXX)
-SET(SRCS bluetooth_map_agent.c bluetooth_map_sms.c bluetooth_map_email.c map_bmessage.c)
+SET(SRCS bluetooth_map_agent.c bluetooth_map_sms.c bluetooth_map_email.c
+ map_bmessage.c ../include/bluetooth-agent-profile.c)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs_map_agent
REQUIRED
- dlog msg-service email-service tapi vconf gio-2.0)
+ dlog msg-service email-service tapi vconf gio-2.0
+ capi-system-info)
FOREACH(flag ${pkgs_map_agent_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_map_agent_LDFLAGS})
+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(map-agent SHARED ${SRCS})
+ SET_TARGET_PROPERTIES(map-agent
+ PROPERTIES
+ SOVERSION 0.1.0
+ CLEAN_DIRECT_OUTPUT 1)
+
+ TARGET_LINK_LIBRARIES(map-agent ${pkgs_map_agent_LDFLAGS})
+
+ INSTALL(TARGETS map-agent DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+ENDIF (BUILD_GTESTS)
+
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.bluez.map_agent.service
- DESTINATION share/dbus-1/system-services)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.bluez.map_agent.service DESTINATION share/dbus-1/system-services)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bluetooth_map_agent.conf DESTINATION /etc/dbus-1/system.d)