Add signal handler for client process
[platform/core/multimedia/mm-resource-manager.git] / CMakeLists.txt
1
2 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 SET(fw_name "mm-resource-manager")
4 SET(fw_daemon_name ${fw_name}d)
5 SET(fw_dbus_name "MMResourceManager")
6 SET(fw_codegen "codegen")
7
8 PROJECT(${fw_name})
9
10 SET(SRCS
11        src/lib/mm_resource_manager.c
12        src/lib/mm_resource_manager_priv.c
13        src/lib/mm_resource_manager_signal.c
14        src/common/${fw_dbus_name}.c
15        src/common/mm_resource_manager_utils.c
16        )
17 SET(SRC-DAEMON
18        src/common/${fw_dbus_name}.c
19        src/common/mm_resource_manager_utils.c
20        src/daemon/mm_resource_manager_daemon.c
21        src/daemon/mm_resource_manager_daemon_priv.c
22        src/daemon/mm_resource_manager_daemon_conf.c
23        src/daemon/mm_resource_manager_daemon_dbus.c
24        src/daemon/backend/mm_resource_manager_backend.c
25        src/daemon/backend/murphy/mm_resource_manager_rset.c
26        src/daemon/backend/murphy/mm_resource_manager_mloop.c
27        )
28
29 SET(CMAKE_INSTALL_PREFIX /usr)
30
31 SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
32
33 INCLUDE_DIRECTORIES(src)
34
35 SET(dependents "glib-2.0 gio-2.0 gio-unix-2.0 dlog mm-common murphy-resource murphy-glib iniparser")
36 SET(pc_dependents "glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common murphy-resource murphy-glib iniparser")
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 ENDFOREACH(flag)
43
44 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
45 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
46
47 ADD_CUSTOM_COMMAND (
48   OUTPUT src/common/${fw_dbus_name}.h src/common/${fw_dbus_name}.c
49   PRE_BUILD
50   COMMAND gdbus-codegen --generate-c-code ${fw_dbus_name} --interface-prefix org.tizen. packaging/org.tizen.${fw_dbus_name}.xml
51   COMMAND mv ${fw_dbus_name}.h src/common/${fw_dbus_name}.h
52   COMMAND mv ${fw_dbus_name}.c src/common/${fw_dbus_name}.c
53 )
54 ADD_CUSTOM_TARGET(${fw_codegen} DEPENDS src/common/${fw_dbus_name}.h src/common/${fw_dbus_name}.c)
55
56 IF("${ARCH}" STREQUAL "arm")
57     ADD_DEFINITIONS("-DTARGET")
58 ENDIF("${ARCH}" STREQUAL "arm")
59
60 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
61
62 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,--rpath=${LIB_INSTALL_DIR}")
63
64 ADD_LIBRARY(${fw_name} SHARED ${SRCS})
65 ADD_DEPENDENCIES(${fw_name} ${fw_codegen})
66
67 TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
68
69 SET_TARGET_PROPERTIES(${fw_name}
70      PROPERTIES
71      VERSION ${FULLVER}
72      SOVERSION ${MAJORVER}
73      CLEAN_DIRECT_OUTPUT 1
74 )
75
76 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -fPIE -Wall -Werror")
77
78 ADD_EXECUTABLE(${fw_daemon_name} ${SRC-DAEMON})
79 ADD_DEPENDENCIES(${fw_daemon_name} ${fw_codegen})
80 TARGET_LINK_LIBRARIES(${fw_daemon_name} ${${fw_name}_LDFLAGS})
81 INSTALL(TARGETS ${fw_daemon_name} DESTINATION ${BINDIR})
82
83 INSTALL(TARGETS ${fw_name} DESTINATION ${LIB_INSTALL_DIR})
84 INSTALL(FILES src/lib/mm_resource_manager.h DESTINATION include/media)
85
86
87 SET(PC_NAME ${fw_name})
88 SET(PC_REQUIRED ${pc_dependents})
89 SET(VERSION ${FULLVER})
90 SET(INC_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/media)
91 SET(PC_LDFLAGS -l${fw_name})
92 SET(PC_CFLAGS -I\${includedir}/media)
93
94 CONFIGURE_FILE(
95     ${fw_name}.pc.in
96     ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc
97     @ONLY
98 )
99 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
100
101 ADD_SUBDIRECTORY(test)
102
103 IF(UNIX)
104
105 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
106 ADD_CUSTOM_COMMAND(
107         DEPENDS clean
108         COMMENT "distribution clean"
109         COMMAND find
110         ARGS    .
111         -not -name config.cmake -and \(
112         -name tester.c -or
113         -name Testing -or
114         -name CMakeFiles -or
115         -name cmake.depends -or
116         -name cmake.check_depends -or
117         -name CMakeCache.txt -or
118         -name cmake.check_cache -or
119         -name *.cmake -or
120         -name Makefile -or
121         -name core -or
122         -name core.* -or
123         -name gmon.out -or
124         -name install_manifest.txt -or
125         -name *.pc -or
126         -name *~ \)
127         | grep -v TC | xargs rm -rf
128         TARGET  distclean
129         VERBATIM
130 )
131
132 ENDIF(UNIX)