55f56295277b0fa062ade06d797a3d51ae726bd8
[platform/framework/web/webkit-efl.git] / Source / cmake / OptionsTizen.cmake
1 SET(PROJECT_VERSION_MAJOR 0)
2 SET(PROJECT_VERSION_MINOR 12)
3 SET(PROJECT_VERSION_PATCH 1)
4 SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
5
6 # -----------------------------------------------------------------------------
7 # We mention Safari version because many sites check for it.
8 # Sync with Source/WebCore/Configurations/Version.xcconfig whenever Safari is
9 # version up.
10 # -----------------------------------------------------------------------------
11 SET(WEBKIT_USER_AGENT_MAJOR_VERSION 537)
12 SET(WEBKIT_USER_AGENT_MINOR_VERSION 2)
13
14 ADD_DEFINITIONS(-DWEBCORE_NAVIGATOR_VENDOR="Tizen")
15 ADD_DEFINITIONS(-DBUILDING_EFL__=1)
16 ADD_DEFINITIONS(-DWTF_PLATFORM_EFL=1)
17 SET(WTF_PLATFORM_EFL 1)
18
19 # -----------------------------------------------------------------------------
20 # Enable CTest for the public API unit testing
21 # -----------------------------------------------------------------------------
22 ENABLE_TESTING()
23 SET(ENABLE_API_TESTS ON)
24
25 # -----------------------------------------------------------------------------
26 # Determine which font backend will be used
27 # -----------------------------------------------------------------------------
28 SET(ALL_FONT_BACKENDS freetype pango)
29 SET(FONT_BACKEND "freetype" CACHE STRING "choose which font backend to use (one of ${ALL_FONT_BACKENDS})")
30
31 FIND_PACKAGE(Cairo 1.10 REQUIRED)
32 FIND_PACKAGE(Fontconfig 2.8.0 REQUIRED)
33 FIND_PACKAGE(Sqlite REQUIRED)
34 FIND_PACKAGE(LibXml2 2.6 REQUIRED)
35 FIND_PACKAGE(LibXslt 1.1.7 REQUIRED)
36 FIND_PACKAGE(ICU REQUIRED)
37 FIND_PACKAGE(Threads REQUIRED)
38 FIND_PACKAGE(JPEG REQUIRED)
39 FIND_PACKAGE(PNG REQUIRED)
40 FIND_PACKAGE(ZLIB REQUIRED)
41
42 FIND_PACKAGE(GLIB 2.31.8 REQUIRED COMPONENTS gio gobject gthread)
43 FIND_PACKAGE(LibSoup 2.37.92 REQUIRED)
44 SET(ENABLE_GLIB_SUPPORT ON)
45
46 SET(WTF_USE_SOUP 1)
47 ADD_DEFINITIONS(-DWTF_USE_SOUP=1)
48 ADD_DEFINITIONS(-DBUILDING_SOUP__=1)
49
50 ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=1)
51
52 SET(WTF_USE_PTHREADS 1)
53 ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1)
54
55 SET(WTF_USE_ICU_UNICODE 1)
56 ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1)
57
58 SET(WTF_USE_CAIRO 1)
59 ADD_DEFINITIONS(-DWTF_USE_CAIRO=1)
60
61 SET(JSC_EXECUTABLE_NAME jsc_efl)
62
63 SET(WTF_LIBRARY_NAME wtf_efl)
64 SET(JavaScriptCore_LIBRARY_NAME javascriptcore_efl)
65 SET(WebCore_LIBRARY_NAME webcore_efl)
66 SET(WebKit_LIBRARY_NAME ewebkit)
67 SET(WebKit2_LIBRARY_NAME ewebkit2)
68
69 SET(DATA_INSTALL_DIR "share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}" CACHE PATH "Installation path for theme data")
70 SET(THEME_BINARY_DIR ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme)
71 FILE(MAKE_DIRECTORY ${THEME_BINARY_DIR})
72
73 SET(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter")
74
75 WEBKIT_OPTION_BEGIN()
76 #--------------------------------------------------------------------------------------
77 # Define WebKit Features which are needed by Tizen
78 #--------------------------------------------------------------------------------------
79 WEBKIT_OPTION_DEFINE(ENABLE_ALLINONE "All in one to make build faster" ON)
80 WEBKIT_OPTION_DEFINE(ENABLE_AS_IMAGE "Enable SVG as image" ON)
81 WEBKIT_OPTION_DEFINE(ENABLE_CDOM_BINDINGS "C DOM Bindings" OFF)
82 WEBKIT_OPTION_DEFINE(ENABLE_FAST_MALLOC "Enable fastMalloc" ON)
83 WEBKIT_OPTION_DEFINE(ENABLE_MEMORY_SAMPLER "Enable Memory Sampler for WebKit2" ON)
84 WEBKIT_OPTION_DEFINE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" ON)
85 WEBKIT_OPTION_DEFINE(ENABLE_OVERFLOW_SCROLLING "Enable css overflow scrolling property" ON)
86 WEBKIT_OPTION_DEFINE(ENABLE_PLUGIN_PROCESS "Enable PluginProcess for WebKit2" ON)
87 WEBKIT_OPTION_DEFINE(ENABLE_FAST_MOBILE_SCROLLING "Toogle Fast Mobile Scrolling support" ON)
88 WEBKIT_OPTION_DEFINE(ENABLE_TOUCH_SLIDER "Enable touch event handling on range control of input elements" ON)
89
90 #--------------------------------------------------------------------------------------
91 # Define Tizen Specific WebKit Features
92 #--------------------------------------------------------------------------------------
93 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_CLIPBOARD "Enable Tizen Clipboard API for Tizen" ON)
94 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_CSS_ALIASES "Enable Specifying CSS Property Aliases in Tizen" ON)
95 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_CSS3_TEXT "Enable CSS3 TEXT" ON)
96 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_DBSPACE_PATH "Enable Tizen application's  directory path" ON)
97 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_EXTENSIBLE_API "Enable Tizen extensible api" ON)
98 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_GC_ACTIVITY_CALLBACK "Use GC Activity Callback" ON)
99 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_INTERNATIONAL_TEXT_SUPPORT "Enable International text support for tizen webkit" ON)
100 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_KEYGEN "Enable Tizen WebKit2 feature" ON)
101 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_MEDIA_STREAM "Enable Tizen Media Stream" ON)
102 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_REGISTER_CONTENT_HANDLER "Enable the register content handler for Tizen" ON)
103 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_RESET_PATH "Enable reset path" ON)
104 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SCREEN_READER "Enable Screen Reader" ON)
105 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SEARCH_PROVIDER "Enable Tizen search provider for Tizen" ON)
106 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SUPPORT "Enable Tizen Support" ON)
107 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SUPPORT_WEBAPP_META_TAG "Enable apple meta tag" ON)
108 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SQL_DATABASE_ENCRYPTION "Enable Encrypted sql database" OFF)
109 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP "Enable rotation while showing javascript popup for WebKit 2" ON)
110 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2 "Enable Tizen WebKit2 feature" ON)
111 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_GESTURE "Use Gesture which uses elm_gesture_layer" ON)
112 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2_FORM_DATABASE "Support for Remember Form on tizen webkit2" ON)
113 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2_TEXT_SELECTION "Text selection in WebKit 2" ON)
114
115 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_AUDIO_SESSION_MANAGER "Audio Session Manager Support" OFF)
116     # - ENABLE_TIZEN_AUDIO_SESSION_MANAGER: An audio session manager is merely used
117     #      to control the playing of the media streams. On a telephone there is a need
118     #      to suspend the playing of media elements when receiving incomming call. And
119     #      also naturally to resume the playing after completion of the event. This
120     #      behaviour is currently linked to what is called the "audio session manager".
121     #      From the integrator point of view, the audio session manager is currently
122     #      implemented under TIZEN through the libmm-... libraries (multi media libraries).
123     #      For some TIZEN environments, the integration of these libraries isn't wished,
124     #      nor also would be wished the audio session manager.
125     #      This option controls whether the audio session manager is integrated or not.
126
127 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_AUDIO_SESSION_MANAGER_WITH_MURPHY "Audio Session Manager with Murphy Support" OFF)
128     # - ENABLE_TIZEN_AUDIO_SESSION_MANAGER_WITH_MURPHY: This option controls if
129     #      audio session manager is compiled to use Murphy engine or not.
130
131 WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_GSTREAMER_VIDEO_SET_SINK "Use of a webkit provided video sink for gstreamer" OFF)
132     # - ENABLE_TIZEN_GSTREAMER_VIDEO_SET_SINK: The behaviour of this option is frankly
133     #      complicated and its name isn't obvious. For some TIZEN targets, the treatment
134     #      of the video frame buffers with gstreamer must use a concrete webkit video sink
135     #      (currently implemented by the class VideoSinkGStreamer within platform/graphics/gstreamer)
136     #      and must not use a predefined gstreamer videosink with overlay.
137     #      This option enforces that way of processing video frames even when
138     #      TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE is enabled.
139
140 #--------------------------------------------------------------------------------------
141 # Enabled WebKit Features for Tizen or Tizen Specific Features.
142 #--------------------------------------------------------------------------------------
143 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ALLINONE ON)
144 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_API_TESTS OFF)
145 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_AS_IMAGE ON)
146 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON)
147 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON)
148 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON)
149 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CDOM_BINDINGS OFF)
150 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CUSTOM_SCHEME_HANDLER ON)
151 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_FILTERS ON)
152 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST_ELEMENT ON)
153 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION ON)
154 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE ON)
155 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT ON)
156 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MALLOC OFF)
157 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILE_SYSTEM ON)
158 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
159 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON)
160 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION ON)
161 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON)
162 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON)
163 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE ON)
164 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIME ON)
165 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIMELOCAL ON)
166 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH ON)
167 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME ON)
168 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK ON)
169 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
170 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_NOTIFICATIONS ON)
171 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_VIEWPORT_ADAPTION ON)
172 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_WEBKIT_BLOB_BUILDER ON)
173 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_WEB_AUDIO ON)
174 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LLINT ON)
175 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON)
176 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM ON)
177 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEMORY_SAMPLER ON)
178 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MHTML ON)
179 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MICRODATA ON)
180 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON)
181 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS ON)
182 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OFFLINE_WEB_APPLICATIONS ON)
183 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ORIENTATION_EVENTS ON)
184 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_OVERFLOW_SCROLLING ON)
185 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)
186 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PLUGIN_PROCESS ON)
187 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REGISTER_PROTOCOL_HANDLER ON)
188 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON)
189 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SCREEN_ORIENTATION_SUPPORT ON)  # FIXME: This option should be synced with ORIENTATION_EVENTS.
190 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
191 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SPELLCHECK ON)
192 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STYLE_SCOPED ON)
193 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEXT_AUTOSIZING ON)
194 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON)
195 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_ICON_LOADING ON)
196 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON)
197 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON)
198 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON)
199 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO ON)
200 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON)
201 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON)
202 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
203 WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC ON)
204 WEBKIT_OPTION_DEFAULT_PORT_VALUE(WTF_USE_TILED_BACKING_STORE ON)
205 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON)
206 WEBKIT_OPTION_END()
207
208 MACRO (TIZEN_OPTION_EXPAND _option)
209     IF (${_option})
210         STRING(REGEX REPLACE "ENABLE_" "" _N ${_option})
211         SET(ENABLE_TIZEN_${_N} 1)
212         ADD_DEFINITIONS(-DENABLE_TIZEN_${_N}=1)
213     ENDIF ()
214 ENDMACRO ()
215
216 SET(CPACK_SOURCE_GENERATOR TBZ2)
217
218 # Optimize binary size for release builds by removing dead sections on unix/gcc
219 if (CMAKE_COMPILER_IS_GNUCC AND UNIX AND NOT APPLE)
220     set(CMAKE_C_FLAGS "-ffunction-sections -fdata-sections ${CMAKE_C_FLAGS}")
221     set(CMAKE_CXX_FLAGS "-ffunction-sections -fdata-sections ${CMAKE_CXX_FLAGS}")
222     set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections ${CMAKE_SHARED_LINKER_FLAGS}")
223 endif ()
224
225 # -----------------------------------------------------------------------------
226 # Determine which Samsung model will be defined
227 # -----------------------------------------------------------------------------
228 ADD_DEFINITIONS(-DWTF_OS_TIZEN=1)
229
230 SET(ENABLE_TIZEN_PASTEBOARD 1)
231
232 TIZEN_OPTION_EXPAND(ENABLE_BATTERY_STATUS)
233 TIZEN_OPTION_EXPAND(ENABLE_CUSTOM_SCHEME_HANDLER)
234 TIZEN_OPTION_EXPAND(ENABLE_DEVICE_ORIENTATION)
235 TIZEN_OPTION_EXPAND(ENABLE_DRAG_SUPPORT)
236 TIZEN_OPTION_EXPAND(ENABLE_FILE_SYSTEM)
237 TIZEN_OPTION_EXPAND(ENABLE_GEOLOCATION)
238 TIZEN_OPTION_EXPAND(ENABLE_INDEX_DATABASE)
239 TIZEN_OPTION_EXPAND(ENABLE_ORIENTATION_EVENTS)
240 TIZEN_OPTION_EXPAND(ENABLE_REGISTER_PROTOCOL_HANDLER)
241 TIZEN_OPTION_EXPAND(ENABLE_SCREEN_ORIENTATION_SUPPORT)
242 TIZEN_OPTION_EXPAND(ENABLE_STYLE_SCOPED)
243
244 # -----------------------------------------------------------------------------
245 # Checking Tizen dependencies.
246 # -----------------------------------------------------------------------------
247 MESSAGE("Checking Tizen dependencies...")
248 FIND_PACKAGE(CAPI REQUIRED)
249 FIND_PACKAGE(Dlog)
250 FIND_PACKAGE(EFREET REQUIRED)
251 FIND_PACKAGE(ELEMENTARY REQUIRED)
252 FIND_PACKAGE(ETHUMB REQUIRED)
253 FIND_PACKAGE(EDBUS REQUIRED)
254 FIND_PACKAGE(DBUS-1 REQUIRED)
255 FIND_PACKAGE(GLES REQUIRED)
256 FIND_PACKAGE(Media-Utils 0.1.35 REQUIRED)
257 FIND_PACKAGE(UIGadget REQUIRED)
258 FIND_PACKAGE(VConf REQUIRED)
259 FIND_PACKAGE(feedback REQUIRED)
260
261 IF (NOT ENABLE_TIZEN_DESKTOP_BROWSING)
262     ADD_DEFINITIONS(-DENABLE_GESTURE_EVENTS=1)
263 ENDIF()
264 ADD_DEFINITIONS(-DWTF_USE_EGL=1)
265 ADD_DEFINITIONS(-DWTF_USE_OPENGL_ES_2=1)
266
267 SET(ENABLE_TOUCH_ADJUSTMENT 1)
268 ADD_DEFINITIONS(-DENABLE_TOUCH_ADJUSTMENT=1)
269
270 IF (FONT_BACKEND STREQUAL "freetype")
271     FIND_PACKAGE(Freetype REQUIRED)
272     SET(WTF_USE_FREETYPE 1)
273     ADD_DEFINITIONS(-DWTF_USE_FREETYPE=1)
274
275     FIND_PACKAGE(HarfBuzz REQUIRED)
276     SET(WTF_USE_HARFBUZZ_NG 1)
277     ADD_DEFINITIONS(-DWTF_USE_HARFBUZZ_NG=1)
278 ELSE ()
279     FIND_PACKAGE(Pango REQUIRED)
280     SET(WTF_USE_PANGO 1)
281     ADD_DEFINITIONS(-DWTF_USE_PANGO=1)
282 ENDIF ()
283
284 IF(ENABLE_GEOLOCATION)
285     FIND_PACKAGE(Tizen-Location-Manager REQUIRED)
286 ENDIF()
287
288 IF (ENABLE_TIZEN_KEYGEN)
289     FIND_PACKAGE(OPENSSL REQUIRED)
290     ADD_DEFINITIONS(-DENABLE_TIZEN_KEYGEN=1)
291 ENDIF ()
292
293 IF (ENABLE_TIZEN_SQL_DATABASE_ENCRYPTION)
294     ADD_DEFINITIONS(-DENZBLE_TIZEN_SQL_DATABASE_ENCRYPTION=1)
295     ADD_DEFINITIONS(-DSQLITE_HAS_CODEC=1)
296 ENDIF ()
297
298 IF (ENABLE_TIZEN_WEBKIT2)
299     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2=1)
300 ENDIF ()
301
302 IF (Dlog_FOUND)
303     ADD_DEFINITIONS(-DENABLE_TIZEN_DLOG_SUPPORT=1)
304 ENDIF ()
305
306 IF (ENABLE_SPELLCHECK)
307     FIND_PACKAGE(Enchant REQUIRED)
308 ENDIF()
309
310 IF (WTF_USE_TILED_BACKING_STORE)
311     SET(WTF_USE_ACCELERATED_COMPOSITING 1)
312     ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_COMPOSITING=1)
313
314     SET(WTF_USE_TEXTURE_MAPPER 1)
315     ADD_DEFINITIONS(-DWTF_USE_TEXTURE_MAPPER=1)
316 ENDIF ()
317
318 IF ("${EFL_TARGET}" STREQUAL "i386")
319     MESSAGE("i386 target Build Mode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
320     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1)
321     SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1)
322     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=1)
323     ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_VIDEO_VAAPI=1)
324     SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 1)
325 ELSEIF ("${EFL_TARGET}" STREQUAL "emulator")
326     MESSAGE("i386 emulator Build Mode <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
327     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1)
328     SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1)
329     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=1)
330     SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 1)
331     ADD_DEFINITIONS(-DENABLE_TIZEN_EMULATOR=1)
332     SET(ENABLE_TIZEN_EMULATOR 1)
333 ELSE ()
334     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1)
335     SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1)
336     ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE=1)
337     SET(ENABLE_TIZEN_WEBKIT2_TILED_AC_SHARED_PLATFORM_SURFACE 1)
338     SET(ENABLE_WEBAUDIO_FFMPEG 1)
339 ENDIF ()
340
341
342 IF (ENABLE_INDEXED_DATABASE)
343     FIND_PACKAGE(LevelDB REQUIRED)
344     FIND_PACKAGE(LevelDB-MemEnv REQUIRED)
345     SET(WTF_USE_LEVELDB 1)
346     ADD_DEFINITIONS(-DWTF_USE_LEVELDB=1)
347 ENDIF()
348
349 IF (ENABLE_NOTIFICATIONS)
350     SET(ENABLE_TIZEN_NOTIFICATIONS 1)
351 ENDIF()
352
353 IF (ENABLE_WEB_AUDIO)
354     MESSAGE("WEB AUDIO is enabled...")
355     SET(ENABLE_TIZEN_WEB_AUDIO 1)
356     LIST(APPEND FEATURE_DEFINES ENABLE_TIZEN_WEB_AUDIO)
357     SET(FEATURE_DEFINES_WITH_SPACE_SEPARATOR "${FEATURE_DEFINES_WITH_SPACE_SEPARATOR} ENABLE_TIZEN_WEB_AUDIO")
358     ADD_DEFINITIONS(-DENABLE_TIZEN_WEB_AUDIO=1)
359
360     IF (ENABLE_TIZEN_AUDIO_SESSION_MANAGER)
361     ADD_DEFINITIONS(-DENABLE_TIZEN_AUDIO_SESSION_MANAGER=1)
362     ENDIF ()
363     IF(GST_API_VERSION_1)
364     SET(GSTREAMER_COMPONENTS app pbutils)
365     ELSE ()
366     SET(GSTREAMER_COMPONENTS app interfaces pbutils)
367     ENDIF()
368     SET(WTF_USE_GSTREAMER 1)
369     ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
370     IF (ENABLE_TIZEN_AUDIO_SESSION_MANAGER_WITH_MURPHY)
371     ADD_DEFINITIONS(-DENABLE_TIZEN_AUDIO_SESSION_MANAGER_WITH_MURPHY=1)
372     ENDIF ()
373
374     LIST(APPEND GSTREAMER_COMPONENTS audio fft)
375
376     IF (ENABLE_WEBAUDIO_FFMPEG)
377         SET(WTF_USE_WEBAUDIO_FFMPEG 1)
378         ADD_DEFINITIONS(-DWTF_USE_WEBAUDIO_FFMPEG=1)
379     ELSE ()
380         SET(WTF_USE_WEBAUDIO_GSTREAMER 1)
381         ADD_DEFINITIONS(-DWTF_USE_WEBAUDIO_GSTREAMER=1)
382     ENDIF ()
383
384     FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
385
386     IF (ENABLE_WEBAUDIO_FFMPEG)
387         FIND_PACKAGE(Libavcodec REQUIRED COMPONENTS)
388     ENDIF ()
389
390     SET(WEB_AUDIO_DIR
391     share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}/webaudio)
392     ADD_DEFINITIONS(-DWEB_AUDIO_DIR="/usr/${WEB_AUDIO_DIR}")
393 ENDIF ()
394
395 IF (ENABLE_VIDEO)
396     IF(GST_API_VERSION_1)
397     SET(GSTREAMER_COMPONENTS app pbutils video)
398     ELSE ()
399     SET(GSTREAMER_COMPONENTS app interfaces pbutils video)
400     ENDIF ()
401     FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
402     IF (ENABLE_TIZEN_AUDIO_SESSION_MANAGER)
403     FIND_PACKAGE(ASM REQUIRED)
404     FIND_PACKAGE(SESSION REQUIRED)
405     FIND_PACKAGE(MMSOUND REQUIRED)
406     ENDIF ()
407     SET(WTF_USE_GSTREAMER 1)
408     ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
409 ENDIF()
410
411 OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON)
412 IF (ENABLE_ECORE_X)
413     LIST(APPEND ECORE_ADDITIONAL_COMPONENTS X)
414     ADD_DEFINITIONS(-DHAVE_ECORE_X)
415     ADD_DEFINITIONS(-DWTF_PLATFORM_X11=1)
416     SET(WTF_PLATFORM_X11 1)
417 ELSE ()
418     LIST(APPEND ECORE_ADDITIONAL_COMPONENTS WAYLAND)
419     FIND_PACKAGE(Wayland REQUIRED)
420     ADD_DEFINITIONS(-DWTF_PLATFORM_WAYLAND=1)
421     SET(WTF_PLATFORM_WAYLAND 1)
422     IF (ENABLE_TIZEN_EMULATOR)
423         ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_VIDEO_VAAPI=1)
424     ENDIF ()
425 ENDIF ()
426
427 IF (ENABLE_TIZEN_GSTREAMER_VIDEO_SET_SINK AND NOT ("${EFL_TARGET}" STREQUAL "i386"))
428     IF (ENABLE_ECORE_X OR NOT ENABLE_TIZEN_EMULATOR)
429         SET(WTF_USE_TIZEN_GSTREAMER_VIDEO_SET_SINK 1)
430         ADD_DEFINITIONS(-DWTF_USE_TIZEN_GSTREAMER_VIDEO_SET_SINK=1)
431     ENDIF ()
432 ENDIF ()
433
434 IF (USE_MESA)
435     ADD_DEFINITIONS(-DWTF_USE_MESA=1)
436     SET(WTF_USE_MESA 1)
437 ENDIF ()
438
439 FIND_PACKAGE(Eina 1.2 REQUIRED)
440 FIND_PACKAGE(Evas 1.0 REQUIRED)
441 FIND_PACKAGE(Ecore 1.2 COMPONENTS Evas File Input ${ECORE_ADDITIONAL_COMPONENTS})
442 FIND_PACKAGE(Edje 1.0 REQUIRED)
443 FIND_PACKAGE(Eeze 1.2 REQUIRED)
444 #FIND_PACKAGE(Efreet 1.0 REQUIRED)
445 FIND_PACKAGE(E_DBus 1.1 COMPONENTS EUKit)
446
447 IF (ENABLE_TIZEN_SCREEN_READER)
448     FIND_PACKAGE(TTS REQUIRED)
449     ADD_DEFINITIONS(-DENABLE_TIZEN_SCREEN_READER=1)
450     ADD_DEFINITIONS(-DHAVE_ACCESSIBILITY=1)
451 ENDIF()
452
453 IF (ENABLE_TIZEN_DESKTOP_BROWSING)
454     ADD_DEFINITIONS(-DENABLE_TIZEN_DESKTOP_BROWSING=1)
455 ENDIF ()
456
457 INCLUDE_IF_EXISTS(${CMAKE_CURRENT_SOURCE_DIR}/Source/cmake/OptionsExperimental.cmake)
458
459 MESSAGE("Finish to check Tizen dependencies")