Resurrect CMake build on Windows.
authorachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Jul 2015 15:55:03 +0000 (15:55 +0000)
committerachristensen@apple.com <achristensen@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Jul 2015 15:55:03 +0000 (15:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=147083

Reviewed by Gyuyoung Kim.

.:

* Source/cmake/OptionsCommon.cmake:
* Source/cmake/OptionsWindows.cmake:
Change features to get it to compile.  Still not a complete feature set.

Source/WebCore:

* CMakeLists.txt:
* PlatformWin.cmake:
* dom/Document.cpp:
(WebCore::Document::~Document):
* dom/Range.cpp:
* dom/Text.cpp:
* editing/CompositeEditCommand.cpp:
* platform/graphics/texmap/BitmapTexturePool.cpp:
(WebCore::BitmapTexturePool::createTexture):
* platform/win/WindowsTouch.h:
* rendering/RenderThemeWin.h:
Fixed some including and compiling quirks needed for different configurations.

Source/WebKit:

* PlatformWin.cmake: Added.
Based on original work by Patrick Gansterer and Mark Salisbury
in https://bugs.webkit.org/show_bug.cgi?id=72816

Source/WTF:

* wtf/PlatformWin.cmake:

Tools:

* DumpRenderTree/CMakeLists.txt:
* DumpRenderTree/PlatformWin.cmake: Added.
* WinLauncher/CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@187022 268f45cc-cd09-0410-ab3c-d52691b4dbfc

21 files changed:
ChangeLog
Source/WTF/ChangeLog
Source/WTF/wtf/PlatformWin.cmake
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/PlatformWin.cmake
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/Range.cpp
Source/WebCore/dom/Text.cpp
Source/WebCore/editing/CompositeEditCommand.cpp
Source/WebCore/platform/graphics/texmap/BitmapTexturePool.cpp
Source/WebCore/platform/win/WindowsTouch.h
Source/WebCore/rendering/RenderThemeWin.h
Source/WebKit/ChangeLog
Source/WebKit/PlatformWin.cmake [new file with mode: 0644]
Source/cmake/OptionsCommon.cmake
Source/cmake/OptionsWindows.cmake
Tools/ChangeLog
Tools/DumpRenderTree/CMakeLists.txt
Tools/DumpRenderTree/PlatformWin.cmake [new file with mode: 0644]
Tools/WinLauncher/CMakeLists.txt

index b14f0c2..93fc5ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2015-07-20  Alex Christensen  <achristensen@webkit.org>
+
+        Resurrect CMake build on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=147083
+
+        Reviewed by Gyuyoung Kim.
+
+        * Source/cmake/OptionsCommon.cmake:
+        * Source/cmake/OptionsWindows.cmake:
+        Change features to get it to compile.  Still not a complete feature set.
+
 2015-07-19  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         [GTK] Add seccomp filters support
index 9b10952..fe399c0 100644 (file)
@@ -1,3 +1,12 @@
+2015-07-20  Alex Christensen  <achristensen@webkit.org>
+
+        Resurrect CMake build on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=147083
+
+        Reviewed by Gyuyoung Kim.
+
+        * wtf/PlatformWin.cmake:
+
 2015-07-20  Per Arne Vollan  <peavo@outlook.com>
 
         JavaScriptCore performance is very bad on Windows
index 97f7399..361cf6c 100644 (file)
@@ -4,8 +4,6 @@ list(APPEND WTF_SOURCES
     text/cf/StringImplCF.cpp
     text/cf/StringViewCF.cpp
 
-    threads/win/BinarySemaphoreWin.cpp
-
     win/MainThreadWin.cpp
     win/RunLoopWin.cpp
     win/WTFDLL.cpp
index d5460b7..71a65fb 100644 (file)
@@ -3513,6 +3513,7 @@ list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/EventFactory.cpp)
 
 GENERATE_EVENT_FACTORY(${WEBCORE_DIR}/dom/EventTargetFactory.in EventTargetInterfaces.h)
 ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/dom/EventNames.cpp EventTargetInterfaces.h)
+list(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/EventTargetInterfaces.h)
 
 
 GENERATE_EXCEPTION_CODE_DESCRIPTION(${WEBCORE_DIR}/dom/DOMExceptions.in ExceptionCodeDescription.cpp)
