CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(zigbee-interface C) MESSAGE(===================================================================) MESSAGE(Building...zigbee-interface) MESSAGE(===================================================================) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "\${prefix}") SET(LIBDIR ${LIB_INSTALL_DIR}) SET(UNITDIR ${UNIT_INSTALL_DIR}) SET(INCLUDEDIR "\${prefix}/include") # Set required packages INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED glib-2.0 gio-2.0 gio-unix-2.0 dlog) FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) 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") #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") ##Address-Space Layout Randomization SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie") ADD_DEFINITIONS("-DZIGBEE_LOG_TAG=\"ZIGBEE-SVC\"") IF (TIZEN_DEBUG_ENABLE) ADD_DEFINITIONS ("-DTIZEN_DEBUG_ENABLE") ENDIF (TIZEN_DEBUG_ENABLE) MESSAGE(${CMAKE_C_FLAGS}) MESSAGE(${pkgs_LDFLAGS}) ### Include directories ### INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/ ${CMAKE_CURRENT_SOURCE_DIR}/../zigbee-lib/include ${CMAKE_SOURCE_DIR}/common/include ${CMAKE_CURRENT_SOURCE_DIR}/../zigbee-service/include ) SET(INTROSPECTION_PATH ${CMAKE_CURRENT_SOURCE_DIR}/introspection) ### Generate GDBus .c/.h ### ADD_CUSTOM_COMMAND( WORKING_DIRECTORY OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zigbee_generated_code.c COMMAND gdbus-codegen --interface-prefix org.tizen.zigbee. --generate-c-code zigbee_generated_code --c-namespace Zigbee --c-generate-object-manager --generate-docbook zigbee-generated-docs ${INTROSPECTION_PATH}/manager.xml ${INTROSPECTION_PATH}/service.xml ${INTROSPECTION_PATH}/mfglib-control.xml ${INTROSPECTION_PATH}/zdo-bind.xml ${INTROSPECTION_PATH}/zdo-dev-control.xml ${INTROSPECTION_PATH}/custom.xml ${INTROSPECTION_PATH}/zcl-on-off.xml ${INTROSPECTION_PATH}/zcl-door-lock.xml ${INTROSPECTION_PATH}/zcl-level-control.xml ${INTROSPECTION_PATH}/zcl-thermostat.xml ${INTROSPECTION_PATH}/zcl-fan-control.xml ${INTROSPECTION_PATH}/zcl-alarm.xml ${INTROSPECTION_PATH}/zcl-global-control.xml ${INTROSPECTION_PATH}/zcl-basic.xml ${INTROSPECTION_PATH}/zcl-identify.xml ${INTROSPECTION_PATH}/zcl-ias-zone.xml ${INTROSPECTION_PATH}/zcl-poll-control.xml ${INTROSPECTION_PATH}/zcl-group.xml ${INTROSPECTION_PATH}/zcl-scene.xml ${INTROSPECTION_PATH}/zcl-color-control.xml COMMENT "Generating ZigBee GDBus .c/.h" ) ### Sources ### SET(ZIGBEE_INTERFACE_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zigbee_generated_code.c src/zigbee_service_interface.c src/zigbee_service_interface_common.c src/zigbee_service_dbus_interface.c src/zigbee_service_dbus_interface_zcl_alarm.c src/zigbee_service_dbus_interface_custom.c src/zigbee_service_dbus_interface_zcl_door_lock.c src/zigbee_service_dbus_interface_zcl_fan_control.c src/zigbee_service_dbus_interface_zcl_level_control.c src/zigbee_service_dbus_interface_mfglib_control.c src/zigbee_service_dbus_interface_zcl_on_off.c src/zigbee_service_dbus_interface_service.c src/zigbee_service_dbus_interface_zcl_thermostat.c src/zigbee_service_dbus_interface_zcl_basic.c src/zigbee_service_dbus_interface_zcl_color_control.c src/zigbee_service_dbus_interface_zcl_global_control.c src/zigbee_service_dbus_interface_zcl_group.c src/zigbee_service_dbus_interface_zcl_ias_zone.c src/zigbee_service_dbus_interface_zcl_identify.c src/zigbee_service_dbus_interface_zcl_poll_control.c src/zigbee_service_dbus_interface_zcl_scene.c src/zigbee_service_dbus_interface_zdo_bind.c src/zigbee_service_dbus_interface_zdo_dev_control.c ) ### Binary build ### ### zigbee-service ### ADD_LIBRARY(${PROJECT_NAME} ${ZIGBEE_INTERFACE_SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} PRIVATE ${pkgs_LDFLAGS}) ### Install files ### #INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib COMPONENT Runtime)