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)
31 ADD_DEFINITIONS("-DLIBPATH=\"${LIB_INSTALL_DIR}\"")
32 ADD_DEFINITIONS("-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64")
34 INCLUDE(FindPkgConfig)
35 pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED ${PKG_MODULES})
37 FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
38 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
41 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Werror -rdynamic -Wno-deprecated-declarations")
42 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -fno-omit-frame-pointer -finstrument-functions")
43 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -lrt -fPIE")
44 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
45 # To apply Armoring(Full RELRO), which means GOT Table becomes read-only.
46 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now")
48 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
49 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS} "-ldl" "-lm")
50 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
52 INSTALL(FILES ${CMAKE_SOURCE_DIR}/conf/org.tizen.system.storage.conf DESTINATION /etc/dbus-1/system.d)
53 INSTALL(FILES ${CMAKE_SOURCE_DIR}/systemd/org.tizen.system.storage.service DESTINATION /usr/share/dbus-1/system-services)
54 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/systemd/ DESTINATION lib/systemd/system
56 PATTERN "storaged.service")
58 IF(BLOCK_MODULE STREQUAL on)
59 ADD_SUBDIRECTORY(src/block)
60 ADD_SUBDIRECTORY(${STORAGED_APPS})
62 IF(STORAGE_MODULE STREQUAL on)
63 ADD_SUBDIRECTORY(src/storage)
66 ADD_SUBDIRECTORY(src/auto-test)