一、使用工具版本
vs2005 + sp1
cmake 2.8.11.2(此处需要注意的是在系统路径中cygwin的cmake路径不能放在此路径前面)
gperf 3.0.1
win flex_bison 2.4
ActivePerl 5.16.3.1603
python 3.3.2
二、使用代码版本
WebKit修订号: r153820
WebKit的svn地址: http://svn.webkit.org/repository/webkit/trunk
thirdparty的git地址: git://gitorious.org/webkit-thirdparty/bsquare-webkit-thirdparty.git
之所以没有使用原文所说的thirdparty,是因为现在用的有pthread、freetype、wceshunt等多个库,一起编译出来便于独立使用。
三、一些调整
1、在cmake配置完成后,使用UE打开所有的vcproj文件,批量将WarnAsError="TRUE"修改成WarnAsError="FALSE"
2、修改一些源文件,主要是关于编译时编码警告的问题(使用notepad打开另存为UTF8),还有就是关于无法访问私有函数问题(先改成公有函数应付一下)。附patch文件
- Index: css/BasicShapeFunctions.cpp
- ===================================================================
- --- css/BasicShapeFunctions.cpp (revision 153820)
- +++ css/BasicShapeFunctions.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/BasicShapeFunctions.h
- ===================================================================
- --- css/BasicShapeFunctions.h (revision 153820)
- +++ css/BasicShapeFunctions.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/CSSBasicShapes.cpp
- ===================================================================
- --- css/CSSBasicShapes.cpp (revision 153820)
- +++ css/CSSBasicShapes.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/CSSBasicShapes.h
- ===================================================================
- --- css/CSSBasicShapes.h (revision 153820)
- +++ css/CSSBasicShapes.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/CSSParserMode.h
- ===================================================================
- --- css/CSSParserMode.h (revision 153820)
- +++ css/CSSParserMode.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- Index: css/StyleResolver.cpp
- ===================================================================
- --- css/StyleResolver.cpp (revision 153820)
- +++ css/StyleResolver.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
- * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
- Index: css/TransformFunctions.cpp
- ===================================================================
- --- css/TransformFunctions.cpp (revision 153820)
- +++ css/TransformFunctions.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
- * Copyright (C) 2012 Google Inc. All rights reserved.
- * Copyright (C) 2012, 2013 Adobe Systems Incorporated. All rights reserved.
- Index: css/TransformFunctions.h
- ===================================================================
- --- css/TransformFunctions.h (revision 153820)
- +++ css/TransformFunctions.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/ViewportStyleResolver.cpp
- ===================================================================
- --- css/ViewportStyleResolver.cpp (revision 153820)
- +++ css/ViewportStyleResolver.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/ViewportStyleResolver.h
- ===================================================================
- --- css/ViewportStyleResolver.h (revision 153820)
- +++ css/ViewportStyleResolver.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: css/WebKitCSSViewportRule.cpp
- ===================================================================
- --- css/WebKitCSSViewportRule.cpp (revision 153820)
- +++ css/WebKitCSSViewportRule.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- Index: css/WebKitCSSViewportRule.h
- ===================================================================
- --- css/WebKitCSSViewportRule.h (revision 153820)
- +++ css/WebKitCSSViewportRule.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Intel Corporation. All rights reserved.
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- Index: Modules/webdatabase/Database.h
- ===================================================================
- --- Modules/webdatabase/Database.h (revision 153820)
- +++ Modules/webdatabase/Database.h (working copy)
- @@ -75,6 +75,8 @@
- void scheduleTransactionCallback(SQLTransaction*);
- + Vector<String> performGetTableNames();
- +
- private:
- Database(PassRefPtr<DatabaseBackendContext>, const String& name,
- const String& expectedVersion, const String& displayName, unsigned long estimatedSize);
- @@ -84,7 +86,7 @@
- void runTransaction(PassRefPtr<SQLTransactionCallback>, PassRefPtr<SQLTransactionErrorCallback>,
- PassRefPtr<VoidCallback> successCallback, bool readOnly, const ChangeVersionData* = 0);
- - Vector<String> performGetTableNames();
- + //Vector<String> performGetTableNames();
- RefPtr<SecurityOrigin> m_databaseThreadSecurityOrigin;
- RefPtr<DatabaseContext> m_databaseContext;
- Index: platform/LocalizedStrings.cpp
- ===================================================================
- --- platform/LocalizedStrings.cpp (revision 153820)
- +++ platform/LocalizedStrings.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2003, 2006, 2009, 2010, 2012, 2013 Apple Inc. All rights reserved.
- * Copyright (C) 2010 Igalia S.L
- *
- Index: platform/ThreadGlobalData.cpp
- ===================================================================
- --- platform/ThreadGlobalData.cpp (revision 153820)
- +++ platform/ThreadGlobalData.cpp (working copy)
- @@ -28,6 +28,7 @@
- #include "ThreadGlobalData.h"
- #include "CachedResourceRequestInitiators.h"
- +#include "DOMImplementation.h"
- #include "EventNames.h"
- #include "InspectorCounters.h"
- #include "ThreadTimers.h"
- Index: platform/win/FileSystemWin.cpp
- ===================================================================
- --- platform/win/FileSystemWin.cpp (revision 153820)
- +++ platform/win/FileSystemWin.cpp (working copy)
- @@ -180,6 +180,14 @@
- #endif // !USE(CF)
- +int SHCreateDirectoryEx(HWND hwnd, LPCWSTR pszPath, SECURITY_ATTRIBUTES *psa)
- +{
- + if (CreateDirectoryW(pszPath, psa))
- + return ERROR_SUCCESS;
- + else
- + return ERROR_BAD_PATHNAME;
- +}
- +
- bool makeAllDirectories(const String& path)
- {
- String fullPath = path;
- Index: rendering/ClipPathOperation.h
- ===================================================================
- --- rendering/ClipPathOperation.h (revision 153820)
- +++ rendering/ClipPathOperation.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: rendering/LogicalSelectionOffsetCaches.h
- ===================================================================
- --- rendering/LogicalSelectionOffsetCaches.h (revision 153820)
- +++ rendering/LogicalSelectionOffsetCaches.h (working copy)
- @@ -76,63 +76,63 @@
- return object;
- }
- -class LogicalSelectionOffsetCaches {
- +class ContainingBlockInfo {
- public:
- - class ContainingBlockInfo {
- - public:
- - ContainingBlockInfo()
- - : m_block(0)
- - , m_cache(0)
- - , m_hasFloatsOrFlowThreads(false)
- - , m_cachedLogicalLeftSelectionOffset(false)
- - , m_cachedLogicalRightSelectionOffset(false)
- - { }
- + ContainingBlockInfo()
- + : m_block(0)
- + , m_cache(0)
- + , m_hasFloatsOrFlowThreads(false)
- + , m_cachedLogicalLeftSelectionOffset(false)
- + , m_cachedLogicalRightSelectionOffset(false)
- + { }
- - void setBlock(RenderBlock* block, const LogicalSelectionOffsetCaches* cache)
- - {
- - m_block = block;
- - m_hasFloatsOrFlowThreads = m_hasFloatsOrFlowThreads || m_block->containsFloats() || m_block->flowThreadContainingBlock();
- - m_cache = cache;
- - m_cachedLogicalLeftSelectionOffset = false;
- - m_cachedLogicalRightSelectionOffset = false;
- - }
- + void setBlock(RenderBlock* block, const LogicalSelectionOffsetCaches* cache)
- + {
- + m_block = block;
- + m_hasFloatsOrFlowThreads = m_hasFloatsOrFlowThreads || m_block->containsFloats() || m_block->flowThreadContainingBlock();
- + m_cache = cache;
- + m_cachedLogicalLeftSelectionOffset = false;
- + m_cachedLogicalRightSelectionOffset = false;
- + }
- - RenderBlock* block() const { return m_block; }
- - const LogicalSelectionOffsetCaches* cache() const { return m_cache; }
- + RenderBlock* block() const { return m_block; }
- + const LogicalSelectionOffsetCaches* cache() const { return m_cache; }
- - LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, LayoutUnit position) const
- - {
- - ASSERT(m_cache);
- - if (m_hasFloatsOrFlowThreads || !m_cachedLogicalLeftSelectionOffset) {
- - m_cachedLogicalLeftSelectionOffset = true;
- - m_logicalLeftSelectionOffset = m_block->logicalLeftSelectionOffset(rootBlock, position, *m_cache);
- - } else
- - ASSERT(m_logicalLeftSelectionOffset == m_block->logicalLeftSelectionOffset(rootBlock, position, *m_cache));
- - return m_logicalLeftSelectionOffset;
- - }
- + LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, LayoutUnit position) const
- + {
- + ASSERT(m_cache);
- + if (m_hasFloatsOrFlowThreads || !m_cachedLogicalLeftSelectionOffset) {
- + m_cachedLogicalLeftSelectionOffset = true;
- + m_logicalLeftSelectionOffset = m_block->logicalLeftSelectionOffset(rootBlock, position, *m_cache);
- + } else
- + ASSERT(m_logicalLeftSelectionOffset == m_block->logicalLeftSelectionOffset(rootBlock, position, *m_cache));
- + return m_logicalLeftSelectionOffset;
- + }
- - LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, LayoutUnit position) const
- - {
- - ASSERT(m_cache);
- - if (m_hasFloatsOrFlowThreads || !m_cachedLogicalRightSelectionOffset) {
- - m_cachedLogicalRightSelectionOffset = true;
- - m_logicalRightSelectionOffset = m_block->logicalRightSelectionOffset(rootBlock, position, *m_cache);
- - } else
- - ASSERT(m_logicalRightSelectionOffset == m_block->logicalRightSelectionOffset(rootBlock, position, *m_cache));
- - return m_logicalRightSelectionOffset;
- - }
- + LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, LayoutUnit position) const
- + {
- + ASSERT(m_cache);
- + if (m_hasFloatsOrFlowThreads || !m_cachedLogicalRightSelectionOffset) {
- + m_cachedLogicalRightSelectionOffset = true;
- + m_logicalRightSelectionOffset = m_block->logicalRightSelectionOffset(rootBlock, position, *m_cache);
- + } else
- + ASSERT(m_logicalRightSelectionOffset == m_block->logicalRightSelectionOffset(rootBlock, position, *m_cache));
- + return m_logicalRightSelectionOffset;
- + }
- - private:
- - RenderBlock* m_block;
- - const LogicalSelectionOffsetCaches* m_cache;
- - bool m_hasFloatsOrFlowThreads : 1;
- - mutable bool m_cachedLogicalLeftSelectionOffset : 1;
- - mutable bool m_cachedLogicalRightSelectionOffset : 1;
- - mutable LayoutUnit m_logicalLeftSelectionOffset;
- - mutable LayoutUnit m_logicalRightSelectionOffset;
- -
- - };
- +private:
- + RenderBlock* m_block;
- + const LogicalSelectionOffsetCaches* m_cache;
- + bool m_hasFloatsOrFlowThreads : 1;
- + mutable bool m_cachedLogicalLeftSelectionOffset : 1;
- + mutable bool m_cachedLogicalRightSelectionOffset : 1;
- + mutable LayoutUnit m_logicalLeftSelectionOffset;
- + mutable LayoutUnit m_logicalRightSelectionOffset;
- +
- +};
- +class LogicalSelectionOffsetCaches {
- +public:
- LogicalSelectionOffsetCaches(RenderBlock* rootBlock)
- {
- ASSERT(rootBlock->isSelectionRoot());
- Index: rendering/RenderBlock.cpp
- ===================================================================
- --- rendering/RenderBlock.cpp (revision 153820)
- +++ rendering/RenderBlock.cpp (working copy)
- @@ -3848,7 +3848,8 @@
- logicalLeft += cb->logicalLeft();
- ASSERT(currentCache);
- - const LogicalSelectionOffsetCaches::ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- + //const LogicalSelectionOffsetCaches::ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- + const ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- cb = info.block();
- currentCache = info.cache();
- }
- @@ -3870,7 +3871,8 @@
- logicalRight += cb->logicalLeft();
- ASSERT(currentCache);
- - const LogicalSelectionOffsetCaches::ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- + //const LogicalSelectionOffsetCaches::ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- + const ContainingBlockInfo& info = currentCache->containingBlockInfo(cb);
- cb = info.block();
- currentCache = info.cache();
- }
- Index: rendering/RenderBlock.h
- ===================================================================
- --- rendering/RenderBlock.h (revision 153820)
- +++ rendering/RenderBlock.h (working copy)
- @@ -92,6 +92,9 @@
- explicit RenderBlock(ContainerNode*);
- virtual ~RenderBlock();
- + LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- + LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- +
- static RenderBlock* createAnonymous(Document*);
- RenderObject* firstChild() const { ASSERT(children() == virtualChildren()); return children()->firstChild(); }
- @@ -955,9 +958,10 @@
- LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& lastLogicalRight, const LogicalSelectionOffsetCaches&, const PaintInfo*);
- LayoutRect blockSelectionGap(RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
- LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLogicalRight, LayoutUnit logicalBottom, const LogicalSelectionOffsetCaches&, const PaintInfo*);
- - LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- - LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- -
- + //LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- + //LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, LayoutUnit position, const LogicalSelectionOffsetCaches&);
- +
- + friend class ContainingBlockInfo;
- friend class LogicalSelectionOffsetCaches;
- virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const;
- Index: rendering/RenderBoxModelObject.cpp
- ===================================================================
- --- rendering/RenderBoxModelObject.cpp (revision 153820)
- +++ rendering/RenderBoxModelObject.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * (C) 1999 Antti Koivisto (koivisto@kde.org)
- * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
- Index: rendering/RenderRegion.h
- ===================================================================
- --- rendering/RenderRegion.h (revision 153820)
- +++ rendering/RenderRegion.h (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- Index: rendering/style/RenderStyle.h
- ===================================================================
- --- rendering/style/RenderStyle.h (revision 153820)
- +++ rendering/style/RenderStyle.h (working copy)
- @@ -1768,6 +1768,8 @@
- static BlendMode initialBlendMode() { return BlendModeNormal; }
- #endif
- + Color backgroundColor() const { return m_background->color(); }
- +
- private:
- bool changeRequiresLayout(const RenderStyle*, unsigned& changedContextSensitiveProperties) const;
- bool changeRequiresPositionedLayoutOnly(const RenderStyle*, unsigned& changedContextSensitiveProperties) const;
- @@ -1822,7 +1824,7 @@
- Color borderRightColor() const { return surround->border.right().color(); }
- Color borderTopColor() const { return surround->border.top().color(); }
- Color borderBottomColor() const { return surround->border.bottom().color(); }
- - Color backgroundColor() const { return m_background->color(); }
- + //Color backgroundColor() const { return m_background->color(); }
- Color color() const;
- Color columnRuleColor() const { return rareNonInheritedData->m_multiCol->m_rule.color(); }
- Color outlineColor() const { return m_background->outline().color(); }
- Index: rendering/svg/RenderSVGRoot.cpp
- ===================================================================
- --- rendering/svg/RenderSVGRoot.cpp (revision 153820)
- +++ rendering/svg/RenderSVGRoot.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2007, 2008, 2009 Rob Buis <buis@kde.org>
- * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
- Index: svg/SVGSVGElement.cpp
- ===================================================================
- --- svg/SVGSVGElement.cpp (revision 153820)
- +++ svg/SVGSVGElement.cpp (working copy)
- @@ -1,4 +1,4 @@
- -/*
- +/*
- * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Rob Buis <buis@kde.org>
- * Copyright (C) 2007 Apple Inc. All rights reserved.
编译出来后全是lib文件,尽管使用的是MinSizeRel,但是webcore.lib也有五百多MB,下一步想生成DLL方式。