1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
4 MESSAGE(===================================================================)
5 MESSAGE(Building...meshd)
6 MESSAGE(===================================================================)
8 MESSAGE(" - Checking...packages dependency")
20 pkg_check_modules(daemon_pkgs REQUIRED ${PKG_MODULES})
22 MESSAGE(" - Adding external C flags")
23 FOREACH(flag ${daemon_pkgs_CFLAGS})
24 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
26 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")
28 ##Address-Space Layout Randomization
29 MESSAGE(" - Address-Space Layout Randomizations")
30 SET(CMAKE_C_FLAGS_DEBUG "-fPIE")
31 SET(CMAKE_C_FLAGS_RELEASE "-fPIE")
33 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
34 ADD_DEFINITIONS("-DUSE_DLOG")
35 ADD_DEFINITIONS("-DTIZEN_DEBUG_ENABLE")
37 ADD_DEFINITIONS(-DUSE_UDEV_MONITOR)
38 ENDIF(USE_UDEV_MONITOR)
39 IF(USE_NETLINK_MONITOR)
40 ADD_DEFINITIONS(-DUSE_NETLINK_MONITOR)
41 ENDIF(USE_NETLINK_MONITOR)
43 ADD_DEFINITIONS(-DUSE_IOCTL_MONITOR)
44 ENDIF(USE_IOCTL_MONITOR)
45 IF(TIZEN_FEATURE_MESH_ON_DEMAND)
46 ADD_DEFINITIONS(-DTIZEN_FEATURE_MESH_ON_DEMAND)
47 ENDIF(TIZEN_FEATURE_MESH_ON_DEMAND)
49 MESSAGE(" - Generating... dbus interface")
50 SET(INTROSPECTION_PATH ${CMAKE_CURRENT_SOURCE_DIR}/introspection)
54 --interface-prefix net.mesh.
55 --generate-c-code mesh-generated-code
57 --c-generate-object-manager
58 --generate-docbook generated-docs
59 ${INTROSPECTION_PATH}/mesh.xml
60 ${INTROSPECTION_PATH}/manager.xml
61 COMMENT "Generating mesh GDBus .c/.h"
63 ADD_CUSTOM_TARGET(GENERATED_DBUS_CODE DEPENDS dbus)
65 MESSAGE(" - Adding include dir... include")
66 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
67 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
69 MESSAGE(" - Compiling...")
70 FILE(GLOB DAEMON_SRCS *.c ${CMAKE_SOURCE_DIR}/src/*.c)
71 SET(DAEMON_SRCS ${DAEMON_SRCS} ${CMAKE_SOURCE_DIR}/mesh-generated-code.c)
72 SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/mesh-generated-code.c PROPERTIES GENERATED TRUE)
74 INCLUDE_DIRECTORIES(${daemon_pkgs_INCLUDE_DIRS})
75 LINK_DIRECTORIES(${daemon_pkgs_LIBRARY_DIRS})
77 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
78 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--hash-style=both -pie")
80 ADD_EXECUTABLE(${PROJECT_NAME} ${DAEMON_SRCS})
81 ADD_DEPENDENCIES(${PROJECT_NAME} GENERATED_DBUS_CODE)
83 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${daemon_pkgs_LIBRARIES})
85 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
87 MESSAGE(" - Copying...meshd")
88 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/files/mesh.sh.in ${CMAKE_SOURCE_DIR}/files/mesh.sh @ONLY)
89 INSTALL(FILES ${CMAKE_SOURCE_DIR}/files/mesh.sh DESTINATION ${SBIN_DIR})