Chagne DBus object name following Zigbee Specification
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-interface / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(zigbee-interface C)
3
4 MESSAGE(===================================================================)
5 MESSAGE(Building...zigbee-interface)
6 MESSAGE(===================================================================)
7
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")
13
14 # Set required packages
15 INCLUDE(FindPkgConfig)
16 pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 dlog)
17
18 FOREACH(flag ${pkgs_CFLAGS})
19         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
20 ENDFOREACH(flag)
21
22 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")
23 #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")
24
25 ##Address-Space Layout Randomization
26 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
27 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
28
29 ADD_DEFINITIONS("-DZIGBEE_LOG_TAG=\"ZIGBEE-SVC\"")
30
31 IF (TIZEN_DEBUG_ENABLE)
32         ADD_DEFINITIONS ("-DTIZEN_DEBUG_ENABLE")
33 ENDIF (TIZEN_DEBUG_ENABLE)
34
35 MESSAGE(${CMAKE_C_FLAGS})
36 MESSAGE(${pkgs_LDFLAGS})
37
38 ### Include directories ###
39 INCLUDE_DIRECTORIES(
40         ${CMAKE_CURRENT_SOURCE_DIR}/src
41         ${CMAKE_CURRENT_SOURCE_DIR}/include
42         ${CMAKE_CURRENT_BINARY_DIR}/
43         ${CMAKE_CURRENT_SOURCE_DIR}/../zigbee-lib/include
44         ${CMAKE_SOURCE_DIR}/common/include
45         ${CMAKE_CURRENT_SOURCE_DIR}/../zigbee-service/include
46 )
47
48 SET(INTROSPECTION_PATH ${CMAKE_CURRENT_SOURCE_DIR}/introspection)
49
50 ### Generate GDBus .c/.h ###
51 ADD_CUSTOM_COMMAND(
52         WORKING_DIRECTORY
53         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zigbee_generated_code.c
54         COMMAND gdbus-codegen
55         --interface-prefix org.tizen.zigbee.
56         --generate-c-code zigbee_generated_code
57         --c-namespace Zigbee
58         --c-generate-object-manager --generate-docbook zigbee-generated-docs
59         ${INTROSPECTION_PATH}/manager.xml
60         ${INTROSPECTION_PATH}/service.xml
61         ${INTROSPECTION_PATH}/mfglib-control.xml
62         ${INTROSPECTION_PATH}/zdo-bind.xml
63         ${INTROSPECTION_PATH}/zdo-dev-control.xml
64         ${INTROSPECTION_PATH}/custom.xml
65         ${INTROSPECTION_PATH}/zcl-on-off.xml
66         ${INTROSPECTION_PATH}/zcl-door-lock.xml
67         ${INTROSPECTION_PATH}/zcl-level-control.xml
68         ${INTROSPECTION_PATH}/zcl-thermostat.xml
69         ${INTROSPECTION_PATH}/zcl-fan-control.xml
70         ${INTROSPECTION_PATH}/zcl-alarm.xml
71         ${INTROSPECTION_PATH}/zcl-global-control.xml
72         ${INTROSPECTION_PATH}/zcl-basic.xml
73         ${INTROSPECTION_PATH}/zcl-identify.xml
74         ${INTROSPECTION_PATH}/zcl-ias-zone.xml
75         ${INTROSPECTION_PATH}/zcl-poll-control.xml
76         ${INTROSPECTION_PATH}/zcl-group.xml
77         ${INTROSPECTION_PATH}/zcl-scene.xml
78         ${INTROSPECTION_PATH}/zcl-color-control.xml
79         COMMENT "Generating ZigBee GDBus .c/.h"
80 )
81
82 ### Sources ###
83 SET(ZIGBEE_INTERFACE_SRCS
84         ${CMAKE_CURRENT_BINARY_DIR}/zigbee_generated_code.c
85         src/zigbee_service_interface.c
86         src/zigbee_service_interface_common.c
87         src/zigbee_service_dbus_interface.c
88         src/zigbee_service_dbus_interface_zcl_alarm.c
89         src/zigbee_service_dbus_interface_custom.c
90         src/zigbee_service_dbus_interface_zcl_door_lock.c
91         src/zigbee_service_dbus_interface_zcl_fan_control.c
92         src/zigbee_service_dbus_interface_zcl_level_control.c
93         src/zigbee_service_dbus_interface_mfglib_control.c
94         src/zigbee_service_dbus_interface_zcl_on_off.c
95         src/zigbee_service_dbus_interface_service.c
96         src/zigbee_service_dbus_interface_zcl_thermostat.c
97         src/zigbee_service_dbus_interface_zcl_basic.c
98         src/zigbee_service_dbus_interface_zcl_color_control.c
99         src/zigbee_service_dbus_interface_zcl_global_control.c
100         src/zigbee_service_dbus_interface_zcl_group.c
101         src/zigbee_service_dbus_interface_zcl_ias_zone.c
102         src/zigbee_service_dbus_interface_zcl_identify.c
103         src/zigbee_service_dbus_interface_zcl_poll_control.c
104         src/zigbee_service_dbus_interface_zcl_scene.c
105         src/zigbee_service_dbus_interface_zdo_bind.c
106         src/zigbee_service_dbus_interface_zdo_dev_control.c
107 )
108
109 ### Binary build ###
110 ### zigbee-service ###
111 ADD_LIBRARY(${PROJECT_NAME} ${ZIGBEE_INTERFACE_SRCS})
112 TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE ${pkgs_LDFLAGS})
113
114 ### Install files ###
115 #INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT Runtime)