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