Change permission to readonly for db file
[platform/core/api/mtp.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 # project
4 SET(project_prefix "capi")
5 SET(prefix "/usr")
6 SET(libdir ${LIB_INSTALL_DIR})
7 SET(version "0.0.1")
8 SET(maintainer "Jihoon Jung <jh8801.jung@samsung.com>")
9 SET(description "A MTP library in Tizen Native API")
10 SET(service "network")
11 SET(submodule "mtp")
12
13 # for package file
14 SET(dependents "dlog glib-2.0 gio-2.0 capi-base-common gio-unix-2.0 sqlite3 capi-system-info libtzplatform-config")
15 SET(pc_dependents "capi-base-common")
16
17 SET(fw_name "${project_prefix}-${service}-${submodule}")
18
19 FIND_PROGRAM(GDBUS_CODEGEN NAMES gdbus-codegen)
20 EXEC_PROGRAM(${GDBUS_CODEGEN} ARGS
21                 " \\
22                 --generate-c-code ${CMAKE_CURRENT_SOURCE_DIR}/src/mtp_gdbuslib \\
23                 --c-namespace mtp_gdbuslib \\
24                 --interface-prefix org.tizen.mtp. \\
25                 ${CMAKE_CURRENT_SOURCE_DIR}/src/mtp_gdbuslib.xml \\
26                 ")
27
28 PROJECT(${fw_name})
29
30 SET(CMAKE_INSTALL_PREFIX ${prefix})
31 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
32 SET(VERSION ${version})
33
34 SET(INC_DIR include)
35 INCLUDE_DIRECTORIES(${INC_DIR})
36 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
37
38 INCLUDE(FindPkgConfig)
39 pkg_check_modules(${fw_name} REQUIRED ${dependents})
40 FOREACH(flag ${${fw_name}_CFLAGS})
41     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
42     SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
43 ENDFOREACH(flag)
44
45 IF(BUILD_GCOV)
46         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fprofile-arcs -ftest-coverage")
47         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fPIC -Wall -Werror -fprofile-arcs -ftest-coverage")
48 ELSE(BUILD_GCOV)
49         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
50         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fPIC -Wall -Werror")
51 ENDIF(BUILD_GCOV)
52 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
53 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
54
55 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
56 ADD_DEFINITIONS("-DTIZEN_DEBUG")
57
58 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=%{_libdir}")
59
60 SET(SOURCES src/mtp.c
61             src/mtp_gdbuslib.c
62             src/mtp_gdbus_deviceinfo.c
63             src/mtp_gdbus_manager.c
64             src/mtp_gdbus_storageinfo.c
65             src/mtp_gdbus_objectinfo.c
66             src/mtp_db.c)
67
68 ADD_LIBRARY(${fw_name} SHARED ${SOURCES})
69
70 TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
71
72 SET_TARGET_PROPERTIES(${fw_name}
73      PROPERTIES
74      VERSION ${FULLVER}
75      SOVERSION ${MAJORVER}
76      CLEAN_DIRECT_OUTPUT 1
77 )
78
79 INSTALL(TARGETS ${fw_name} DESTINATION ${libdir})
80 INSTALL(
81         DIRECTORY ${INC_DIR}/ DESTINATION include
82         FILES_MATCHING
83         PATTERN "${INC_DIR}/*.h"
84         )
85
86 SET(PC_NAME ${fw_name})
87 SET(PC_REQUIRED ${pc_dependents})
88 SET(PC_LDFLAGS -l${fw_name})
89
90 CONFIGURE_FILE(
91     ${fw_name}.pc.in
92     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
93     @ONLY
94 )
95 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${libdir}/pkgconfig)
96
97 ADD_SUBDIRECTORY(test)
98
99 IF(BUILD_GCOV)
100         ADD_SUBDIRECTORY(unittest)
101 ENDIF(BUILD_GCOV)