1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(unifiedstorage-format C)
4 INCLUDE_DIRECTORIES(include)
6 FILE(GLOB UNIFIED_STORAGE_FORMAT_API
7 include/unified_storage_accounts.h
8 include/unified_storage_utils.h
9 include/unified_storage_error_codes.h
10 include/unified_storage_log.h
11 include/unified_storage_format.h
12 include/unified_storage_format_log.h
15 FILE(GLOB UNIFIED_STORAGE_FORMAT_DB_MANAGER_API
16 include/db_manager/db_manager.h
19 FILE(GLOB UNIFIED_STORAGE_FORMAT_THUMBNAIL_MANAGER_API
20 include/thumbnail_manager/thumbnail_manager.h
23 FILE(GLOB UNIFIED_STORAGE_FORMAT_METADATA_MANAGER_API
24 include/metadata_manager/metadata_manager.h
27 FILE(GLOB SRCS src/*.c
29 src/thumbnail_manager/*.c
30 src/metadata_manager/*.c)
32 message("${PROJECT_NAME} Build target profile : ${TARGET_PROFILE_NAME}")
33 if (TARGET_PROFILE_NAME STREQUAL "mobile")
34 message("mobile feature enable (UNIFIED_FORMAT_MOBILE_FEATURE_ENABLE)")
35 add_definitions("-DUNIFIED_FORMAT_MOBILE_FEATURE_ENABLE")
37 message("Another profile")
38 endif (TARGET_PROFILE_NAME STREQUAL "mobile")
40 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
43 SET(PCDIR "/lib/pkgconfig")
44 SET(APIDIR "/include/unifiedstorage-format")
45 ADD_DEFINITIONS("-DUNIFIED_STORAGE_ENABLED")
46 ADD_DEFINITIONS("-DCLOUDBOX_ENABLED")
48 IF(NOT DEFINED MANIFESTDIR)
49 SET(MANIFESTDIR "/opt/share/packages")
50 ENDIF(NOT DEFINED MANIFESTDIR)
52 INCLUDE(FindPkgConfig)
53 pkg_check_modules(pkgs REQUIRED
55 capi-media-thumbnail-util
56 capi-media-metadata-extractor
57 capi-content-media-content
61 FOREACH(flag ${pkgs_CFLAGS})
62 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
65 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
67 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUNIFIED_STORAGE_FORMAT_DLL -DUNIFIED_STORAGE_FORMAT_DLL_EXPORTS")
68 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -fvisibility=hidden -fPIC -D_GNU_SOURCE")
69 SET(CMAKE_C_FLAGS_DEBUG "-g -fPIC")
70 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC")
72 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
73 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
75 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
76 INSTALL(FILES ${UNIFIED_STORAGE_FORMAT_API} DESTINATION ${APIDIR})
77 INSTALL(FILES ${UNIFIED_STORAGE_FORMAT_DB_MANAGER_API} DESTINATION ${APIDIR}/db_manager)
78 INSTALL(FILES ${UNIFIED_STORAGE_FORMAT_THUMBNAIL_MANAGER_API} DESTINATION ${APIDIR}/thumbnail_manager)
79 INSTALL(FILES ${UNIFIED_STORAGE_FORMAT_METADATA_MANAGER_API} DESTINATION ${APIDIR}/metadata_manager)
81 CONFIGURE_FILE(unifiedstorage-format.pc.in ${CMAKE_BINARY_DIR}/unifiedstorage-format.pc @ONLY)
82 INSTALL(FILES ${CMAKE_BINARY_DIR}/unifiedstorage-format.pc DESTINATION ${PCDIR})
86 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
87 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
90 ADD_CUSTOM_TARGET(uninstall
91 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)