Unreviewed Windows build fix after r222360.
[WebKit-https.git] / Source / WebCore / PlatformWin.cmake
1 add_definitions(/bigobj -D__STDC_CONSTANT_MACROS)
2
3 list(APPEND WebCore_INCLUDE_DIRECTORIES
4     "${WEBCORE_DIR}/ForwardingHeaders"
5     "${CMAKE_BINARY_DIR}/../include/private"
6     "${CMAKE_BINARY_DIR}/../include/private/JavaScriptCore"
7     "${FORWARDING_HEADERS_DIR}/ANGLE"
8     "${FORWARDING_HEADERS_DIR}/ANGLE/include/KHR"
9     "${FORWARDING_HEADERS_DIR}/JavaScriptCore"
10     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/ForwardingHeaders"
11     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/API"
12     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/assembler"
13     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/builtins"
14     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/bytecode"
15     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/bytecompiler"
16     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/dfg"
17     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/disassembler"
18     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/domjit"
19     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/heap"
20     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/debugger"
21     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/interpreter"
22     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/jit"
23     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/llint"
24     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/parser"
25     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/profiler"
26     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/runtime"
27     "${FORWARDING_HEADERS_DIR}/JavaScriptCore/yarr"
28     "${FORWARDING_HEADERS_DIR}/WTF"
29     "${WEBCORE_DIR}/accessibility/win"
30     "${WEBCORE_DIR}/page/win"
31     "${WEBCORE_DIR}/platform/graphics/egl"
32     "${WEBCORE_DIR}/platform/graphics/opengl"
33     "${WEBCORE_DIR}/platform/graphics/opentype"
34     "${WEBCORE_DIR}/platform/graphics/win"
35     "${WEBCORE_DIR}/platform/network/win"
36     "${WEBCORE_DIR}/platform/win"
37     "${THIRDPARTY_DIR}/ANGLE/include"
38     "${THIRDPARTY_DIR}/ANGLE/include/egl"
39     "${DERIVED_SOURCES_PAL_DIR}"
40 )
41
42 list(APPEND WebCore_SOURCES
43     accessibility/win/AXObjectCacheWin.cpp
44     accessibility/win/AccessibilityObjectWin.cpp
45     accessibility/win/AccessibilityObjectWrapperWin.cpp
46
47     editing/SmartReplaceCF.cpp
48     editing/win/EditorWin.cpp
49
50     html/HTMLSelectElementWin.cpp
51
52     page/win/DragControllerWin.cpp
53     page/win/EventHandlerWin.cpp
54     page/win/FrameWin.cpp
55
56     platform/Cursor.cpp
57     platform/LocalizedStrings.cpp
58     platform/StaticPasteboard.cpp
59
60     platform/audio/PlatformMediaSessionManager.cpp
61
62     platform/graphics/GraphicsContext3DPrivate.cpp
63
64     platform/graphics/egl/GLContextEGL.cpp
65
66     platform/graphics/opengl/Extensions3DOpenGLCommon.cpp
67     platform/graphics/opengl/Extensions3DOpenGLES.cpp
68     platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp
69     platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp
70     platform/graphics/opengl/TemporaryOpenGLSetting.cpp
71
72     platform/graphics/opentype/OpenTypeUtilities.cpp
73
74     platform/graphics/win/ColorDirect2D.cpp
75     platform/graphics/win/ComplexTextControllerDirectWrite.cpp
76     platform/graphics/win/DIBPixelData.cpp
77     platform/graphics/win/FloatPointDirect2D.cpp
78     platform/graphics/win/FloatRectDirect2D.cpp
79     platform/graphics/win/FloatSizeDirect2D.cpp
80     platform/graphics/win/FontCacheWin.cpp
81     platform/graphics/win/FontPlatformDataWin.cpp
82     platform/graphics/win/FontWin.cpp
83     platform/graphics/win/FullScreenController.cpp
84     platform/graphics/win/GraphicsContextWin.cpp
85     platform/graphics/win/IconWin.cpp
86     platform/graphics/win/ImageWin.cpp
87     platform/graphics/win/IntPointWin.cpp
88     platform/graphics/win/IntRectWin.cpp
89     platform/graphics/win/IntSizeWin.cpp
90     platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp
91     platform/graphics/win/SimpleFontDataWin.cpp
92     platform/graphics/win/TransformationMatrixDirect2D.cpp
93     platform/graphics/win/TransformationMatrixWin.cpp
94     platform/graphics/win/UniscribeController.cpp
95
96     platform/network/win/DownloadBundleWin.cpp
97     platform/network/win/NetworkStateNotifierWin.cpp
98
99     platform/text/LocaleNone.cpp
100
101     platform/win/BString.cpp
102     platform/win/BitmapInfo.cpp
103     platform/win/ClipboardUtilitiesWin.cpp
104     platform/win/CursorWin.cpp
105     platform/win/DefWndProcWindowClass.cpp
106     platform/win/DragDataWin.cpp
107     platform/win/DragImageWin.cpp
108     platform/win/EventLoopWin.cpp
109     platform/win/FileSystemWin.cpp
110     platform/win/GDIObjectCounter.cpp
111     platform/win/GDIUtilities.cpp
112     platform/win/KeyEventWin.cpp
113     platform/win/LocalizedStringsWin.cpp
114     platform/win/LoggingWin.cpp
115     platform/win/MIMETypeRegistryWin.cpp
116     platform/win/MainThreadSharedTimerWin.cpp
117     platform/win/PasteboardWin.cpp
118     platform/win/PathWalker.cpp
119     platform/win/PlatformMouseEventWin.cpp
120     platform/win/PlatformScreenWin.cpp
121     platform/win/PopupMenuWin.cpp
122     platform/win/SSLKeyGeneratorWin.cpp
123     platform/win/ScrollbarThemeWin.cpp
124     platform/win/SearchPopupMenuWin.cpp
125     platform/win/SharedBufferWin.cpp
126     platform/win/StructuredExceptionHandlerSuppressor.cpp
127     platform/win/SystemInfo.cpp
128     platform/win/WCDataObject.cpp
129     platform/win/WebCoreBundleWin.cpp
130     platform/win/WebCoreInstanceHandle.cpp
131     platform/win/WebCoreTextRenderer.cpp
132     platform/win/WheelEventWin.cpp
133     platform/win/WidgetWin.cpp
134     platform/win/WindowMessageBroadcaster.cpp
135
136     rendering/RenderThemeWin.cpp
137 )
138
139 list(APPEND WebCore_USER_AGENT_STYLE_SHEETS
140     ${WEBCORE_DIR}/css/themeWin.css
141     ${WEBCORE_DIR}/css/themeWinQuirks.css
142 )
143
144 set(WebCore_FORWARDING_HEADERS_DIRECTORIES
145     .
146     accessibility
147     bindings
148     bridge
149     contentextensions
150     css
151     dom
152     editing
153     fileapi
154     history
155     html
156     inspector
157     loader
158     page
159     platform
160     plugins
161     rendering
162     storage
163     style
164     svg
165     websockets
166     workers
167     xml
168
169     Modules/cache
170     Modules/fetch
171     Modules/geolocation
172     Modules/indexeddb
173     Modules/mediastream
174     Modules/websockets
175
176     Modules/indexeddb/client
177     Modules/indexeddb/legacy
178     Modules/indexeddb/server
179     Modules/indexeddb/shared
180     Modules/notifications
181     Modules/webdatabase
182
183     accessibility/win
184
185     bindings/js
186
187     bridge/c
188     bridge/jsc
189
190     css/parser
191
192     html/forms
193     html/parser
194     html/shadow
195     html/track
196
197     loader/appcache
198     loader/archive
199     loader/cache
200     loader/icon
201
202
203     page/animation
204     page/csp
205     page/scrolling
206     page/win
207
208     platform/animation
209     platform/audio
210     platform/graphics
211     platform/mock
212     platform/network
213     platform/sql
214     platform/text
215     platform/win
216
217     platform/graphics/filters
218     platform/graphics/opengl
219     platform/graphics/opentype
220     platform/graphics/texmap
221     platform/graphics/transforms
222     platform/graphics/win
223
224     platform/mediastream/libwebrtc
225
226     platform/text/transcoder
227
228     rendering/line
229     rendering/shapes
230     rendering/style
231     rendering/svg
232
233     svg/animation
234     svg/graphics
235     svg/properties
236
237     svg/graphics/filters
238 )
239
240 if (USE_CF)
241     list(APPEND WebCore_INCLUDE_DIRECTORIES
242         "${WEBCORE_DIR}/platform/cf"
243         "${WEBCORE_DIR}/platform/cf/win"
244     )
245
246     list(APPEND WebCore_SOURCES
247         loader/archive/cf/LegacyWebArchive.cpp
248
249         platform/cf/CFURLExtras.cpp
250         platform/cf/FileSystemCF.cpp
251         platform/cf/KeyedDecoderCF.cpp
252         platform/cf/KeyedEncoderCF.cpp
253         platform/cf/SharedBufferCF.cpp
254         platform/cf/URLCF.cpp
255
256         platform/cf/win/CertificateCFWin.cpp
257
258         platform/text/cf/HyphenationCF.cpp
259     )
260
261     list(APPEND WebCore_FORWARDING_HEADERS_DIRECTORIES
262         history/cf
263
264         loader/archive/cf
265
266         platform/cf
267
268         platform/cf/win
269     )
270 endif ()
271
272 if (CMAKE_SIZEOF_VOID_P EQUAL 4)
273     list(APPEND WebCore_DERIVED_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/makesafeseh.obj)
274     add_custom_command(
275         OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/makesafeseh.obj
276         DEPENDS ${WEBCORE_DIR}/platform/win/makesafeseh.asm
277         COMMAND ml /safeseh /c /Fo ${DERIVED_SOURCES_WEBCORE_DIR}/makesafeseh.obj ${WEBCORE_DIR}/platform/win/makesafeseh.asm
278         VERBATIM)
279 endif ()
280
281 if (${WTF_PLATFORM_WIN_CAIRO})
282     include(PlatformWinCairo.cmake)
283 else ()
284     include(PlatformAppleWin.cmake)
285 endif ()
286
287 make_directory(${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/WebKit.resources/en.lproj)
288 file(COPY
289     "${WEBCORE_DIR}/English.lproj/Localizable.strings"
290     "${WEBCORE_DIR}/English.lproj/mediaControlsLocalizedStrings.js"
291     DESTINATION
292     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/WebKit.resources/en.lproj
293 )
294 file(COPY
295     "${WEBCORE_DIR}/Modules/mediacontrols/mediaControlsApple.css"
296     "${WEBCORE_DIR}/Modules/mediacontrols/mediaControlsApple.js"
297     DESTINATION
298     ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/WebKit.resources
299 )
300 if (WTF_PLATFORM_WIN_CAIRO AND EXISTS ${WEBKIT_LIBRARIES_DIR}/cacert.pem)
301     make_directory(${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/WebKit.resources/certificates)
302     file(COPY
303         ${WEBKIT_LIBRARIES_DIR}/cacert.pem
304         DESTINATION
305         ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/WebKit.resources/certificates
306     )
307 endif ()
308
309 file(MAKE_DIRECTORY ${FORWARDING_HEADERS_DIR}/WebCore)
310
311 set(WebCore_DERIVED_SOURCES_PRE_BUILD_COMMAND "${CMAKE_BINARY_DIR}/DerivedSources/WebCore/preBuild.cmd")
312 file(WRITE "${WebCore_DERIVED_SOURCES_PRE_BUILD_COMMAND}" "@xcopy /y /s /d /f \"${WEBCORE_DIR}/ForwardingHeaders/*.h\" \"${FORWARDING_HEADERS_DIR}/WebCore\" >nul 2>nul\n")
313 foreach (_directory ${WebCore_FORWARDING_HEADERS_DIRECTORIES})
314     file(APPEND "${WebCore_DERIVED_SOURCES_PRE_BUILD_COMMAND}" "@xcopy /y /d /f \"${WEBCORE_DIR}/${_directory}/*.h\" \"${FORWARDING_HEADERS_DIR}/WebCore\" >nul 2>nul\n")
315 endforeach ()
316
317 set(WebCore_POST_BUILD_COMMAND "${CMAKE_BINARY_DIR}/DerivedSources/WebCore/postBuild.cmd")
318 file(WRITE "${WebCore_POST_BUILD_COMMAND}" "@xcopy /y /s /d /f \"${DERIVED_SOURCES_WEBCORE_DIR}/*.h\" \"${FORWARDING_HEADERS_DIR}/WebCore\" >nul 2>nul\n")
319 file(APPEND "${WebCore_POST_BUILD_COMMAND}" "@xcopy /y /s /d /f \"${DERIVED_SOURCES_PAL_DIR}/*.h\" \"${FORWARDING_HEADERS_DIR}/WebCore\" >nul 2>nul\n")
320
321 set(WebCore_OUTPUT_NAME
322     WebCore${DEBUG_SUFFIX}
323 )
324
325 list(APPEND WebCore_LIBRARIES WTF${DEBUG_SUFFIX})
326 if (TARGET libEGL)
327     list(APPEND WebCore_LIBRARIES libEGL)
328 endif ()
329 list(APPEND WebCoreTestSupport_LIBRARIES WTF${DEBUG_SUFFIX})