Base patch (skeleton code)
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(zigbee-daemon C)
3
4 MESSAGE(===================================================================)
5 MESSAGE(Building...)
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 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/)
23
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")
26
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")
30
31 ADD_DEFINITIONS("-DZIGBEE_LOG_TAG=\"ZIGBEE-SVC\"")
32
33 IF (TIZEN_DEBUG_ENABLE)
34         ADD_DEFINITIONS ("-DTIZEN_DEBUG_ENABLE")
35 ENDIF (TIZEN_DEBUG_ENABLE)
36
37 MESSAGE(${CMAKE_C_FLAGS})
38 MESSAGE(${pkgs_LDFLAGS})
39
40 ### Include directories ###
41 INCLUDE_DIRECTORIES(
42         ${CMAKE_CURRENT_SOURCE_DIR}/src
43         ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-lib/include
44         ${CMAKE_SOURCE_DIR}/common/include
45         ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-service/include
46         ${CMAKE_CURRENT_SOURCE_DIR}/zigbee-interface/include
47
48 )
49
50 ### Sources ###
51 SET(SRCS
52         src/main.c
53 )
54
55 SET(ZIGBEE_LIB_SRCS
56         zigbee-lib/src/zblib_service.c
57         zigbee-lib/src/zblib_service_interface.c
58         zigbee-lib/src/zblib_plugin.c
59         zigbee-lib/src/zblib_driver.c
60         zigbee-lib/src/zblib_log.c
61         zigbee-lib/src/zblib_util.c
62 )
63
64 ### Sub-directotries ###
65 ADD_SUBDIRECTORY(zigbee-lib)
66 ADD_SUBDIRECTORY(zigbee-service)
67 ADD_SUBDIRECTORY(zigbee-interface)
68
69 ### Binary build ###
70 ### zigbee-lib ###
71 ADD_LIBRARY(zigbee-lib SHARED ${ZIGBEE_LIB_SRCS})
72 TARGET_LINK_LIBRARIES(zigbee-lib PRIVATE ${pkgs_LDFLAGS} "-ldl")
73 SET_TARGET_PROPERTIES(zigbee-lib PROPERTIES VERSION 0.0.0 SOVERSION 0 OUTPUT_NAME zigbee-lib)
74
75 ### zigbee-daemon ###
76 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS} ${ZIGBEE_LIB_SRCS})
77 TARGET_LINK_LIBRARIES(${PROJECT_NAME} zigbee-service zigbee-interface ${pkgs_LDFLAGS} "-ldl")
78
79 ### Install files ###
80 INSTALL(TARGETS zigbee-lib DESTINATION lib COMPONENT Runtime)
81 INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
82 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION /usr/share/license RENAME zigbee-daemon)
83 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/resources/zigbee-daemon.service DESTINATION /usr/lib/systemd/system)
84