Configure on-demand with socket activation on licensing TV
[platform/core/multimedia/mmsvc-core.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6...2.8.12)
2 SET(MUSE_CORE "muse-core")
3
4 PROJECT(${MUSE_CORE})
5
6 SET(CMAKE_INSTALL_PREFIX /usr)
7 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
8
9 SET(BINDIR "${PREFIX}/bin")
10 SET(INC_DIR core/include)
11 INCLUDE_DIRECTORIES(${INC_DIR})
12
13 SET(dependents
14     dlog
15     glib-2.0
16     json-c
17     mm-common
18     capi-system-resource)
19
20 SET(pc_dependents
21     mm-common)
22
23 IF(${MUSE_REGISTER_VIP})
24 SET(dependents ${dependents} " libresourced")
25 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMUSE_VIP_REGISTERED")
26 ENDIF(${MUSE_REGISTER_VIP})
27
28 IF(${MUSE_LWIPC_ENABLE})
29 SET(dependents ${dependents} " lwipc")
30 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMUSE_USE_LWIPC")
31 ENDIF(${MUSE_LWIPC_ENABLE})
32
33 IF(${MUSE_LW})
34 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMUSE_ONDEMAND -DMUSE_LITE")
35 ENDIF(${MUSE_LW})
36
37 IF(${MUSE_TTRACE_ENABLE})
38 SET(dependents ${dependents} " ttrace")
39 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMUSE_TTRACE_LOG")
40 ENDIF(${MUSE_TTRACE_ENABLE})
41
42 INCLUDE(FindPkgConfig)
43 pkg_check_modules(${MUSE_CORE} REQUIRED ${dependents})
44 FOREACH(flag ${${MUSE_CORE}_CFLAGS})
45     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
46 ENDFOREACH(flag)
47
48 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -fPIE -fno-strict-aliasing -Werror -Wformat -Wextra")
49 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-array-bounds -Wno-empty-body -Wno-ignored-qualifiers")
50 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter -Wshadow -Wwrite-strings -Wswitch-default")
51 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-unused-result")
52
53 IF(MUSE_GTESTS_BUILD)
54 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
55 ENDIF(MUSE_GTESTS_BUILD)
56
57 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
58
59 IF("${ARCH}" STREQUAL "arm")
60     ADD_DEFINITIONS("-DTARGET")
61 ENDIF("${ARCH}" STREQUAL "arm")
62
63 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
64 ADD_DEFINITIONS("-DTIZEN_DEBUG")
65 ADD_DEFINITIONS(-DTZ_SYS_DATA_PATH="${TZ_SYS_DATA}")
66
67 aux_source_directory(core/src SOURCES)
68 ADD_LIBRARY(${MUSE_CORE} SHARED ${SOURCES})
69
70 TARGET_LINK_LIBRARIES(${MUSE_CORE} ${${MUSE_CORE}_LDFLAGS})
71
72 SET_TARGET_PROPERTIES(${MUSE_CORE}
73      PROPERTIES
74      VERSION ${FULLVER}
75      SOVERSION ${MAJORVER}
76      CLEAN_DIRECT_OUTPUT 1
77 )
78
79 INSTALL(TARGETS ${MUSE_CORE} DESTINATION ${LIBDIR})
80 INSTALL(
81         DIRECTORY ${INC_DIR}/ DESTINATION include/media
82         FILES_MATCHING
83         PATTERN "*_private.h" EXCLUDE
84         PATTERN "${INC_DIR}/muse_core.h"
85         )
86
87 SET(PC_NAME ${MUSE_CORE})
88 SET(PC_REQUIRED ${pc_dependents})
89 SET(PC_LDFLAGS -l${MUSE_CORE})
90 SET(PC_CFLAGS -I\${includedir}/media)
91
92 CONFIGURE_FILE(
93     ${MUSE_CORE}.pc.in
94     ${CMAKE_CURRENT_SOURCE_DIR}/${MUSE_CORE}.pc
95     @ONLY
96 )
97 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${MUSE_CORE}.pc DESTINATION ${LIBDIR}/pkgconfig)
98
99 ADD_SUBDIRECTORY(server)
100 ADD_SUBDIRECTORY(client)
101 ADD_SUBDIRECTORY(isu)
102 IF(MUSE_GTESTS_BUILD)
103 ADD_SUBDIRECTORY(unittest)
104 ENDIF(MUSE_GTESTS_BUILD)
105
106 IF(UNIX)
107
108 ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
109 ADD_CUSTOM_COMMAND(
110         DEPENDS clean
111         COMMENT "distribution clean"
112         COMMAND find
113         ARGS    .
114         -not -name config.cmake -and \(
115         -name tester.c -or
116         -name Testing -or
117         -name CMakeFiles -or
118         -name cmake.depends -or
119         -name cmake.check_depends -or
120         -name CMakeCache.txt -or
121         -name cmake.check_cache -or
122         -name *.cmake -or
123         -name Makefile -or
124         -name core -or
125         -name core.* -or
126         -name gmon.out -or
127         -name install_manifest.txt -or
128         -name *.pc -or
129         -name *~ \)
130         | grep -v TC | xargs rm -rf
131         TARGET  distclean
132         VERBATIM
133 )
134
135 ENDIF(UNIX)
136