[CMake] Properly test if compiler supports compiler flags
[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     ${GLIB_INCLUDE_DIRS}
19     ${GSTREAMER_INCLUDE_DIRS}
20     ${LIBSOUP_INCLUDE_DIRS}
21 )
22
23 set(WebKitGLibAPITest_LIBRARIES
24     JavaScriptCore
25     WebKit2
26     WebKitGLibAPITestsCore
27     ${GLIB_LIBRARIES}
28     ${LIBSOUP_LIBRARIES}
29 )
30
31 set(WebKitGLibAPITestExtension_LIBRARIES
32     JavaScriptCore
33     WebKit2
34     ${GLIB_LIBRARIES}
35 )
36
37 set(WebKitGLibAPIWebProcessTests
38     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp
39     ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp
40 )
41
42 macro(ADD_WK2_TEST_WEB_EXTENSION extension_name)
43     add_library(${extension_name} MODULE ${ARGN})
44     add_dependencies(${extension_name} WebKit2)
45     set_property(
46         TARGET ${extension_name}
47         APPEND
48         PROPERTY COMPILE_DEFINITIONS WEBKIT2_COMPILATION
49     )
50     set_target_properties(${extension_name} PROPERTIES
51         LIBRARY_OUTPUT_DIRECTORY ${TEST_LIBRARY_DIR}
52     )
53     target_link_libraries(${extension_name} ${WebKitGLibAPITestExtension_LIBRARIES})
54
55     if (COMPILER_IS_GCC_OR_CLANG)
56         WEBKIT_ADD_TARGET_CXX_FLAGS(${extension_name} -Wno-unused-parameter)
57     endif ()
58 endmacro()
59
60 macro(ADD_WK2_TEST test_name)
61     add_executable(${test_name} ${ARGN})
62     add_dependencies(${test_name}
63         test-gresource-bundle
64         WebExtensionTest
65     )
66     set_target_properties(${test_name} PROPERTIES
67         RUNTIME_OUTPUT_DIRECTORY ${TEST_BINARY_DIR}
68     )
69     target_link_libraries(${test_name} ${WebKitGLibAPITest_LIBRARIES})
70
71     if (COMPILER_IS_GCC_OR_CLANG)
72         WEBKIT_ADD_TARGET_CXX_FLAGS(${test_name} -Wno-unused-parameter)
73     endif ()
74 endmacro()
75
76 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
77
78 set(TEST_RESOURCES_DIR ${TEST_BINARY_DIR}/resources)
79 file(MAKE_DIRECTORY ${TEST_RESOURCES_DIR})
80
81 add_definitions(
82     -DWEBKIT_TEST_PLUGIN_DIR="${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/plugins"
83     -DWEBKIT_EXEC_PATH="${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
84     -DWEBKIT_SRC_DIR="${CMAKE_SOURCE_DIR}"
85     -DWEBKIT_TEST_WEB_EXTENSIONS_DIR="${TEST_LIBRARY_DIR}"
86     -DWEBKIT_INJECTED_BUNDLE_PATH="${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
87     -DWEBKIT_TEST_RESOURCES_DIR="${TEST_RESOURCES_DIR}"
88 )
89
90 include_directories(${WebKitGLibAPITests_INCLUDE_DIRECTORIES})
91 include_directories(SYSTEM ${WebKitGLibAPITests_SYSTEM_INCLUDE_DIRECTORIES})
92
93 add_library(WebKitGLibAPITestsCore STATIC ${WebKitGLibAPITests_SOURCES})
94 target_link_libraries(WebKitGLibAPITestsCore WebKit2)
95
96 if (COMPILER_IS_GCC_OR_CLANG)
97     WEBKIT_ADD_TARGET_CXX_FLAGS(WebKitGLibAPITestsCore -Wno-unused-parameter)
98 endif ()
99
100 add_custom_command(
101     OUTPUT ${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
102     DEPENDS ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml
103             ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/link-title.js
104     COMMAND glib-compile-resources
105             --target=${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
106             --sourcedir=${CMAKE_SOURCE_DIR}
107             ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml
108 )
109
110 add_custom_target(test-gresource-bundle
111     DEPENDS ${TEST_RESOURCES_DIR}/webkitglib-tests-resources.gresource
112 )
113
114 ADD_WK2_TEST_WEB_EXTENSION(WebExtensionTest ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp)
115 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest ${WebKitGLibAPIWebProcessTests})
116
117 ADD_WK2_TEST(TestAuthentication ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp)
118 ADD_WK2_TEST(TestAutomationSession ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp)
119 ADD_WK2_TEST(TestBackForwardList ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp)
120 ADD_WK2_TEST(TestCookieManager ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp)
121 ADD_WK2_TEST(TestDownloads ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp)
122 ADD_WK2_TEST(TestWebKitFaviconDatabase ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp)
123 ADD_WK2_TEST(TestWebKitFindController ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp)
124 ADD_WK2_TEST(TestFrame ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp)
125 ADD_WK2_TEST(TestLoaderClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp)
126 ADD_WK2_TEST(TestMultiprocess ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp)
127 ADD_WK2_TEST(TestResources ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp)
128 ADD_WK2_TEST(TestSSL ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp)
129 ADD_WK2_TEST(TestUIClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp)
130 ADD_WK2_TEST(TestWebExtensions ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp)
131 ADD_WK2_TEST(TestWebKitPolicyClient ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp)
132 ADD_WK2_TEST(TestWebKitSecurityOrigin ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp)
133 ADD_WK2_TEST(TestWebKitSettings ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp)
134 ADD_WK2_TEST(TestWebKitWebContext ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp)
135 ADD_WK2_TEST(TestWebKitWebView ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp)
136 ADD_WK2_TEST(TestWebKitUserContentManager ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp)
137 ADD_WK2_TEST(TestWebsiteData ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp)
138 ADD_WK2_TEST(TestConsoleMessage ${TOOLS_DIR}/TestWebKitAPI/Tests/WebKitGLib/TestConsoleMessage.cpp)