Enable WebGL on Windows CMake build.
[WebKit-https.git] / Source / cmake / OptionsWindows.cmake
1 add_definitions(-D_HAS_EXCEPTIONS=0 -DNOMINMAX -DUNICODE)
2
3 #FIXME: Make sure these are the same as the Windows feature defines once we get CMake working on Windows.
4 WEBKIT_OPTION_BEGIN()
5 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ALLINONE_BUILD PUBLIC ON)
6 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON)
7 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON)
8 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_VENDOR_PREFIXES PUBLIC OFF)
9 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PICTURE_SIZES PUBLIC OFF)
10 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STREAMS_API PUBLIC ON)
11 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIEW_MODE_CSS_MEDIA PUBLIC OFF)
12 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL PUBLIC ON)
13 WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC PUBLIC ON)
14 WEBKIT_OPTION_END()
15
16 include_directories("$ENV{WEBKIT_LIBRARIES}/include")
17 if (${MSVC_CXX_ARCHITECTURE_ID} STREQUAL "X86")
18     link_directories("$ENV{WEBKIT_LIBRARIES}/lib32")
19 else ()
20     link_directories("$ENV{WEBKIT_LIBRARIES}/lib64")
21 endif ()
22
23 if (MSVC)
24     add_definitions(
25         /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288
26         /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4702
27         /wd4706 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387
28     )
29     if (NOT ${CMAKE_GENERATOR} MATCHES "Ninja")
30         add_definitions(/MP)
31     endif ()
32     if (NOT ${CMAKE_CXX_FLAGS} STREQUAL "")
33         string(REGEX REPLACE "/EH[a-z]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable C++ exceptions
34         string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable RTTI
35     endif ()
36
37     foreach (flag_var
38         CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
39         CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
40         # Use the multithreaded static runtime library instead of the default DLL runtime.
41         string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
42
43         # No debug runtime, even in debug builds.
44         string(REGEX REPLACE "/MTd" "/MT" ${flag_var} "${${flag_var}}")
45         string(REGEX REPLACE "/D_DEBUG" "" ${flag_var} "${${flag_var}}")
46     endforeach ()
47 endif ()
48
49 set(PORT Win)
50 set(JavaScriptCore_LIBRARY_TYPE SHARED)
51 set(WTF_LIBRARY_TYPE SHARED)
52 set(ICU_LIBRARIES libicuuc libicuin)