edb8a13610297c0d9a50599c887592c50087c663
[WebKit-https.git] / Tools / TestWebKitAPI / glib / CMakeLists.txt
1 set(WebKitGLibAPITests_SOURCES
2     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp
3     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp
4     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp
5     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib/TestMain.cpp
6     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp
7 )
8
9 set(WebKitGLibAPITests_INCLUDE_DIRECTORIES
10     ${CMAKE_SOURCE_DIR}/Source
11     ${CMAKE_SOURCE_DIR}/Source/WTF
12     ${FORWARDING_HEADERS_DIR}
13     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib
14     ${TOOLS_DIR}/TestWebKitAPI/glib/WebKitGLib
15 )
16
17 set(WebKitGLibAPITests_SYSTEM_INCLUDE_DIRECTORIES
18     ${CAIRO_INCLUDE_DIRS}
19     ${GLIB_INCLUDE_DIRS}
20     ${GSTREAMER_INCLUDE_DIRS}
21     ${LIBSOUP_INCLUDE_DIRS}
22 )
23
24 set(WebKitAPITest_LIBRARIES
25     JavaScriptCore
26     WebKit
27 )
28
29 set(WebKitGLibAPITest_LIBRARIES
30     ${WebKitAPITest_LIBRARIES}
31     WebKitGLibAPITestsCore
32     ${GLIB_LIBRARIES}
33     ${LIBSOUP_LIBRARIES}
34 )
35
36 set(WebKitGLibAPITestExtension_LIBRARIES
37     JavaScriptCore
38     WebKit
39     ${GLIB_LIBRARIES}
40 )
41
42 set(WebKitGLibAPIWebProcessTests
43     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/DOMElementTest.cpp
44     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/EditorTest.cpp
45     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp
46     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp
47 )
48
49 macro(ADD_WK2_TEST_WEB_EXTENSION extension_name)
50     add_library(${extension_name} MODULE ${ARGN})
51     add_dependencies(${extension_name} WebKit)
52     set_property(
53         TARGET ${extension_name}
54         APPEND
55         PROPERTY COMPILE_DEFINITIONS WEBKIT2_COMPILATION
56     )
57     set_target_properties(${extension_name} PROPERTIES
58         LIBRARY_OUTPUT_DIRECTORY ${TEST_LIBRARY_DIR}
59     )
60     target_link_libraries(${extension_name} ${WebKitGLibAPITestExtension_LIBRARIES})
61
62     if (COMPILER_IS_GCC_OR_CLANG)
63         WEBKIT_ADD_TARGET_CXX_FLAGS(${extension_name} -Wno-unused-parameter)
64     endif ()
65 endmacro()
66
67 macro(ADD_WK2_TEST test_name)
68     add_executable(${test_name} ${ARGN})
69     add_dependencies(${test_name}
70         test-gresource-bundle
71         WebExtensionTest
72     )
73     set_target_properties(${test_name} PROPERTIES
74         RUNTIME_OUTPUT_DIRECTORY ${TEST_BINARY_DIR}
75     )
76     target_link_libraries(${test_name} ${WebKitGLibAPITest_LIBRARIES})
77
78     if (COMPILER_IS_GCC_OR_CLANG)
79         WEBKIT_ADD_TARGET_CXX_FLAGS(${test_name} -Wno-unused-parameter)
80     endif ()
81 endmacro()
82
83 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
84
85 set(TEST_RESOURCES_DIR ${TEST_BINARY_DIR}/resources)
86 file(MAKE_DIRECTORY ${TEST_RESOURCES_DIR})
87
88 add_definitions(
89     -DWEBKIT_TEST_PLUGIN_DIR="${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/plugins"
90     -DWEBKIT_EXEC_PATH="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
91     -DWEBKIT_SRC_DIR="${CMAKE_SOURCE_DIR}"
92     -DWEBKIT_TEST_WEB_EXTENSIONS_DIR="${TEST_LIBRARY_DIR}"
93     -DWEBKIT_INJECTED_BUNDLE_PATH="${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
94     -DWEBKIT_TEST_RESOURCES_DIR="${TEST_RESOURCES_DIR}"
95 )
96
97 include_directories(${WebKitGLibAPITests_INCLUDE_DIRECTORIES})
98 include_directories(SYSTEM ${WebKitGLibAPITests_SYSTEM_INCLUDE_DIRECTORIES})
99
100 add_library(WebKitGLibAPITestsCore STATIC ${WebKitGLibAPITests_SOURCES})
101 target_link_libraries(WebKitGLibAPITestsCore WebKit)
102
103 if (COMPILER_IS_GCC_OR_CLANG)
104     WEBKIT_ADD_TARGET_CXX_FLAGS(WebKitGLibAPITestsCore -Wno-unused-parameter)
105 endif ()
106
107 add_custom_command(
108     OUTPUT ${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
109     DEPENDS ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml
110             ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/link-title.js
111     COMMAND glib-compile-resources
112             --target=${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
113             --sourcedir=${CMAKE_SOURCE_DIR}
114             ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml
115 )
116
117 add_custom_target(test-gresource-bundle
118     DEPENDS ${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
119 )
120
121 ADD_WK2_TEST_WEB_EXTENSION(WebExtensionTest ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp)
122 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest ${WebKitGLibAPIWebProcessTests})
123
124 ADD_WK2_TEST(TestAuthentication ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp)
125 ADD_WK2_TEST(TestAutomationSession ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp)
126 ADD_WK2_TEST(TestBackForwardList ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp)
127 ADD_WK2_TEST(TestDownloads ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp)
128 ADD_WK2_TEST(TestWebKitFaviconDatabase ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp)
129 ADD_WK2_TEST(TestWebKitFindController ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp)
130 ADD_WK2_TEST(TestEditor ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestEditor.cpp)
131 ADD_WK2_TEST(TestFrame ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp)
132 ADD_WK2_TEST(TestLoaderClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp)
133 ADD_WK2_TEST(TestMultiprocess ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp)
134 ADD_WK2_TEST(TestResources ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp)
135 ADD_WK2_TEST(TestSSL ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp)
136 ADD_WK2_TEST(TestUIClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp)
137 ADD_WK2_TEST(TestWebExtensions ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp)
138 ADD_WK2_TEST(TestWebKitPolicyClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp)
139 ADD_WK2_TEST(TestWebKitSecurityOrigin ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp)
140 ADD_WK2_TEST(TestWebKitSettings ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp)
141 ADD_WK2_TEST(TestWebKitWebContext ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp)
142 ADD_WK2_TEST(TestWebKitWebView ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp)
143 ADD_WK2_TEST(TestWebKitUserContentManager ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp)
144 ADD_WK2_TEST(TestWebsiteData ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp)
145 ADD_WK2_TEST(TestConsoleMessage ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp)
146 ADD_WK2_TEST(TestDOMElement ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestDOMElement.cpp)
147
148 # FIXME: Enable for WPE
149 if (PORT STREQUAL "GTK")
150     ADD_WK2_TEST(TestCookieManager ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp)
151 endif ()
152
153 macro(ADD_WPE_QT_TEST test_name)
154     add_executable(${test_name} ${ARGN} ${TOOLS_DIR}/TestWebKitAPI/Tests/WPEQt/WPEQtTest.cpp)
155     set_target_properties(${test_name} PROPERTIES
156         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/TestWebKitAPI/WPEQt
157         AUTOMOC ON
158         CXX_STANDARD 14
159     )
160     target_compile_definitions(${test_name} PUBLIC QT_NO_KEYWORDS=1)
161     target_link_libraries(${test_name} ${WPEQtAPITest_LIBRARIES})
162     target_include_directories(${test_name} SYSTEM PRIVATE ${WPEQtAPITests_INCLUDE_DIRECTORIES})
163     target_include_directories(${test_name} PRIVATE
164       ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Source/WebKit/UIProcess/API/wpe/qt)
165 endmacro()
166
167 if (PORT STREQUAL "WPE" AND ENABLE_WPE_QT_API)
168     set(WPEQtAPITests_INCLUDE_DIRECTORIES
169         ${Qt5_INCLUDE_DIRS}
170         ${Qt5Test_INCLUDE_DIRS}
171     )
172     set(WPEQtAPITest_LIBRARIES
173          ${WebKitAPITest_LIBRARIES}
174          Qt5::Test qtwpe
175     )
176     ADD_WPE_QT_TEST(TestLoad ${TOOLS_DIR}/TestWebKitAPI/Tests/WPEQt/TestLoad.cpp)
177     ADD_WPE_QT_TEST(TestLoadHtml ${TOOLS_DIR}/TestWebKitAPI/Tests/WPEQt/TestLoadHtml.cpp)
178     ADD_WPE_QT_TEST(TestLoadRequest ${TOOLS_DIR}/TestWebKitAPI/Tests/WPEQt/TestLoadRequest.cpp)
179     ADD_WPE_QT_TEST(TestRunJavaScript ${TOOLS_DIR}/TestWebKitAPI/Tests/WPEQt/TestRunJavaScript.cpp)
180 endif ()