index 8764553..6db9157 100644 (file)
@@ -1,3 +1,23 @@
+2015-07-20  Alex Christensen  <achristensen@webkit.org>
+
+        Resurrect CMake build on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=147083
+
+        Reviewed by Gyuyoung Kim.
+
+        * CMakeLists.txt:
+        * PlatformWin.cmake:
+        * dom/Document.cpp:
+        (WebCore::Document::~Document):
+        * dom/Range.cpp:
+        * dom/Text.cpp:
+        * editing/CompositeEditCommand.cpp:
+        * platform/graphics/texmap/BitmapTexturePool.cpp:
+        (WebCore::BitmapTexturePool::createTexture):
+        * platform/win/WindowsTouch.h:
+        * rendering/RenderThemeWin.h:
+        Fixed some including and compiling quirks needed for different configurations.
+
 2015-07-20  Per Arne Vollan  <peavo@outlook.com>
 
         JavaScriptCore performance is very bad on Windows
index 3cfbaea..6e94a75 100644 (file)
@@ -21,6 +21,9 @@ list(APPEND WebCore_SOURCES
     platform/Cursor.cpp
     platform/LocalizedStrings.cpp
     platform/PlatformStrategies.cpp
+    platform/VNodeTracker.cpp
+
+    platform/audio/PlatformMediaSessionManager.cpp
 
     platform/graphics/opentype/OpenTypeUtilities.cpp
 
@@ -48,6 +51,7 @@ list(APPEND WebCore_SOURCES
     platform/win/LanguageWin.cpp
     platform/win/LocalizedStringsWin.cpp
     platform/win/LoggingWin.cpp
+    platform/win/MemoryPressureHandlerWin.cpp
     platform/win/MIMETypeRegistryWin.cpp
     platform/win/PasteboardWin.cpp
     platform/win/PlatformMouseEventWin.cpp
index 8ee4939..102bc95 100644 (file)
@@ -633,7 +633,9 @@ Document::~Document()
     if (m_cachedResourceLoader->document() == this)
         m_cachedResourceLoader->setDocument(nullptr);
 
+#if ENABLE(VIDEO)
     PlatformMediaSessionManager::sharedManager().stopAllMediaPlaybackForDocument(this);
+#endif
     
     // We must call clearRareData() here since a Document class inherits TreeScope
     // as well as Node. See a comment on TreeScope.h for the reason.
index 2673add..bf2481b 100644 (file)
@@ -28,6 +28,7 @@
 #include "ClientRect.h"
 #include "ClientRectList.h"
 #include "DocumentFragment.h"
+#include "Event.h"
 #include "Frame.h"
 #include "FrameView.h"
 #include "HTMLElement.h"
index 43d96b1..12b3fc1 100644 (file)
@@ -22,6 +22,7 @@
 #include "config.h"
 #include "Text.h"
 
+#include "Event.h"
 #include "RenderCombineText.h"
 #include "RenderSVGInlineText.h"
 #include "RenderText.h"
index b541ea1..3d77942 100644 (file)
@@ -37,6 +37,7 @@
 #include "Editor.h"
 #include "EditorInsertAction.h"
 #include "ElementTraversal.h"
+#include "Event.h"
 #include "ExceptionCodePlaceholder.h"
 #include "Frame.h"
 #include "HTMLDivElement.h"
index 67b91f0..6dc51a8 100644 (file)
@@ -104,6 +104,8 @@ PassRefPtr<BitmapTexture> BitmapTexturePool::createTexture()
 #if USE(TEXTURE_MAPPER_GL)
     BitmapTextureGL* texture = new BitmapTextureGL(m_context3D);
     return adoptRef(texture);
+#else
+    return nullptr;
 #endif
 }
 
index 9a26807..57d0de4 100644 (file)
 #define GC_PRESSANDTAP 0x00000001
 #define GC_ROLLOVER GC_PRESSANDTAP
 
-// GESTUREINFO struct definition
-typedef struct tagGESTUREINFO {
-    UINT cbSize;                    // size, in bytes, of this structure (including variable length Args field)
-    DWORD dwFlags;                  // see GF_* flags
-    DWORD dwID;                     // gesture ID, see GID_* defines
-    HWND hwndTarget;                // handle to window targeted by this gesture
-    POINTS ptsLocation;             // current location of this gesture
-    DWORD dwInstanceID;             // internally used
-    DWORD dwSequenceID;             // internally used
-    ULONGLONG ullArguments;         // arguments for gestures whose arguments fit in 8 BYTES
-    UINT cbExtraArgs;               // size, in bytes, of extra arguments, if any, that accompany this gesture
-} GESTUREINFO, *PGESTUREINFO;
-typedef GESTUREINFO const * PCGESTUREINFO;
-
-// GESTURECONFIG struct defintion
-typedef struct tagGESTURECONFIG {
-    DWORD dwID;                     // gesture ID
-    DWORD dwWant;                   // settings related to gesture ID that are to be turned on
-    DWORD dwBlock;                  // settings related to gesture ID that are to be turned off
-} GESTURECONFIG, *PGESTURECONFIG;
-
-/*
- * Gesture notification structure
- *   - The WM_GESTURENOTIFY message lParam contains a pointer to this structure.
- *   - The WM_GESTURENOTIFY message notifies a window that gesture recognition is
- *     in progress and a gesture will be generated if one is recognized under the
- *     current gesture settings.
- */
-typedef struct tagGESTURENOTIFYSTRUCT {
-    UINT cbSize;                    // size, in bytes, of this structure
-    DWORD dwFlags;                  // unused
-    HWND hwndTarget;                // handle to window targeted by the gesture
-    POINTS ptsLocation;             // starting location
-    DWORD dwInstanceID;             // internally used
-} GESTURENOTIFYSTRUCT, *PGESTURENOTIFYSTRUCT;
-
-DECLARE_HANDLE(HGESTUREINFO);
-
 #endif
index d162d82..379b1dd 100644 (file)
@@ -26,7 +26,7 @@
 
 #include "RenderTheme.h"
 
-#if WIN32
+#ifdef WIN32
 typedef void* HANDLE;
 typedef struct HINSTANCE__* HINSTANCE;
 typedef HINSTANCE HMODULE;
index daf8396..df2b6c0 100644 (file)
@@ -1,3 +1,14 @@
+2015-07-20  Alex Christensen  <achristensen@webkit.org>
+
+        Resurrect CMake build on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=147083
+
+        Reviewed by Gyuyoung Kim.
+
+        * PlatformWin.cmake: Added.
+        Based on original work by Patrick Gansterer and Mark Salisbury
+        in https://bugs.webkit.org/show_bug.cgi?id=72816
+
 2015-07-16  Brent Fulgham  <bfulgham@apple.com>
 
         [Win] Unreviewed gardening.
diff --git a/Source/WebKit/PlatformWin.cmake b/Source/WebKit/PlatformWin.cmake
new file mode 100644 (file)
index 0000000..c332907
--- /dev/null
@@ -0,0 +1,423 @@
+if (${WTF_PLATFORM_WIN_CAIRO})
+    add_definitions(-DUSE_CAIRO=1 -DUSE_CURL=1 -DWEBKIT_EXPORTS=1)
+    list(APPEND WebKit_INCLUDE_DIRECTORIES
+        "$ENV{WEBKIT_LIBRARIES}/include"
+        "$ENV{WEBKIT_LIBRARIES}/include/cairo"
+        "$ENV{WEBKIT_LIBRARIES}/include/sqlite"
+        "${WEBCORE_DIR}/platform/graphics/cairo"
+    )
+    list(APPEND WebKit_SOURCES_Classes
+        win/WebDownloadCURL.cpp
+        win/WebURLAuthenticationChallengeSenderCURL.cpp
+    )
+    list(APPEND WebKit_LIBRARIES
+        libeay32.lib
+        ssleay32.lib
+    )
+endif ()
+
+list(APPEND WebKit_INCLUDE_DIRECTORIES
+    Storage
+    win
+    win/plugins
+    win/WebCoreSupport
+    WebCoreSupport
+    WebKit.vcxproj/WebKit
+    "${DERIVED_SOURCES_WEBKIT_DIR}/include"
+    "${CMAKE_SOURCE_DIR}/Source"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/include/WebCore"
+    "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}"
+    "${DERIVED_SOURCES_WEBCORE_DIR}"
+    "${DERIVED_SOURCES_DIR}"
+    "${JAVASCRIPTCORE_DIR}/dfg"
+    "${WEBCORE_DIR}/style"
+    "${WEBCORE_DIR}/loader/archive"
+    "${WEBCORE_DIR}/loader/archive/cf"
+    "${WEBCORE_DIR}/page/scrolling"
+    "${WEBCORE_DIR}/platform/cf"
+    "${WEBCORE_DIR}/platform/graphics/win"
+    "${WEBCORE_DIR}/platform/graphics/filters"
+    "${WEBCORE_DIR}/platform/audio"
+    "${WEBCORE_DIR}/platform/win"
+    "${WEBCORE_DIR}/rendering/line"
+    "${WEBCORE_DIR}/html/shadow"
+    "${WEBCORE_DIR}/modules/websockets"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces"
+    "${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/inspector"
+)
+
+list(APPEND WebKit_INCLUDES
+    win/CFDictionaryPropertyBag.h
+    win/COMEnumVariant.h
+    win/COMPropertyBag.h
+    win/COMVariantSetter.h
+    win/CodeAnalysisConfig.h
+    win/DOMCSSClasses.h
+    win/DOMCoreClasses.h
+    win/DOMEventsClasses.h
+    win/DOMHTMLClasses.h
+    win/DefaultDownloadDelegate.h
+    win/DefaultPolicyDelegate.h
+    win/ForEachCoClass.h
+    win/FullscreenVideoController.h
+    win/MarshallingHelpers.h
+    win/MemoryStream.h
+    win/ProgIDMacros.h
+    win/WebActionPropertyBag.h
+    win/WebArchive.h
+    win/WebBackForwardList.h
+    win/WebCache.h
+    win/WebCachedFramePlatformData.h
+    win/WebCoreStatistics.h
+    win/WebDataSource.h
+    win/WebDatabaseManager.h
+    win/WebDocumentLoader.h
+    win/WebDownload.h
+    win/WebDropSource.h
+    win/WebElementPropertyBag.h
+    win/WebError.h
+    win/WebFrame.h
+    win/WebFramePolicyListener.h
+    win/WebGeolocationPolicyListener.h
+    win/WebGeolocationPosition.h
+    win/WebHTMLRepresentation.h
+    win/WebHistory.h
+    win/WebHistoryItem.h
+    win/WebIconDatabase.h
+    win/WebJavaScriptCollector.h
+    win/WebKitCOMAPI.h
+    win/WebKitClassFactory.h
+    win/WebKitDLL.h
+    win/WebKitGraphics.h
+    win/WebKitLogging.h
+    win/WebKitStatistics.h
+    win/WebKitStatisticsPrivate.h
+    win/WebKitSystemBits.h
+    win/WebLocalizableStrings.h
+    win/WebMutableURLRequest.h
+    win/WebNavigationData.h
+    win/WebNotification.h
+    win/WebNotificationCenter.h
+    win/WebPreferenceKeysPrivate.h
+    win/WebPreferences.h
+    win/WebResource.h
+    win/WebScriptObject.h
+    win/WebScriptWorld.h
+    win/WebSecurityOrigin.h
+    win/WebSerializedJSValue.h
+    win/WebTextRenderer.h
+    win/WebURLAuthenticationChallenge.h
+    win/WebURLAuthenticationChallengeSender.h
+    win/WebURLCredential.h
+    win/WebURLProtectionSpace.h
+    win/WebURLResponse.h
+    win/WebUserContentURLPattern.h
+    win/WebView.h
+    win/WebWorkersPrivate.h
+)
+
+list(APPEND WebKit_SOURCES_Classes
+    Storage/StorageAreaImpl.cpp
+    Storage/StorageAreaSync.cpp
+    Storage/StorageNamespaceImpl.cpp
+    Storage/StorageSyncManager.cpp
+    Storage/StorageThread.cpp
+    Storage/StorageTracker.cpp
+    Storage/WebDatabaseProvider.cpp
+    Storage/WebStorageNamespaceProvider.cpp
+
+    cf/WebCoreSupport/WebInspectorClientCF.cpp
+
+    win/AccessibleBase.cpp
+    win/AccessibleDocument.cpp
+    win/AccessibleImage.cpp
+    win/AccessibleTextImpl.cpp
+    win/CFDictionaryPropertyBag.cpp
+    win/DOMCSSClasses.cpp
+    win/DOMCoreClasses.cpp
+    win/DOMEventsClasses.cpp
+    win/DOMHTMLClasses.cpp
+    win/DefaultDownloadDelegate.cpp
+    win/DefaultPolicyDelegate.cpp
+    win/ForEachCoClass.cpp
+    win/FullscreenVideoController.cpp
+    win/MarshallingHelpers.cpp
+    win/MemoryStream.cpp
+    win/WebActionPropertyBag.cpp
+    win/WebArchive.cpp
+    win/WebBackForwardList.cpp
+    win/WebCache.cpp
+    win/WebCoreStatistics.cpp
+    win/WebDataSource.cpp
+    win/WebDatabaseManager.cpp
+    win/WebDocumentLoader.cpp
+    win/WebDownload.cpp
+    win/WebDropSource.cpp
+    win/WebElementPropertyBag.cpp
+    win/WebError.cpp
+    win/WebFrame.cpp
+    win/WebFramePolicyListener.cpp
+    win/WebGeolocationPolicyListener.cpp
+    win/WebGeolocationPosition.cpp
+    win/WebHTMLRepresentation.cpp
+    win/WebHistory.cpp
+    win/WebHistoryItem.cpp
+    win/WebIconDatabase.cpp
+    win/WebInspector.cpp
+    win/WebJavaScriptCollector.cpp
+    win/WebKitCOMAPI.cpp
+    win/WebKitClassFactory.cpp
+    win/WebKitDLL.cpp
+    win/WebKitLogging.cpp
+    win/WebKitMessageLoop.cpp
+    win/WebKitStatistics.cpp
+    win/WebKitSystemBits.cpp
+    win/WebLocalizableStrings.cpp
+    win/WebMutableURLRequest.cpp
+    win/WebNavigationData.cpp
+    win/WebNodeHighlight.cpp
+    win/WebNotification.cpp
+    win/WebNotificationCenter.cpp
+    win/WebPreferences.cpp
+    win/WebResource.cpp
+    win/WebScriptObject.cpp
+    win/WebScriptWorld.cpp
+    win/WebSecurityOrigin.cpp
+    win/WebSerializedJSValue.cpp
+    win/WebTextRenderer.cpp
+    win/WebURLAuthenticationChallenge.cpp
+    win/WebURLAuthenticationChallengeSender.cpp
+    win/WebURLCredential.cpp
+    win/WebURLProtectionSpace.cpp
+    win/WebURLResponse.cpp
+    win/WebUserContentURLPattern.cpp
+    win/WebView.cpp
+    win/WebWorkersPrivate.cpp
+
+    win/plugins/PluginDatabase.cpp
+    win/plugins/PluginDatabaseWin.cpp
+    win/plugins/PluginDebug.cpp
+    win/plugins/PluginMainThreadScheduler.cpp
+    win/plugins/PluginMessageThrottlerWin.cpp
+    win/plugins/PluginPackage.cpp
+    win/plugins/PluginPackageWin.cpp
+    win/plugins/PluginStream.cpp
+    win/plugins/PluginView.cpp
+    win/plugins/PluginViewWin.cpp
+    win/plugins/npapi.cpp
+)
+
+list(APPEND WebKit_SOURCES_WebCoreSupport
+    WebCoreSupport/WebViewGroup.cpp
+    WebCoreSupport/WebViewGroup.h
+
+    win/WebCoreSupport/EmbeddedWidget.cpp
+    win/WebCoreSupport/EmbeddedWidget.h
+    win/WebCoreSupport/WebChromeClient.cpp
+    win/WebCoreSupport/WebChromeClient.h
+    win/WebCoreSupport/WebContextMenuClient.cpp
+    win/WebCoreSupport/WebContextMenuClient.h
+    win/WebCoreSupport/WebDesktopNotificationsDelegate.cpp
+    win/WebCoreSupport/WebDesktopNotificationsDelegate.h
+    win/WebCoreSupport/WebDragClient.cpp
+    win/WebCoreSupport/WebDragClient.h
+    win/WebCoreSupport/WebEditorClient.cpp
+    win/WebCoreSupport/WebEditorClient.h
+    win/WebCoreSupport/WebFrameLoaderClient.cpp
+    win/WebCoreSupport/WebFrameLoaderClient.h
+    win/WebCoreSupport/WebFrameNetworkingContext.cpp
+    win/WebCoreSupport/WebFrameNetworkingContext.h
+    win/WebCoreSupport/WebGeolocationClient.cpp
+    win/WebCoreSupport/WebGeolocationClient.h
+    win/WebCoreSupport/WebInspectorClient.cpp
+    win/WebCoreSupport/WebInspectorClient.h
+    win/WebCoreSupport/WebInspectorDelegate.cpp
+    win/WebCoreSupport/WebInspectorDelegate.h
+    win/WebCoreSupport/WebPlatformStrategies.cpp
+    win/WebCoreSupport/WebPlatformStrategies.h
+    win/WebCoreSupport/WebVisitedLinkStore.cpp
+    win/WebCoreSupport/WebVisitedLinkStore.h
+)
+
+list(APPEND WebKit_SOURCES ${WebKit_INCLUDES} ${WebKit_SOURCES_Classes} ${WebKit_SOURCES_WebCoreSupport})
+
+source_group(Includes FILES ${WebKit_INCLUDES})
+source_group(Classes FILES ${WebKit_SOURCES_Classes})
+source_group(WebCoreSupport FILES ${WebKit_SOURCES_WebCoreSupport})
+
+# Build the COM interface:
+macro(GENERATE_INTERFACE _infile _defines _depends)
+    get_filename_component(_filewe ${_infile} NAME_WE)
+    add_custom_command(
+        OUTPUT  ${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/${_filewe}.h
+        MAIN_DEPENDENCY ${_infile}
+        DEPENDS ${_depends}
+        COMMAND midl.exe /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces" /I "${CMAKE_CURRENT_SOURCE_DIR}/win/Interfaces/Accessible2" /I "${DERIVED_SOURCES_WEBKIT_DIR}/include" /I "${CMAKE_CURRENT_SOURCE_DIR}/win" /WX /char signed /env win32 /tlb "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${_filewe}.tlb" /out "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces" /h "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/${_filewe}.h" /iid "${_filewe}_i.c" ${_defines} "${CMAKE_CURRENT_SOURCE_DIR}/${_infile}"
+        VERBATIM)
+    set_source_files_properties(${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/${_filewe}.h PROPERTIES GENERATED TRUE)
+    set_source_files_properties(${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/${_filewe}_i.c PROPERTIES GENERATED TRUE)
+endmacro()
+
+set(MIDL_DEFINES /D\ \"__PRODUCTION__=01\")
+
+set(WEBKIT_IDL_DEPENDENCIES
+    win/Interfaces/AccessibleComparable.idl
+    win/Interfaces/DOMCSS.idl
+    win/Interfaces/DOMCore.idl
+    win/Interfaces/DOMEvents.idl
+    win/Interfaces/DOMExtensions.idl
+    win/Interfaces/DOMHTML.idl
+    win/Interfaces/DOMPrivate.idl
+    win/Interfaces/DOMRange.idl
+    win/Interfaces/DOMWindow.idl
+    win/Interfaces/IGEN_DOMObject.idl
+    win/Interfaces/IWebArchive.idl
+    win/Interfaces/IWebBackForwardList.idl
+    win/Interfaces/IWebBackForwardListPrivate.idl
+    win/Interfaces/IWebCache.idl
+    win/Interfaces/IWebCookieManager.idl
+    win/Interfaces/IWebCoreStatistics.idl
+    win/Interfaces/IWebDataSource.idl
+    win/Interfaces/IWebDatabaseManager.idl
+    win/Interfaces/IWebDesktopNotificationsDelegate.idl
+    win/Interfaces/IWebDocument.idl
+    win/Interfaces/IWebDownload.idl
+    win/Interfaces/IWebEditingDelegate.idl
+    win/Interfaces/IWebEmbeddedView.idl
+    win/Interfaces/IWebError.idl
+    win/Interfaces/IWebErrorPrivate.idl
+    win/Interfaces/IWebFormDelegate.idl
+    win/Interfaces/IWebFrame.idl
+    win/Interfaces/IWebFrameLoadDelegate.idl
+    win/Interfaces/IWebFrameLoadDelegatePrivate.idl
+    win/Interfaces/IWebFrameLoadDelegatePrivate2.idl
+    win/Interfaces/IWebFramePrivate.idl
+    win/Interfaces/IWebFrameView.idl
+    win/Interfaces/IWebGeolocationPolicyListener.idl
+    win/Interfaces/IWebGeolocationPosition.idl
+    win/Interfaces/IWebGeolocationProvider.idl
+    win/Interfaces/IWebHTMLRepresentation.idl
+    win/Interfaces/IWebHTTPURLResponse.idl
+    win/Interfaces/IWebHistory.idl
+    win/Interfaces/IWebHistoryDelegate.idl
+    win/Interfaces/IWebHistoryItem.idl
+    win/Interfaces/IWebHistoryItemPrivate.idl
+    win/Interfaces/IWebHistoryPrivate.idl
+    win/Interfaces/IWebIconDatabase.idl
+    win/Interfaces/IWebInspector.idl
+    win/Interfaces/IWebInspectorPrivate.idl
+    win/Interfaces/IWebJavaScriptCollector.idl
+    win/Interfaces/IWebKitStatistics.idl
+    win/Interfaces/IWebMutableURLRequest.idl
+    win/Interfaces/IWebMutableURLRequestPrivate.idl
+    win/Interfaces/IWebNavigationData.idl
+    win/Interfaces/IWebNetworkConfiguration.idl
+    win/Interfaces/IWebNotification.idl
+    win/Interfaces/IWebNotificationCenter.idl
+    win/Interfaces/IWebNotificationObserver.idl
+    win/Interfaces/IWebPolicyDelegate.idl
+    win/Interfaces/IWebPolicyDelegatePrivate.idl
+    win/Interfaces/IWebPreferences.idl
+    win/Interfaces/IWebPreferencesPrivate.idl
+    win/Interfaces/IWebResource.idl
+    win/Interfaces/IWebResourceLoadDelegate.idl
+    win/Interfaces/IWebResourceLoadDelegatePrivate.idl
+    win/Interfaces/IWebResourceLoadDelegatePrivate2.idl
+    win/Interfaces/IWebScriptObject.idl
+    win/Interfaces/IWebScriptWorld.idl
+    win/Interfaces/IWebScrollBarDelegatePrivate.idl
+    win/Interfaces/IWebScrollBarPrivate.idl
+    win/Interfaces/IWebSecurityOrigin.idl
+    win/Interfaces/IWebSerializedJSValue.idl
+    win/Interfaces/IWebSerializedJSValuePrivate.idl
+    win/Interfaces/IWebTextRenderer.idl
+    win/Interfaces/IWebUIDelegate.idl
+    win/Interfaces/IWebUIDelegate2.idl
+    win/Interfaces/IWebUIDelegatePrivate.idl
+    win/Interfaces/IWebURLAuthenticationChallenge.idl
+    win/Interfaces/IWebURLRequest.idl
+    win/Interfaces/IWebURLResponse.idl
+    win/Interfaces/IWebURLResponsePrivate.idl
+    win/Interfaces/IWebUndoManager.idl
+    win/Interfaces/IWebUndoTarget.idl
+    win/Interfaces/IWebUserContentURLPattern.idl
+    win/Interfaces/IWebView.idl
+    win/Interfaces/IWebViewPrivate.idl
+    win/Interfaces/IWebWorkersPrivate.idl
+    win/Interfaces/JavaScriptCoreAPITypes.idl
+    win/Interfaces/WebKit.idl
+    win/Interfaces/WebScrollbarTypes.idl
+
+    win/Interfaces/Accessible2/Accessible2.idl
+    win/Interfaces/Accessible2/Accessible2_2.idl
+    win/Interfaces/Accessible2/AccessibleApplication.idl
+    win/Interfaces/Accessible2/AccessibleEditableText.idl
+    win/Interfaces/Accessible2/AccessibleRelation.idl
+    win/Interfaces/Accessible2/AccessibleStates.idl
+    win/Interfaces/Accessible2/AccessibleText.idl
+    win/Interfaces/Accessible2/AccessibleText2.idl
+    win/Interfaces/Accessible2/IA2CommonTypes.idl
+    "${DERIVED_SOURCES_WEBKIT_DIR}/autoversion.h"
+)
+
+add_custom_command(
+    OUTPUT ${DERIVED_SOURCES_WEBKIT_DIR}/autoversion.h
+    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+    COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/WebKitLibraries/win/tools/scripts/auto-version.pl ${DERIVED_SOURCES_WEBKIT_DIR}
+    VERBATIM)
+
+GENERATE_INTERFACE(win/Interfaces/WebKit.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleApplication.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/Accessible2_2.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleRelation.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleStates.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/IA2CommonTypes.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleEditableText.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+GENERATE_INTERFACE(win/Interfaces/Accessible2/AccessibleText2.idl ${MIDL_DEFINES} "${WEBKIT_IDL_DEPENDENCIES}")
+
+add_library(WebKitGUID STATIC
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/WebKit.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleApplication.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/Accessible2.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/Accessible2_2.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleRelation.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleStates.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/IA2CommonTypes.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleEditableText.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleText.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleText2.h"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/WebKit_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleApplication_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/Accessible2_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/Accessible2_2_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleRelation_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleEditableText_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleText_i.c"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/AccessibleText2_i.c"
+)
+set_target_properties(WebKitGUID PROPERTIES FOLDER "WebKit")
+
+list(APPEND WebKit_LIBRARIES
+    WebKitGUID
+    comsupp.lib
+)
+
+# We need the webkit libraries to come before the system default libraries to prevent symbol conflicts with uuid.lib.
+# To do this we add system default libs as webkit libs and zero out system default libs.
+string(REPLACE " " "\;" CXX_LIBS ${CMAKE_CXX_STANDARD_LIBRARIES})
+list(APPEND WebKit_LIBRARIES ${CXX_LIBS})
+set(CMAKE_CXX_STANDARD_LIBRARIES "")
+
+# If this directory isn't created before midl runs and attempts to output WebKit.tlb,
+# It fails with an unusual error - midl failed - failed to save all changes
+file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+
+set(WebKit_FORWARDING_HEADERS
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces/WebKit.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/win/WebKitCOMAPI.h"
+    "win/CFDictionaryPropertyBag.h"
+)
+
+WEBKIT_CREATE_FORWARDING_HEADERS(WebKit FILES ${WebKit_FORWARDING_HEADERS})
index 6523010..b5f329f 100644 (file)
@@ -105,7 +105,9 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND "${LOWERCASE_CMAKE_HOST_SYSTEM
     set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "-Wl,--no-keep-memory ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
 endif ()
 
-string(REGEX MATCHALL "-fsanitize=[^ ]*" ENABLED_COMPILER_SANITIZERS ${CMAKE_CXX_FLAGS})
+if (NOT MSVC)
+    string(REGEX MATCHALL "-fsanitize=[^ ]*" ENABLED_COMPILER_SANITIZERS ${CMAKE_CXX_FLAGS})
+endif ()
 
 if (UNIX AND NOT APPLE AND NOT ENABLED_COMPILER_SANITIZERS)
     set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}")
index f06626e..2fb3b1c 100644 (file)
@@ -5,9 +5,9 @@ WEBKIT_OPTION_BEGIN()
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_VENDOR_PREFIXES PUBLIC OFF)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PICTURE_SIZES PUBLIC ON)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PROMISES PUBLIC OFF)
-WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STREAM_API PUBLIC OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PROMISES PUBLIC ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PICTURE_SIZES PUBLIC OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_STREAMS_API PUBLIC ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIEW_MODE_CSS_MEDIA PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC PUBLIC ON)
 WEBKIT_OPTION_END()
@@ -21,9 +21,6 @@ if (MSVC)
         /wd4706 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387
         /MP
     )
