CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT("Tizen Bluetooth Framework" C) SET(TEST_INSTALL_DIR "${LIB_INSTALL_DIR}/bluetooth-frwk-test/") SET(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}/bluetooth-service/plugins/") SET(CMAKE_C_FLAGS "-O3 -Wall -Werror -DPLUGINDIR=\\\"${PLUGIN_INSTALL_DIR}\\\"") SET(TEST "test-flags") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/) INCLUDE(FindPkgConfig) pkg_check_modules(${TEST} REQUIRED glib-2.0 dbus-1 gio-2.0 gio-unix-2.0) FOREACH(flag ${${TEST}_CFLAGS}) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") ENDFOREACH(flag) IF(platform STREQUAL "Mobile") SET(MOBILE_FLAGS "mobile-flags") pkg_check_modules(${MOBILE_FLAGS} REQUIRED msg-service email-service vconf) FOREACH(flag ${${MOBILE_FLAGS}_CFLAGS}) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") ENDFOREACH(flag) FOREACH(flag ${${MOBILE_FLAGS}_LDFLAGS}) SET(${TEST}_LDFLAGS "${${TEST}_LDFLAGS} ${flag}") ENDFOREACH(flag) ADD_DEFINITIONS(-DMOBILE) ENDIF() IF(platform STREQUAL "GEEK" OR platform STREQUAL "IVI") SET(TIZEN_FLAGS "tizen-flags") pkg_check_modules(${TIZEN_FLAGS} REQUIRED dlog aul syspopup-caller notification capi-base-common) FOREACH(flag ${${TIZEN_FLAGS}_CFLAGS}) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}") ENDFOREACH(flag) FOREACH(flag ${${TIZEN_FLAGS}_LDFLAGS}) SET(${TEST}_LDFLAGS "${${TEST}_LDFLAGS} ${flag}") ENDFOREACH(flag) ADD_DEFINITIONS(-DTIZEN) ENDIF() # BLUETOOTH-SERVICE SET(BLUETOOTH-SERVICE "bluetooth-service") IF(platform STREQUAL "Mobile") SET(SOURCES_BLUETOOTH_SERVICE src/main.c src/manager.c src/plugin.c src/vertical.c src/pairing.c src/opp.c src/media.c src/map_agent.c src/map_bmessage.c src/bluetooth_map_agent.c lib/bluez.c lib/bluez-hdp.c lib/common.c lib/obex.c ) ELSE() SET(SOURCES_BLUETOOTH_SERVICE src/main.c src/manager.c src/plugin.c src/vertical.c src/pairing.c src/opp.c src/media.c lib/bluez.c lib/bluez-hdp.c lib/common.c lib/obex.c ) ENDIF() ADD_EXECUTABLE(${BLUETOOTH-SERVICE} ${SOURCES_BLUETOOTH_SERVICE}) TARGET_LINK_LIBRARIES(${BLUETOOTH-SERVICE} ${${TEST}_LDFLAGS} -ldl) SET_TARGET_PROPERTIES(${BLUETOOTH-SERVICE} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/src) INSTALL(TARGETS ${BLUETOOTH-SERVICE} DESTINATION bin) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluezlib.conf DESTINATION /etc/dbus-1/system.d) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluezobex.conf DESTINATION /etc/dbus-1/system.d) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluetooth-service.conf DESTINATION /etc/dbus-1/system.d) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/org.tizen.comms.service DESTINATION share/dbus-1/system-services) # BLUEZ-TEST SET(BLUEZ-TEST "bluez-lib-test") SET(SOURCES_BLUEZ_TEST lib/common.c lib/bluez.c lib/bluez-hdp.c test/bluez-lib-test.c ) ADD_EXECUTABLE(${BLUEZ-TEST} ${SOURCES_BLUEZ_TEST}) TARGET_LINK_LIBRARIES(${BLUEZ-TEST} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${BLUEZ-TEST} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test) INSTALL(TARGETS ${BLUEZ-TEST} DESTINATION ${TEST_INSTALL_DIR}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluez-lib-test.conf DESTINATION /etc/dbus-1/system.d) # OBEX-TEST SET(OBEX-TEST "obex-lib-test") SET(SOURCES_OBEX_TEST lib/common.c lib/obex.c test/obex-lib-test.c ) ADD_EXECUTABLE(${OBEX-TEST} ${SOURCES_OBEX_TEST}) TARGET_LINK_LIBRARIES(${OBEX-TEST} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${OBEX-TEST} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test) INSTALL(TARGETS ${OBEX-TEST} DESTINATION ${TEST_INSTALL_DIR}) # BT-SERVICE-TEST SET(BT-SERVICE-TEST "bt-serivce-lib-test") SET(SOURCES_BT_SERVICE_TEST lib/common.c lib/bluetooth-service.c test/bt-service-lib-test.c ) ADD_EXECUTABLE(${BT-SERVICE-TEST} ${SOURCES_BT_SERVICE_TEST}) TARGET_LINK_LIBRARIES(${BT-SERVICE-TEST} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${BT-SERVICE-TEST} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test) INSTALL(TARGETS ${BT-SERVICE-TEST} DESTINATION ${TEST_INSTALL_DIR}) # CAPI-BLUETOOTH SET(CAPI-BLUETOOTH "capi-network-bluetooth") SET(SOURCE_CAPI_BLUETOOTH lib/common.c lib/bluez.c lib/bluez-hdp.c capi/bluetooth.c lib/obex.c capi/bluetooth-obex.c lib/bluetooth-service.c ) ADD_LIBRARY(${CAPI-BLUETOOTH} SHARED ${SOURCE_CAPI_BLUETOOTH}) TARGET_LINK_LIBRARIES(${CAPI-BLUETOOTH} ${${TEST}_LDFALGS}) SET_TARGET_PROPERTIES(${CAPI-BLUETOOTH} PROPERTIES VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1 LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/capi ) INSTALL(FILES include/bluetooth.h DESTINATION include/network) INSTALL(TARGETS ${CAPI-BLUETOOTH} DESTINATION ${LIB_INSTALL_DIR}) CONFIGURE_FILE( capi-network-bluetooth.pc.in ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI-BLUETOOTH}.pc @ONLY ) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI-BLUETOOTH}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) # BLUEZ-CAPI-TEST SET(BLUEZ-CAPI-TEST "bluez-capi-test") SET(SOURCE_BLUEZ_CAPI_TEST test/bluez-capi-test.c ) ADD_EXECUTABLE(${BLUEZ-CAPI-TEST} ${SOURCE_BLUEZ_CAPI_TEST}) TARGET_LINK_LIBRARIES(${BLUEZ-CAPI-TEST} ${CAPI-BLUETOOTH} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${BLUEZ-CAPI-TEST} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test) IF(platform STREQUAL "GEEK") ADD_DEFINITIONS("-DGEEK") # geek plugin SET(PLUGIN_BLUETOOTH_MOBILE "bluetooth-geek") SET(SOURCE_PLUGIN_BLUETOOTH_MOBILE plugins/bluetooth-geek.c plugins/brcm_patchram_plus.c ) ADD_LIBRARY(${PLUGIN_BLUETOOTH_MOBILE} SHARED ${SOURCE_PLUGIN_BLUETOOTH_MOBILE}) TARGET_LINK_LIBRARIES(${PLUGIN_BLUETOOTH_MOBILE} ${CAPI-BLUETOOTH} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/plugins) INSTALL(TARGETS ${PLUGIN_BLUETOOTH_MOBILE} DESTINATION ${PLUGIN_INSTALL_DIR}) ENDIF() IF(platform STREQUAL "IVI") # CAPI-BLUETOOTH SET(PLUGIN_BLUETOOTH_MOBILE "bluetooth-mobile") SET(SOURCE_PLUGIN_BLUETOOTH_MOBILE plugins/bluetooth-mobile.c ) ADD_LIBRARY(${PLUGIN_BLUETOOTH_MOBILE} SHARED ${SOURCE_PLUGIN_BLUETOOTH_MOBILE}) TARGET_LINK_LIBRARIES(${PLUGIN_BLUETOOTH_MOBILE} ${${TEST}_LDFLAGS}) SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/plugins) ENDIF() INSTALL(TARGETS ${BLUEZ-CAPI-TEST} DESTINATION ${TEST_INSTALL_DIR})