CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(zigbee-daemon C) MESSAGE(===================================================================) MESSAGE(Building...) 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) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/) 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}/zigbee-lib/include ${CMAKE_SOURCE_DIR}/common/include ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-service/include ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-interface/include ) ### Sources ### SET(SRCS src/main.c ) SET(ZIGBEE_LIB_SRC_PATH "zigbee-lib/src") SET(ZIGBEE_LIB_SRCS ${ZIGBEE_LIB_SRC_PATH}/zblib_service.c ${ZIGBEE_LIB_SRC_PATH}/zblib_service_interface.c ${ZIGBEE_LIB_SRC_PATH}/zblib_plugin.c ${ZIGBEE_LIB_SRC_PATH}/zblib_driver.c ${ZIGBEE_LIB_SRC_PATH}/zblib_request.c ${ZIGBEE_LIB_SRC_PATH}/zblib_log.c ${ZIGBEE_LIB_SRC_PATH}/zblib_common.c ${ZIGBEE_LIB_SRC_PATH}/zblib_util.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_alarm.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_custom.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_door_lock.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_fan_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_level_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_mfglib_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_on_off.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_service.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_thermostat.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zclbasic_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zclglobal_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zclias_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zclidentify_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_color.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_group.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_poll_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zcl_scene.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zdodev_control.c ${ZIGBEE_LIB_SRC_PATH}/drivers/zblib_driver_zdo_bind.c ) ### Sub-directotries ### ADD_SUBDIRECTORY(zigbee-lib) ADD_SUBDIRECTORY(zigbee-service) ADD_SUBDIRECTORY(zigbee-interface) ### Binary build ### ### zigbee-lib ### ADD_LIBRARY(zigbee-lib SHARED ${ZIGBEE_LIB_SRCS}) TARGET_LINK_LIBRARIES(zigbee-lib PRIVATE ${pkgs_LDFLAGS} "-ldl") SET_TARGET_PROPERTIES(zigbee-lib PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME zigbee-lib) ### zigbee-daemon ### ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS} ${ZIGBEE_LIB_SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} zigbee-service zigbee-interface ${pkgs_LDFLAGS} "-ldl") ### Install files ### INSTALL(TARGETS zigbee-lib DESTINATION lib COMPONENT Runtime) INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME zigbee-daemon) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/zigbee-daemon.service DESTINATION /usr/lib/systemd/system)