1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(zigbee-daemon C)
4 MESSAGE(===================================================================)
6 MESSAGE(===================================================================)
8 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
9 SET(EXEC_PREFIX "\${prefix}")
10 SET(LIBDIR ${LIB_INSTALL_DIR})
11 SET(UNITDIR ${UNIT_INSTALL_DIR})
12 SET(INCLUDEDIR "\${prefix}/include")
14 # Set required packages
15 INCLUDE(FindPkgConfig)
16 pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 dlog)
18 FOREACH(flag ${pkgs_CFLAGS})
19 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
22 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/)
24 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Werror -Wextra -Wall -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align -Wno-array-bounds -Wno-empty-body -Wno-ignored-qualifiers -Wshadow -Wwrite-strings -Wswitch-default -Wno-unused-but-set-parameter -Wno-unused-but-set-variable")
25 #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Werror -Wextra -Wall -Wdeclaration-after-statement -Wmissing-declarations -Wredundant-decls -Wcast-align -Wcast-qual -Wno-array-bounds -Wno-empty-body -Wno-ignored-qualifiers -Wshadow -Wwrite-strings -Wswitch-default -Wno-unused-but-set-parameter -Wno-unused-but-set-variable")
27 ##Address-Space Layout Randomization
28 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
29 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
31 ADD_DEFINITIONS("-DZIGBEE_LOG_TAG=\"ZIGBEE-SVC\"")
33 IF (TIZEN_DEBUG_ENABLE)
34 ADD_DEFINITIONS ("-DTIZEN_DEBUG_ENABLE")
35 ENDIF (TIZEN_DEBUG_ENABLE)
37 MESSAGE(${CMAKE_C_FLAGS})
38 MESSAGE(${pkgs_LDFLAGS})
40 ### Include directories ###
42 ${CMAKE_CURRENT_SOURCE_DIR}/src
43 ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-lib/include
44 ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-lib/include_internal
45 ${CMAKE_SOURCE_DIR}/common/include
46 ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-service/include
47 ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-interface/include
56 SET(ZIGBEE_LIB_SRC_PATH "zigbee-lib/src")
59 ${ZIGBEE_LIB_SRC_PATH}/zblib_service.c
60 ${ZIGBEE_LIB_SRC_PATH}/zblib_service_interface.c
61 ${ZIGBEE_LIB_SRC_PATH}/zblib_plugin.c
62 ${ZIGBEE_LIB_SRC_PATH}/zblib_driver.c
63 ${ZIGBEE_LIB_SRC_PATH}/zblib_request.c
64 ${ZIGBEE_LIB_SRC_PATH}/zblib_log.c
65 ${ZIGBEE_LIB_SRC_PATH}/zblib_common.c
66 ${ZIGBEE_LIB_SRC_PATH}/zblib_util.c
67 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_alarm.c
68 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_custom.c
69 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_door_lock.c
70 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_fan_control.c
71 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_level_control.c
72 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_mfglib_control.c
73 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_on_off.c
74 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_service.c
75 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_thermostat.c
76 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_basic.c
77 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_global_control.c
78 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_ias_zone.c
79 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_identify.c
80 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_color_control.c
81 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_group.c
82 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_poll_control.c
83 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_scene.c
84 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zdo_dev_control.c
85 ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zdo_bind.c
88 ### Sub-directotries ###
89 ADD_SUBDIRECTORY(zigbee-lib)
90 ADD_SUBDIRECTORY(zigbee-service)
91 ADD_SUBDIRECTORY(zigbee-interface)
95 ADD_LIBRARY(zigbee-lib SHARED ${ZIGBEE_LIB_SRCS})
96 TARGET_LINK_LIBRARIES(zigbee-lib PRIVATE ${pkgs_LDFLAGS} "-ldl")
97 SET_TARGET_PROPERTIES(zigbee-lib PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME zigbee-lib)
100 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS} ${ZIGBEE_LIB_SRCS})
101 TARGET_LINK_LIBRARIES(${PROJECT_NAME} zigbee-service zigbee-interface ${pkgs_LDFLAGS} "-ldl")
103 ### Install files ###
104 INSTALL(TARGETS zigbee-lib DESTINATION ${LIBDIR} COMPONENT Runtime)
105 INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
106 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/zigbee-daemon.service DESTINATION ${UNITDIR})