tizen 2.4 release
[framework/appfw/aul-1.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
3
4 PROJECT(aul C)
5 SET(VERSION_MAJOR 0)
6 SET(VERSION "${VERSION_MAJOR}.1.0")
7
8 ### Global setting ###
9
10 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
11 SET(EXEC_PREFIX "\${prefix}")
12 SET(LIBDIR "\${prefix}/lib")
13 SET(INCLUDEDIR "\${prefix}/include/aul")
14
15 # Build type : Release
16 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
17         SET(CMAKE_BUILD_TYPE "Release")
18 ENDIF()
19 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
20
21 # Set required packages
22 INCLUDE(FindPkgConfig)
23
24 SET(pkgs_requires "dlog ecore x11 libprivilege-control rua glib-2.0 ecore-x ecore-evas iniparser ecore-input evas vconf pkgmgr-info libresourced security-server ttrace appfw-env cert-svc")
25 SET(libpkgs_requires "dlog bundle dbus-glib-1 ecore-x xdgmime libsmack ecore pkgmgr-info iniparser ttrace vasum vconf capi-system-info")
26
27 IF(_APPFW_FEATURE_APP_CHECKER)
28         SET(pkgs_requires "${pkgs_requires} app-checker app-checker-server")
29         SET(libpkgs_requires "${libpkgs_requires} app-checker")
30         ADD_DEFINITIONS("-D_APPFW_FEATURE_APP_CHECKER")
31 ENDIF(_APPFW_FEATURE_APP_CHECKER)
32
33 pkg_check_modules(pkgs REQUIRED ${pkgs_requires})
34 pkg_check_modules(libpkgs REQUIRED ${libpkgs_requires})
35 PKG_CHECK_MODULES(PKGS REQUIRED glib-2.0 gio-2.0 dlog bundle)
36
37 FIND_LIBRARY(LIB_DL dl)
38
39 FOREACH(flag ${libpkgs_CFLAGS})
40         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
41 ENDFOREACH(flag)
42
43 FOREACH(flag ${pkgs_CFLAGS})
44         SET(TEST_CFLAGS "${TEST_CFLAGS} ${flag}")
45 ENDFOREACH(flag)
46
47 # Compiler flags
48 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
49 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/feature)
50 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/delegator)
51 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" )
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
53 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic")
54 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall -Werror -Wno-unused-function")
55 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fdata-sections -ffunction-sections -Wl,--gc-sections")
56 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -D_FILE_OFFSET_BITS=64")
57 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
58 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TEST_CFLAGS}")
59 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
60 SET(CMAKE_C_FLAGS_RELEASE "-O2")
61
62 SET(CMAKE_SKIP_BUILD_RPATH true)
63
64 # Get uname value to set 'TARGET' definition
65 # TODO: Is this needed?
66 FIND_PROGRAM(UNAME NAMES uname)
67 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
68 IF("${ARCH}" STREQUAL "arm")
69         ADD_DEFINITIONS("-DTARGET")
70         MESSAGE("add -DTARGET")
71 ENDIF("${ARCH}" STREQUAL "arm")
72
73 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
74 ADD_DEFINITIONS("-DSHARE_PREFIX=\"/usr/share/aul\"")
75 IF(_APPFW_FEATURE_PROCESS_POOL)
76         ADD_DEFINITIONS("-D_APPFW_FEATURE_PROCESS_POOL")
77 ENDIF(_APPFW_FEATURE_PROCESS_POOL)
78 IF(_APPFW_FEATURE_MULTI_INSTANCE)
79         ADD_DEFINITIONS("-D_APPFW_FEATURE_MULTI_INSTANCE")
80 ENDIF(_APPFW_FEATURE_MULTI_INSTANCE)
81 IF(_APPFW_FEATURE_CHANGEABLE_COLOR)
82         ADD_DEFINITIONS("-D_APPFW_FEATURE_CHANGEABLE_COLOR")
83 ENDIF(_APPFW_FEATURE_CHANGEABLE_COLOR)
84 IF(_APPFW_FEATURE_CPU_BOOST)
85         ADD_DEFINITIONS("-D_APPFW_FEATURE_CPU_BOOST")
86 ENDIF(_APPFW_FEATURE_CPU_BOOST)
87 IF(_APPFW_FEATURE_PRIORITY_CHANGE)
88         ADD_DEFINITIONS("-D_APPFW_FEATURE_PRIORITY_CHANGE")
89 ENDIF(_APPFW_FEATURE_PRIORITY_CHANGE)
90 IF(_APPFW_FEATURE_DATA_CONTROL)
91         ADD_DEFINITIONS("-D_APPFW_FEATURE_DATA_CONTROL")
92 ENDIF(_APPFW_FEATURE_DATA_CONTROL)
93 IF(_APPFW_FEATURE_DEBUG_LAUNCHPAD)
94         ADD_DEFINITIONS("-D_APPFW_FEATURE_DEBUG_LAUNCHPAD")
95 ENDIF(_APPFW_FEATURE_DEBUG_LAUNCHPAD)
96 IF(_APPFW_FEATURE_APP_CONTROL_LITE)
97         ADD_DEFINITIONS("-D_APPFW_FEATURE_APP_CONTROL_LITE")
98 ENDIF(_APPFW_FEATURE_APP_CONTROL_LITE)
99 IF(_APPFW_FEATURE_WMS_CONNECTION_CHECK)
100         ADD_DEFINITIONS("-D_APPFW_FEATURE_WMS_CONNECTION_CHECK")
101 ENDIF(_APPFW_FEATURE_WMS_CONNECTION_CHECK)
102 IF(_APPFW_FEATURE_BG_PROCESS_LIMIT)
103         ADD_DEFINITIONS("-D_APPFW_FEATURE_BG_PROCESS_LIMIT")
104 ENDIF(_APPFW_FEATURE_BG_PROCESS_LIMIT)
105 IF(_APPFW_FEATURE_TTS_MODE)
106         ADD_DEFINITIONS("-D_APPFW_FEATURE_TTS_MODE")
107 ENDIF(_APPFW_FEATURE_TTS_MODE)
108 IF(_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE)
109         ADD_DEFINITIONS("-D_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE")
110 ENDIF(_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE)
111 IF(_APPFW_FEATURE_COOLDOWN_MODE_SUPPORT)
112         ADD_DEFINITIONS("-D_APPFW_FEATURE_COOLDOWN_MODE_SUPPORT")
113 ENDIF(_APPFW_FEATURE_COOLDOWN_MODE_SUPPORT)
114 IF(_APPFW_FEATURE_AMD_MODULE_LOG)
115         ADD_DEFINITIONS("-D_APPFW_FEATURE_AMD_MODULE_LOG")
116 ENDIF(_APPFW_FEATURE_AMD_MODULE_LOG)
117 IF(_APPFW_FEATURE_EXPANSION_PKG_INSTALL)
118         ADD_DEFINITIONS("-D_APPFW_FEATURE_EXPANSION_PKG_INSTALL")
119 ENDIF(_APPFW_FEATURE_EXPANSION_PKG_INSTALL)
120 IF(_APPFW_FEATURE_BACKGROUND_MANAGEMENT)
121         ADD_DEFINITIONS("-D_APPFW_FEATURE_BACKGROUND_MANAGEMENT")
122 ENDIF(_APPFW_FEATURE_BACKGROUND_MANAGEMENT)
123 IF(_APPFW_FEATURE_AMD_KEY)
124         ADD_DEFINITIONS("-D_APPFW_FEATURE_AMD_KEY")
125 ENDIF(_APPFW_FEATURE_AMD_KEY)
126 IF(_APPFW_FEATURE_MMC_SUPPORT)
127         ADD_DEFINITIONS("-D_APPFW_FEATURE_MMC_SUPPORT")
128 ENDIF(_APPFW_FEATURE_MMC_SUPPORT)
129 IF(_APPFW_FEATURE_SEND_HOME_LAUNCH_SIGNAL)
130         ADD_DEFINITIONS("-D_APPFW_FEATURE_SEND_HOME_LAUNCH_SIGNAL")
131 ENDIF(_APPFW_FEATURE_SEND_HOME_LAUNCH_SIGNAL)
132 IF(_APPFW_FEATURE_FAKE_EFFECT)
133         ADD_DEFINITIONS("-D_APPFW_FEATURE_FAKE_EFFECT")
134 ENDIF(_APPFW_FEATURE_FAKE_EFFECT)
135 IF(_APPFW_FEATURE_EFFECTIVE_APPID)
136         ADD_DEFINITIONS("-D_APPFW_FEATURE_EFFECTIVE_APPID")
137 ENDIF(_APPFW_FEATURE_EFFECTIVE_APPID)
138 IF(_APPFW_FEATURE_PRIVATE_SERVICE)
139         ADD_DEFINITIONS("-D_APPFW_FEATURE_PRIVATE_SERVICE")
140 ENDIF(_APPFW_FEATURE_PRIVATE_SERVICE)
141 IF(_APPFW_FEATURE_TERMINATE_UNMANAGEABLE_APP)
142         ADD_DEFINITIONS("-D_APPFW_FEATURE_TERMINATE_UNMANAGEABLE_APP")
143 ENDIF(_APPFW_FEATURE_TERMINATE_UNMANAGEABLE_APP)
144
145 # Linker flags
146 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
147
148
149 ### Build ###
150 add_subdirectory(delegator)
151
152 # aul_mods : modules (static library)
153 add_library(aul_mods STATIC
154                 src/app_sock.c
155                 src/simple_util.c
156                 )
157
158 # aul
159 add_library(aul SHARED
160                 src/pkginfo.c
161                 src/launch.c
162                 src/launch_glib.c
163                 src/launch_with_result.c
164                 src/service.c
165                 src/service_db.c
166                 src/mime.c
167                 src/miregex.c
168                 src/app_signal.c
169                 src/key.c
170                 src/status.c
171                 src/runtime_info.c
172                 src/aul_path.c
173                 src/app_group.c
174                 src/zone.c
175                 src/aul_rsc_mgr.c
176                 )
177 target_link_libraries(aul aul_mods ${libpkgs_LDFLAGS})
178 TARGET_LINK_LIBRARIES(aul aul-delegator-client)
179 TARGET_LINK_LIBRARIES(aul "-ldl -lsqlite3")
180 SET_TARGET_PROPERTIES(aul PROPERTIES SOVERSION ${VERSION_MAJOR})
181 SET_TARGET_PROPERTIES(aul PROPERTIES VERSION ${VERSION})
182
183 add_executable(amd
184                 am_daemon/amd_main.c
185                 am_daemon/amd_key.c
186                 am_daemon/amd_request.c
187                 am_daemon/amd_appinfo.c
188                 am_daemon/amd_launch.c
189                 am_daemon/amd_status.c
190                 am_daemon/amd_app_group.c
191                 )
192 IF(_APPFW_FEATURE_AMD_KEY)
193         TARGET_LINK_LIBRARIES(amd utilX)
194 ENDIF(_APPFW_FEATURE_AMD_KEY)
195 target_link_libraries(amd aul_mods rua glib-2.0 bundle pkgmgr-info aul ${pkgs_LDFLAGS} "-pie")
196 TARGET_LINK_LIBRARIES(amd "-ldl")
197
198 # appgroup info tool
199 ADD_EXECUTABLE(appgroup_info tool/app_group_info.c)
200 SET_TARGET_PROPERTIES(appgroup_info PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
201 TARGET_LINK_LIBRARIES(appgroup_info aul_mods aul ${pkgs_LDFLAGS} "-pie")
202 INSTALL(TARGETS appgroup_info DESTINATION bin)
203
204 # pkgconfig file
205 CONFIGURE_FILE(aul.pc.in aul.pc @ONLY)
206
207
208 ### Install ###
209 INSTALL(TARGETS aul DESTINATION lib COMPONENT RuntimeLibraries)
210 INSTALL(TARGETS amd DESTINATION bin)
211
212 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul.h DESTINATION include/aul)
213 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul_svc.h DESTINATION include/aul)
214 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul_zone.h DESTINATION include/aul)
215 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul_rsc_mgr.h DESTINATION include/aul)
216 IF (_APPFW_FEATURE_DEFAULT_FAKE_IMAGE)
217         ADD_DEFINITIONS("-D_APPFW_FEATURE_DEFAULT_FAKE_IMAGE")
218         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/config_splash.sh DESTINATION bin)
219 ENDIF(_APPFW_FEATURE_DEFAULT_FAKE_IMAGE)
220 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/aul.pc DESTINATION lib/pkgconfig)
221
222 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/feature/preexec_list.txt DESTINATION /usr/share/aul )
223 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/miregex DESTINATION /usr/share/aul )
224
225 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app_sock.h DESTINATION include/aul/launch)
226 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/simple_util.h DESTINATION include/aul/launch)
227 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/menu_db_util.h DESTINATION include/aul/launch)
228 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app_signal.h DESTINATION include/aul/launch)
229 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul_util.h DESTINATION include/aul/launch)
230 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/access_control.h DESTINATION include/aul/launch)
231 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/perf.h DESTINATION include/aul/launch)
232 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app_launchpad_types.h DESTINATION include/aul/launch)
233 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/feature/preexec.h DESTINATION include/aul/launchpad)
234 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libaul_mods.a DESTINATION lib)
235 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/appsvc_db.sql DESTINATION /opt/share )
236
237 IF(_APPFW_FEATURE_AMD_MODULE_LOG)
238         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/amd_log_dump.sh DESTINATION /opt/etc/dump.d/module.d)
239 ENDIF(_APPFW_FEATURE_AMD_MODULE_LOG)
240
241 # test
242 add_subdirectory(test)