1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
4 SET(CMAKE_VERBOSE_MAKEFILE OFF)
5 SET(STORAGED_APPS ${CMAKE_SOURCE_DIR}/apps)
13 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
14 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src/shared)
30 ADD_DEFINITIONS("-DLIBPATH=\"${LIB_INSTALL_DIR}\"")
31 ADD_DEFINITIONS("-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64")
33 INCLUDE(FindPkgConfig)
34 pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED ${PKG_MODULES})
36 FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
37 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
40 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Werror -rdynamic -Wno-deprecated-declarations")
41 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions")
42 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt -fPIE")
43 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
44 # To apply Armoring(Full RELRO), which means GOT Table becomes read-only.
45 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
47 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
48 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} "-ldl" "-lm")
49 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
51 INSTALL(FILES ${CMAKE_SOURCE_DIR}/conf/org.tizen.system.storage.conf DESTINATION /etc/dbus-1/system.d)
52 INSTALL(FILES ${CMAKE_SOURCE_DIR}/systemd/org.tizen.system.storage.service DESTINATION /usr/share/dbus-1/system-services)
53 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/systemd/ DESTINATION lib/systemd/system
55 PATTERN "storaged.service")
57 IF(BLOCK_MODULE STREQUAL on)
58 ADD_SUBDIRECTORY(src/block)
59 ADD_SUBDIRECTORY(${STORAGED_APPS})
61 IF(STORAGE_MODULE STREQUAL on)
62 ADD_SUBDIRECTORY(src/storage)
65 ADD_SUBDIRECTORY(src/auto-test)