Tizen 2.4 SDK Rev6 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
22 # Set required packages
23 INCLUDE(FindPkgConfig)
24
25 SET(pkgs_requires "dlog ecore x11 libprivilege-control rua glib-2.0 ecore-x ecore-input evas vconf pkgmgr-info libresourced security-server")
26 SET(libpkgs_requires "dlog bundle dbus-glib-1 ail xdgmime libsmack ecore pkgmgr-info")
27
28 IF(_APPFW_FEATURE_APP_CHECKER)
29         SET(pkgs_requires "${pkgs_requires} app-checker app-checker-server")
30         SET(libpkgs_requires "${libpkgs_requires} app-checker")
31         ADD_DEFINITIONS("-D_APPFW_FEATURE_APP_CHECKER")
32 ENDIF(_APPFW_FEATURE_APP_CHECKER)
33
34 pkg_check_modules(pkgs REQUIRED ${pkgs_requires})
35 pkg_check_modules(libpkgs REQUIRED ${libpkgs_requires})
36 PKG_CHECK_MODULES(PKGS REQUIRED glib-2.0 gio-2.0 dlog bundle)
37
38 FIND_LIBRARY(LIB_DL dl)
39
40 FOREACH(flag ${libpkgs_CFLAGS})
41         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
42 ENDFOREACH(flag)
43
44 FOREACH(flag ${pkgs_CFLAGS})
45         SET(TEST_CFLAGS "${TEST_CFLAGS} ${flag}")
46 ENDFOREACH(flag)
47
48 # Compiler flags
49 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
50 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/legacy)
51 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/feature)
52 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" )
53 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
54 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic")
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_PROCESS_POOL_COMMON)
79         ADD_DEFINITIONS("-D_APPFW_FEATURE_PROCESS_POOL_COMMON")
80 ENDIF(_APPFW_FEATURE_PROCESS_POOL_COMMON)
81 IF(_APPFW_FEATURE_PROCESS_POOL_HW_RENDERING)
82         ADD_DEFINITIONS("-D_APPFW_FEATURE_PROCESS_POOL_HW_RENDERING")
83 ENDIF(_APPFW_FEATURE_PROCESS_POOL_HW_RENDERING)
84 IF(_APPFW_FEATURE_MULTI_INSTANCE)
85         ADD_DEFINITIONS("-D_APPFW_FEATURE_MULTI_INSTANCE")
86 ENDIF(_APPFW_FEATURE_MULTI_INSTANCE)
87 IF(_APPFW_FEATURE_MULTI_WINDOW)
88         ADD_DEFINITIONS("-D_APPFW_FEATURE_MULTI_WINDOW")
89 ENDIF(_APPFW_FEATURE_MULTI_WINDOW)
90 IF(_APPFW_FEATURE_CHANGEABLE_COLOR)
91         ADD_DEFINITIONS("-D_APPFW_FEATURE_CHANGEABLE_COLOR")
92 ENDIF(_APPFW_FEATURE_CHANGEABLE_COLOR)
93 IF(_APPFW_FEATURE_CPU_BOOST)
94         ADD_DEFINITIONS("-D_APPFW_FEATURE_CPU_BOOST")
95 ENDIF(_APPFW_FEATURE_CPU_BOOST)
96 IF(_APPFW_FEATURE_CONTACT_PHONE_AS_ONE_APP)
97         ADD_DEFINITIONS("-D_APPFW_FEATURE_CONTACT_PHONE_AS_ONE_APP")
98 ENDIF(_APPFW_FEATURE_CONTACT_PHONE_AS_ONE_APP)
99 IF(_APPFW_FEATURE_PRIORITY_CHANGE)
100         ADD_DEFINITIONS("-D_APPFW_FEATURE_PRIORITY_CHANGE")
101 ENDIF(_APPFW_FEATURE_PRIORITY_CHANGE)
102 IF(_APPFW_FEATURE_DATA_CONTROL)
103         ADD_DEFINITIONS("-D_APPFW_FEATURE_DATA_CONTROL")
104 ENDIF(_APPFW_FEATURE_DATA_CONTROL)
105 IF(_APPFW_FEATURE_DEBUG_LAUNCHPAD)
106         ADD_DEFINITIONS("-D_APPFW_FEATURE_DEBUG_LAUNCHPAD")
107 ENDIF(_APPFW_FEATURE_DEBUG_LAUNCHPAD)
108 IF(_APPFW_FEATURE_APP_CONTROL_LITE)
109         ADD_DEFINITIONS("-D_APPFW_FEATURE_APP_CONTROL_LITE")
110 ENDIF(_APPFW_FEATURE_APP_CONTROL_LITE)
111 IF(_APPFW_FEATURE_NATIVE_LAUNCHPAD)
112         ADD_DEFINITIONS("-D_APPFW_FEATURE_NATIVE_LAUNCHPAD")
113 ENDIF(_APPFW_FEATURE_NATIVE_LAUNCHPAD)
114 IF(_APPFW_FEATURE_WMS_CONNECTION_CHECK)
115         ADD_DEFINITIONS("-D_APPFW_FEATURE_WMS_CONNECTION_CHECK")
116 ENDIF(_APPFW_FEATURE_WMS_CONNECTION_CHECK)
117 IF(_APPFW_FEATURE_BG_PROCESS_LIMIT)
118         ADD_DEFINITIONS("-D_APPFW_FEATURE_BG_PROCESS_LIMIT")
119 ENDIF(_APPFW_FEATURE_BG_PROCESS_LIMIT)
120 IF(_APPFW_FEATURE_TTS_MODE)
121         ADD_DEFINITIONS("-D_APPFW_FEATURE_TTS_MODE")
122 ENDIF(_APPFW_FEATURE_TTS_MODE)
123 IF(_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE)
124         ADD_DEFINITIONS("-D_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE")
125 ENDIF(_APPFW_FEATURE_ULTRA_POWER_SAVING_MODE)
126 IF(_APPFW_FEATURE_VISIBILITY_CHECK_BY_LCD_STATUS)
127         ADD_DEFINITIONS("-D_APPFW_FEATURE_VISIBILITY_CHECK_BY_LCD_STATUS")
128 ENDIF(_APPFW_FEATURE_VISIBILITY_CHECK_BY_LCD_STATUS)
129
130 # Linker flags
131 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
132
133
134 ### Build ###
135
136 # aul_mods : modules (static library)
137 add_library(aul_mods STATIC
138                 src/app_sock.c
139                 src/simple_util.c
140                 )
141
142 # launchpad_common (static library)
143 ADD_LIBRARY(launchpad_common STATIC
144         launchpad_src/util_x.c
145         )
146
147 # aul
148 add_library(aul SHARED
149                 src/pkginfo.c
150                 src/launch.c
151                 src/launch_glib.c
152                 src/launch_with_result.c
153                 src/service.c
154                 src/mime.c
155                 src/miregex.c
156                 src/app_signal.c
157                 src/key.c
158                 src/status.c
159                 src/runtime_info.c
160                 src/aul_path.c
161                 )
162 target_link_libraries(aul aul_mods ${libpkgs_LDFLAGS})
163 SET_TARGET_PROPERTIES(aul PROPERTIES SOVERSION ${VERSION_MAJOR})
164 SET_TARGET_PROPERTIES(aul PROPERTIES VERSION ${VERSION})
165
166 # launchpad(old avatar) daemon
167 SET(AVATAR_NAME "launchpad_preloading_preinitializing_daemon")
168 add_executable(${AVATAR_NAME}
169         launchpad_src/launchpad.c
170         )
171
172 MESSAGE("       "${pkgs_LDFLAGS})
173 target_link_libraries(${AVATAR_NAME} aul_mods launchpad_common aul ${pkgs_LDFLAGS} ${LIB_DL} "-pie")
174 set_target_properties(${AVATAR_NAME}
175                 PROPERTIES SKIP_BUILD_RPATH true
176                 ) # remove rpath option that is automatically generated by cmake.
177
178 add_executable(amd
179                 am_daemon/amd_main.c
180                 am_daemon/amd_key.c
181                 am_daemon/amd_request.c
182                 am_daemon/amd_appinfo.c
183                 am_daemon/amd_cgutil.c
184                 am_daemon/amd_launch.c
185                 am_daemon/amd_status.c
186                 )
187 target_link_libraries(amd aul_mods rua glib-2.0 bundle ail aul utilX ${pkgs_LDFLAGS} "-pie")
188
189 SET(REL_AGENT daemon-manager-release-agent)
190 ADD_EXECUTABLE(${REL_AGENT} agent/${REL_AGENT}.c)
191 TARGET_LINK_LIBRARIES(${REL_AGENT} ${PKGS_LDFLAGS} "-pie" aul aul_mods)
192 SET_TARGET_PROPERTIES(${REL_AGENT} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
193
194 INSTALL(TARGETS ${REL_AGENT} DESTINATION bin)
195
196 SET(LAUNCH_AGENT daemon-manager-launch-agent)
197 ADD_EXECUTABLE(${LAUNCH_AGENT} agent/${LAUNCH_AGENT}.c)
198 TARGET_LINK_LIBRARIES(${LAUNCH_AGENT} ${PKGS_LDFLAGS} "-pie")
199 SET_TARGET_PROPERTIES(${LAUNCH_AGENT} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
200
201 INSTALL(TARGETS ${LAUNCH_AGENT} DESTINATION bin)
202
203
204
205 # pkgconfig file
206 CONFIGURE_FILE(aul.pc.in aul.pc @ONLY)
207
208
209 ### Install ###
210 INSTALL(TARGETS aul DESTINATION lib COMPONENT RuntimeLibraries)
211 INSTALL(TARGETS ${AVATAR_NAME} DESTINATION bin)
212 INSTALL(TARGETS amd DESTINATION bin)
213
214 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/aul.h DESTINATION include/aul)
215 IF (_APPFW_FEATURE_DEFAULT_FAKE_IMAGE)
216         ADD_DEFINITIONS("-D_APPFW_FEATURE_DEFAULT_FAKE_IMAGE")
217         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/config_splash.sh DESTINATION bin)
218 ENDIF(_APPFW_FEATURE_DEFAULT_FAKE_IMAGE)
219 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/aul.pc DESTINATION lib/pkgconfig)
220
221 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/legacy/preload_list.txt DESTINATION /usr/share/aul )
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}/feature/preexec.h DESTINATION include/aul/launchpad)
233 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/legacy/preload.h DESTINATION include/aul/launchpad)
234 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/launchpad_src/ DESTINATION include/aul/launchpad FILES_MATCHING PATTERN "*.h")
235 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libaul_mods.a DESTINATION lib)
236 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblaunchpad_common.a DESTINATION lib)
237
238 # test
239 add_subdirectory(test)
240