-
-    string(REGEX REPLACE "/EH[a-z]+" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable C++ exceptions
-    string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Disable RTTI
 endif ()
 
 set(PORT Win)
index eccaa90..7b7d98e 100644 (file)
@@ -1,3 +1,14 @@
+2015-07-20  Alex Christensen  <achristensen@webkit.org>
+
+        Resurrect CMake build on Windows.
+        https://bugs.webkit.org/show_bug.cgi?id=147083
+
+        Reviewed by Gyuyoung Kim.
+
+        * DumpRenderTree/CMakeLists.txt:
+        * DumpRenderTree/PlatformWin.cmake: Added.
+        * WinLauncher/CMakeLists.txt:
+
 2015-07-19  Michael Catanzaro  <mcatanzaro@igalia.com>
 
         [GTK] Enable seccomp filter API tests
index 549cd40..fd1c162 100644 (file)
@@ -58,11 +58,13 @@ set(DumpRenderTree_INCLUDE_DIRECTORIES
     ${JAVASCRIPTCORE_DIR}/profiler
     ${JAVASCRIPTCORE_DIR}/runtime
     ${JAVASCRIPTCORE_DIR}/ForwardingHeaders
+    ${DERIVED_SOURCES_DIR}/ForwardingHeaders
     ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}
     ${TOOLS_DIR}/DumpRenderTree
     ${WTF_DIR}
     ${CMAKE_SOURCE_DIR}/Source
     ${CMAKE_BINARY_DIR}
+    ${DERIVED_SOURCES_DIR}
     ${DERIVED_SOURCES_WEBCORE_DIR}
     ${WEBCORE_DIR}/bindings/js
     ${WEBCORE_DIR}/testing/js
diff --git a/Tools/DumpRenderTree/PlatformWin.cmake b/Tools/DumpRenderTree/PlatformWin.cmake
new file mode 100644 (file)
index 0000000..6fd8443
--- /dev/null
@@ -0,0 +1,22 @@
+list(APPEND DumpRenderTree_INCLUDE_DIRECTORIES
+    win
+)
+
+list(APPEND DumpRenderTree_SOURCES
+    win/AccessibilityControllerWin.cpp
+    win/AccessibilityUIElementWin.cpp
+    win/GCControllerWin.cpp
+    win/PixelDumpSupportWin.cpp
+    win/TestRunnerWin.cpp
+    win/WorkQueueItemWin.cpp
+)
+
+if (${WTF_PLATFORM_WIN_CAIRO})
+    list(APPEND DumpRenderTree_INCLUDE_DIRECTORIES
+        cairo
+        "$ENV{WEBKIT_LIBRARIES}/include/cairo"
+    )
+    list(APPEND DumpRenderTree_SOURCES
+        cairo/PixelDumpSupportCairo.cpp
+    )
+endif ()
index 0f900f3..aca7740 100644 (file)
@@ -3,6 +3,7 @@ set(WinLauncher_INCLUDE_DIRECTORIES
     "${DERIVED_SOURCES_DIR}/ForwardingHeaders"
     "${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebKit"
     "${DERIVED_SOURCES_DIR}"
+    "${DERIVED_SOURCES_WEBKIT_DIR}/Interfaces"
     "${WTF_DIR}"
     "${CMAKE_SOURCE_DIR}"
     "${CMAKE_SOURCE_DIR}/Source"
@@ -14,6 +15,7 @@ set(WinLauncher_SOURCES
     PageLoadTestClient.cpp
     PrintWebUIDelegate.cpp
     ResourceLoadDelegate.cpp
+    WebDownloadDelegate.cpp
     WinLauncher.cpp
     WinLauncherWebHost.cpp
     WinMain.cpp