[EFL][WK2] Add support for IMF composition
[WebKit-https.git] / Source / WebKit2 / PlatformEfl.cmake
1 LIST(APPEND WebKit2_SOURCES
2     Platform/efl/LoggingEfl.cpp
3     Platform/efl/ModuleEfl.cpp
4     Platform/efl/WorkQueueEfl.cpp
5     Platform/unix/SharedMemoryUnix.cpp
6
7     Platform/CoreIPC/unix/ConnectionUnix.cpp
8     Platform/CoreIPC/unix/AttachmentUnix.cpp
9
10     PluginProcess/unix/PluginControllerProxyUnix.cpp
11     PluginProcess/unix/PluginProcessMainUnix.cpp
12     PluginProcess/unix/PluginProcessUnix.cpp
13
14     Shared/API/c/cairo/WKImageCairo.cpp
15
16     Shared/API/c/gtk/WKGraphicsContextGtk.cpp
17
18     Shared/cairo/ShareableBitmapCairo.cpp
19
20     Shared/efl/LayerTreeContextEfl.cpp
21     Shared/efl/NativeWebKeyboardEventEfl.cpp
22     Shared/efl/NativeWebWheelEventEfl.cpp
23     Shared/efl/NativeWebMouseEventEfl.cpp
24     Shared/efl/NativeWebTouchEventEfl.cpp
25     Shared/efl/ProcessExecutablePathEfl.cpp
26     Shared/efl/WebEventFactory.cpp
27
28     Shared/linux/WebMemorySamplerLinux.cpp
29
30     Shared/soup/PlatformCertificateInfo.cpp
31     Shared/soup/WebCoreArgumentCodersSoup.cpp
32
33     UIProcess/DefaultUndoController.cpp
34
35     Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
36
37     UIProcess/API/C/efl/WKView.cpp
38     
39     UIProcess/API/cpp/efl/WKEinaSharedString.cpp
40
41     UIProcess/API/C/soup/WKContextSoup.cpp
42     UIProcess/API/C/soup/WKSoupRequestManager.cpp
43
44     UIProcess/API/efl/BatteryProvider.cpp
45     UIProcess/API/efl/PageViewportControllerClientEfl.cpp
46     UIProcess/API/efl/NetworkInfoProvider.cpp
47     UIProcess/API/efl/PageClientImpl.cpp
48     UIProcess/API/efl/VibrationProvider.cpp
49     UIProcess/API/efl/WebKitTextChecker.cpp
50     UIProcess/API/efl/ewk_back_forward_list.cpp
51     UIProcess/API/efl/ewk_back_forward_list_item.cpp
52     UIProcess/API/efl/ewk_context.cpp
53     UIProcess/API/efl/ewk_context_history_client.cpp
54     UIProcess/API/efl/ewk_context_request_manager_client.cpp
55     UIProcess/API/efl/ewk_cookie_manager.cpp
56     UIProcess/API/efl/ewk_download_job.cpp
57     UIProcess/API/efl/ewk_error.cpp
58     UIProcess/API/efl/ewk_favicon_database.cpp
59     UIProcess/API/efl/ewk_form_submission_request.cpp
60     UIProcess/API/efl/ewk_intent.cpp
61     UIProcess/API/efl/ewk_intent_service.cpp
62     UIProcess/API/efl/ewk_main.cpp
63     UIProcess/API/efl/ewk_navigation_data.cpp
64     UIProcess/API/efl/ewk_navigation_policy_decision.cpp
65     UIProcess/API/efl/ewk_popup_menu_item.cpp
66     UIProcess/API/efl/ewk_resource.cpp
67     UIProcess/API/efl/ewk_settings.cpp
68     UIProcess/API/efl/ewk_text_checker.cpp
69     UIProcess/API/efl/ewk_url_request.cpp
70     UIProcess/API/efl/ewk_url_response.cpp
71     UIProcess/API/efl/ewk_url_scheme_request.cpp
72     UIProcess/API/efl/ewk_view.cpp
73     UIProcess/API/efl/ewk_view_find_client.cpp
74     UIProcess/API/efl/ewk_view_form_client.cpp
75
76     UIProcess/cairo/BackingStoreCairo.cpp
77
78     UIProcess/efl/DownloadManagerEfl.cpp
79     UIProcess/efl/PageLoadClientEfl.cpp
80     UIProcess/efl/PagePolicyClientEfl.cpp
81     UIProcess/efl/PageUIClientEfl.cpp
82     UIProcess/efl/ResourceLoadClientEfl.cpp
83     UIProcess/efl/TextCheckerEfl.cpp
84     UIProcess/efl/WebContextEfl.cpp
85     UIProcess/efl/WebFullScreenManagerProxyEfl.cpp
86     UIProcess/efl/WebInspectorProxyEfl.cpp
87     UIProcess/efl/WebPageProxyEfl.cpp
88     UIProcess/efl/WebPopupMenuProxyEfl.cpp
89     UIProcess/efl/WebPreferencesEfl.cpp
90     UIProcess/efl/WebProcessProxyEfl.cpp
91
92     UIProcess/soup/WebCookieManagerProxySoup.cpp
93     UIProcess/soup/WebSoupRequestManagerClient.cpp
94     UIProcess/soup/WebSoupRequestManagerProxy.cpp
95
96     UIProcess/Launcher/efl/ProcessLauncherEfl.cpp
97
98     UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
99     UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
100
101     WebProcess/Cookies/soup/WebCookieManagerSoup.cpp
102     WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp
103
104     WebProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp
105     WebProcess/Downloads/soup/DownloadSoup.cpp
106
107     WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp
108
109     WebProcess/Plugins/Netscape/unix/PluginProxyUnix.cpp
110
111     WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp
112
113     WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp
114     WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp
115     WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp
116     WebProcess/WebCoreSupport/efl/WebPopupMenuEfl.cpp
117
118     WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp
119
120     WebProcess/WebPage/efl/WebInspectorEfl.cpp
121     WebProcess/WebPage/efl/WebPageEfl.cpp
122
123     WebProcess/efl/WebProcessMainEfl.cpp
124
125     WebProcess/soup/WebProcessSoup.cpp
126     WebProcess/soup/WebSoupRequestManager.cpp
127     WebProcess/soup/WebKitSoupRequestGeneric.cpp
128     WebProcess/soup/WebKitSoupRequestInputStream.cpp
129 )
130
131 LIST(APPEND WebKit2_MESSAGES_IN_FILES
132     UIProcess/soup/WebSoupRequestManagerProxy.messages.in
133     WebProcess/soup/WebSoupRequestManager.messages.in
134 )
135
136 LIST(APPEND WebKit2_INCLUDE_DIRECTORIES
137     "${JAVASCRIPTCORE_DIR}/llint"
138     "${WEBCORE_DIR}/platform/efl"
139     "${WEBCORE_DIR}/platform/graphics/cairo"
140     "${WEBCORE_DIR}/platform/network/soup"
141     "${WEBCORE_DIR}/platform/text/enchant"
142     "${WEBCORE_DIR}/svg/graphics"
143     "${WEBKIT2_DIR}/Shared/efl"
144     "${WEBKIT2_DIR}/Shared/soup"
145     "${WEBKIT2_DIR}/UIProcess/API/C/efl"
146     "${WEBKIT2_DIR}/UIProcess/API/C/soup"
147     "${WEBKIT2_DIR}/UIProcess/API/cpp/efl"
148     "${WEBKIT2_DIR}/UIProcess/API/efl"
149     "${WEBKIT2_DIR}/UIProcess/efl"
150     "${WEBKIT2_DIR}/UIProcess/soup"
151     "${WEBKIT2_DIR}/WebProcess/Downloads/soup"
152     "${WEBKIT2_DIR}/WebProcess/efl"
153     "${WEBKIT2_DIR}/WebProcess/soup"
154     "${WEBKIT2_DIR}/WebProcess/WebCoreSupport/efl"
155     "${WEBKIT2_DIR}/WebProcess/WebCoreSupport/soup"
156     "${WTF_DIR}/wtf/efl/"
157     "${WTF_DIR}/wtf/gobject"
158     ${CAIRO_INCLUDE_DIRS}
159     ${ECORE_INCLUDE_DIRS}
160     ${ECORE_EVAS_INCLUDE_DIRS}
161     ${EDJE_INCLUDE_DIRS}
162     ${EFREET_INCLUDE_DIRS}
163     ${EINA_INCLUDE_DIRS}
164     ${EVAS_INCLUDE_DIRS}
165     ${HARFBUZZ_INCLUDE_DIRS}
166     ${LIBSOUP_INCLUDE_DIRS}
167     ${LIBXML2_INCLUDE_DIR}
168     ${LIBXSLT_INCLUDE_DIRS}
169     ${SQLITE_INCLUDE_DIRS}
170     ${GLIB_INCLUDE_DIRS}
171     ${LIBSOUP_INCLUDE_DIRS}
172     ${WTF_DIR}
173 )
174
175 IF (WTF_USE_3D_GRAPHICS)
176     LIST(APPEND WebKit2_INCLUDE_DIRECTORIES
177         "${THIRDPARTY_DIR}/ANGLE/include/GLSLANG"
178     )
179 ENDIF ()
180
181 LIST(APPEND WebKit2_LIBRARIES
182     ${CAIRO_LIBRARIES}
183     ${ECORE_LIBRARIES}
184     ${ECORE_EVAS_LIBRARIES}
185     ${EDJE_LIBRARIES}
186     ${EFREET_LIBRARIES}
187     ${EINA_LIBRARIES}
188     ${EVAS_LIBRARIES}
189     ${Freetype_LIBRARIES}
190     ${HARFBUZZ_LIBRARIES}
191     ${LIBXML2_LIBRARIES}
192     ${OPENGL_LIBRARIES}
193     ${SQLITE_LIBRARIES}
194     ${FONTCONFIG_LIBRARIES}
195     ${PNG_LIBRARY}
196     ${JPEG_LIBRARY}
197     ${CMAKE_DL_LIBS}
198     ${GLIB_LIBRARIES}
199     ${GLIB_GIO_LIBRARIES}
200     ${GLIB_GOBJECT_LIBRARIES}
201     ${LIBSOUP_LIBRARIES}
202 )
203
204 LIST (APPEND WebProcess_SOURCES
205     efl/MainEfl.cpp
206 )
207
208 LIST (APPEND WebProcess_LIBRARIES
209     ${CAIRO_LIBRARIES}
210     ${ECORE_IMF_LIBRARIES}
211     ${ECORE_X_LIBRARIES}
212     ${EDJE_LIBRARIES}
213     ${EFLDEPS_LIBRARIES}
214     ${EVAS_LIBRARIES}
215     ${LIBXML2_LIBRARIES}
216     ${LIBXSLT_LIBRARIES}
217     ${OPENGL_LIBRARIES}
218     ${SQLITE_LIBRARIES}
219 )
220
221 ADD_CUSTOM_TARGET(forwarding-headerEfl
222     COMMAND ${PERL_EXECUTABLE} ${WEBKIT2_DIR}/Scripts/generate-forwarding-headers.pl ${WEBKIT2_DIR} ${DERIVED_SOURCES_WEBKIT2_DIR}/include efl
223 )
224 SET(ForwardingHeaders_NAME forwarding-headerEfl)
225
226 ADD_CUSTOM_TARGET(forwarding-headerSoup
227     COMMAND ${PERL_EXECUTABLE} ${WEBKIT2_DIR}/Scripts/generate-forwarding-headers.pl ${WEBKIT2_DIR} ${DERIVED_SOURCES_WEBKIT2_DIR}/include soup
228 )
229 SET(ForwardingNetworkHeaders_NAME forwarding-headerSoup)
230
231 CONFIGURE_FILE(efl/ewebkit2.pc.in ${CMAKE_BINARY_DIR}/WebKit2/efl/ewebkit2.pc @ONLY)
232 SET (EWebKit2_HEADERS
233     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/EWebKit2.h"
234     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_back_forward_list.h"
235     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_back_forward_list_item.h"
236     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_context.h"
237     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_cookie_manager.h"
238     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_download_job.h"
239     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_error.h"
240     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_favicon_database.h"
241     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_form_submission_request.h"
242     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_intent.h"
243     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_intent_service.h"
244     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_main.h"
245     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_navigation_data.h"
246     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_navigation_policy_decision.h"
247     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_popup_menu_item.h"
248     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_resource.h"
249     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_settings.h"
250     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_text_checker.h"
251     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_touch.h"
252     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_request.h"
253     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_response.h"
254     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_url_scheme_request.h"
255     "${CMAKE_CURRENT_SOURCE_DIR}/UIProcess/API/efl/ewk_view.h"
256 )
257
258 INSTALL(FILES ${CMAKE_BINARY_DIR}/WebKit2/efl/ewebkit2.pc DESTINATION lib/pkgconfig)
259 INSTALL(FILES ${EWebKit2_HEADERS} DESTINATION include/${WebKit2_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR})
260
261 IF (ENABLE_PLUGIN_PROCESS)
262     ADD_DEFINITIONS(-DENABLE_PLUGIN_PROCESS=1)
263
264     SET (PluginProcess_EXECUTABLE_NAME PluginProcess)
265     LIST (APPEND PluginProcess_INCLUDE_DIRECTORIES
266         "${WEBKIT2_DIR}/PluginProcess/unix"
267     )
268
269     INCLUDE_DIRECTORIES(${PluginProcess_INCLUDE_DIRECTORIES})
270
271     LIST (APPEND PluginProcess_SOURCES
272         ${WEBKIT2_DIR}/unix/PluginMainUnix.cpp
273     )
274
275     SET(PluginProcess_LIBRARIES
276         ${WebKit2_LIBRARY_NAME}
277     )
278
279     ADD_EXECUTABLE(${PluginProcess_EXECUTABLE_NAME} ${PluginProcess_SOURCES})
280     TARGET_LINK_LIBRARIES(${PluginProcess_EXECUTABLE_NAME} ${PluginProcess_LIBRARIES})
281     INSTALL(TARGETS ${PluginProcess_EXECUTABLE_NAME} DESTINATION "${EXEC_INSTALL_DIR}")
282 ENDIF () # ENABLE_PLUGIN_PROCESS
283
284 INCLUDE_DIRECTORIES(${THIRDPARTY_DIR}/gtest/include)
285
286 SET(EWK2UnitTests_LIBRARIES
287     ${WTF_LIBRARY_NAME}
288     ${JavaScriptCore_LIBRARY_NAME}
289     ${WebCore_LIBRARY_NAME}
290     ${WebKit2_LIBRARY_NAME}
291     ${CAIRO_LIBRARIES}
292     ${ECORE_LIBRARIES}
293     ${ECORE_EVAS_LIBRARIES}
294     ${EVAS_LIBRARIES}
295     ${GLIB_LIBRARIES}
296     ${GLIB_GIO_LIBRARIES}
297     ${GLIB_GOBJECT_LIBRARIES}
298     ${LIBSOUP_LIBRARIES}
299     gtest
300 )
301
302 IF (ENABLE_GLIB_SUPPORT)
303     LIST(APPEND EWK2UnitTests_LIBRARIES
304         ${GLIB_LIBRARIES}
305         ${GLIB_GTHREAD_LIBRARIES}
306     )
307 ENDIF()
308
309 SET(WEBKIT2_EFL_TEST_DIR "${WEBKIT2_DIR}/UIProcess/API/efl/tests")
310 SET(TEST_RESOURCES_DIR ${WEBKIT2_EFL_TEST_DIR}/resources)
311 SET(TEST_INJECTED_BUNDLE_DIR ${WEBKIT2_EFL_TEST_DIR}/InjectedBundle)
312
313 ADD_DEFINITIONS(-DTEST_RESOURCES_DIR=\"${TEST_RESOURCES_DIR}\"
314     -DTEST_LIB_DIR=\"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\"
315     -DTEST_THEME_DIR=\"${THEME_BINARY_DIR}\"
316     -DGTEST_LINKED_AS_SHARED_LIBRARY=1
317     -DLIBEXECDIR=\"${CMAKE_INSTALL_PREFIX}/${EXEC_INSTALL_DIR}\"
318     -DWEBPROCESSNAME=\"${WebProcess_EXECUTABLE_NAME}\"
319     -DPLUGINPROCESSNAME=\"${PluginProcess_EXECUTABLE_NAME}\"
320 )
321
322 ADD_LIBRARY(ewk2UnitTestUtils
323     ${WEBKIT2_EFL_TEST_DIR}/UnitTestUtils/EWK2UnitTestBase.cpp
324     ${WEBKIT2_EFL_TEST_DIR}/UnitTestUtils/EWK2UnitTestEnvironment.cpp
325     ${WEBKIT2_EFL_TEST_DIR}/UnitTestUtils/EWK2UnitTestMain.cpp
326     ${WEBKIT2_EFL_TEST_DIR}/UnitTestUtils/EWK2UnitTestServer.cpp
327 )
328
329 TARGET_LINK_LIBRARIES(ewk2UnitTestUtils ${EWK2UnitTests_LIBRARIES})
330
331 # The "ewk" on the test name needs to be suffixed with "2", otherwise it
332 # will clash with tests from the WebKit 1 test suite.
333 SET(EWK2UnitTests_BINARIES
334     test_ewk2_back_forward_list
335     test_ewk2_context
336     test_ewk2_context_history_callbacks
337     test_ewk2_cookie_manager
338     test_ewk2_download_job
339     test_ewk2_eina_shared_string
340     test_ewk2_favicon_database
341     test_ewk2_refptr_evas_object
342     test_ewk2_intents
343     test_ewk2_settings
344     test_ewk2_text_checker
345     test_ewk2_view
346 )
347
348 IF (ENABLE_API_TESTS)
349     FOREACH (testName ${EWK2UnitTests_BINARIES})
350         ADD_EXECUTABLE(${testName} ${WEBKIT2_EFL_TEST_DIR}/${testName}.cpp)
351         ADD_TEST(${testName} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${testName})
352         SET_TESTS_PROPERTIES(${testName} PROPERTIES TIMEOUT 60)
353         TARGET_LINK_LIBRARIES(${testName} ${EWK2UnitTests_LIBRARIES} ewk2UnitTestUtils)
354     ENDFOREACH ()
355
356     ADD_LIBRARY(ewk2UnitTestInjectedBundleSample SHARED ${TEST_INJECTED_BUNDLE_DIR}/injected_bundle_sample.cpp)
357     TARGET_LINK_LIBRARIES(ewk2UnitTestInjectedBundleSample ${WebKit2_LIBRARY_NAME})
358 ENDIF ()
359
360 IF (ENABLE_SPELLCHECK)
361     LIST(APPEND WebKit2_INCLUDE_DIRECTORIES
362         ${ENCHANT_INCLUDE_DIRS}
363     )
364     LIST(APPEND WebKit2_LIBRARIES
365         ${ENCHANT_LIBRARIES}
366     )
367 ENDIF()