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