tizen 2.4 release
[framework/convergence/unifiedstorage-format.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(unifiedstorage-format C)
3
4 INCLUDE_DIRECTORIES(include)
5
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
13 )
14
15 FILE(GLOB UNIFIED_STORAGE_FORMAT_DB_MANAGER_API
16     include/db_manager/db_manager.h
17 )
18
19 FILE(GLOB UNIFIED_STORAGE_FORMAT_THUMBNAIL_MANAGER_API
20     include/thumbnail_manager/thumbnail_manager.h
21 )
22
23 FILE(GLOB UNIFIED_STORAGE_FORMAT_METADATA_MANAGER_API
24     include/metadata_manager/metadata_manager.h
25 )
26
27 FILE(GLOB SRCS src/*.c 
28                src/db_manager/*.c
29                src/thumbnail_manager/*.c
30                src/metadata_manager/*.c)
31
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")
36 else()
37     message("Another profile")
38 endif (TARGET_PROFILE_NAME STREQUAL "mobile")
39
40 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
41 SET(BINDIR "/bin")
42 SET(LIBDIR "/lib")
43 SET(PCDIR  "/lib/pkgconfig")
44 SET(APIDIR "/include/unifiedstorage-format")
45 ADD_DEFINITIONS("-DUNIFIED_STORAGE_ENABLED")
46 ADD_DEFINITIONS("-DCLOUDBOX_ENABLED")
47
48 IF(NOT DEFINED MANIFESTDIR)
49         SET(MANIFESTDIR "/opt/share/packages")
50 ENDIF(NOT DEFINED MANIFESTDIR)
51
52 INCLUDE(FindPkgConfig)
53 pkg_check_modules(pkgs REQUIRED 
54         glib-2.0
55         capi-media-thumbnail-util
56         capi-media-metadata-extractor 
57         capi-content-media-content
58         capi-media-image-util
59 )
60
61 FOREACH(flag ${pkgs_CFLAGS})
62     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
63 ENDFOREACH(flag)
64
65 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
66
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")
71
72 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
73 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
74
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)
80
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})
83
84 # uninstall target
85 CONFIGURE_FILE(
86     "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
87     "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
88     IMMEDIATE @ONLY)
89
90 ADD_CUSTOM_TARGET(uninstall
91     COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)