Dependencies
- First of all you need a version of Qt for Windows. If you are an Open
Source developer then you can download the Open Source Edition of Qt for
Windows from the Nokia Website: http://qt.nokia.com/downloads; 针对Windows32位的版本为Qt
5.0.1 for Windows 32-bit (VS 2010, 481 MB) - Note that you need to enable ICU support in the Qt build (also see http://doc-snapshot.qt-project.org/5.0/requirements-win.html)
- Make sure that Qt is configured with -openssl if you
want HTTPS support in QtWebKit. You will need the
non-light version ofWin32
OpenSSL libraries.
- Make sure that Qt is configured with -openssl if you
- Install ActiveState
Perl - Install Python
2.x (and add the installation location to your PATH) - The following external GNU tools are needed from the GnuWin32
Project:
- Install Ruby
Please install these tools in a path without
spaces (i.e. not in "C:\Program Files")
Make sure the GnuWin32 packages are in your PATH as well as Perl and Python.
You also need to have %QTDIR% set and have %QTDIR%\bin in your PATH.
If you
have Cygwin‘s bin directory in your path, make sure that it comes after
ActiveState Perl and GnuWin32. You might have to remove it completely from your
PATH if you have problems with slashes and backslashes while building using
MinGW. mingw32-make and GnuWin32‘smake will use
sh.exe to run commands if they find it in the PATH.
Building QtWebKit
- Open a Qt Command Prompt from the Start Menu.
- Alternatively you can use a MSVC or MinGW command line environment that
matches the version of Qt you downloaded and make
sure qmake is accessible in PATH.
Note that building
inside Cygwin or MSYS is currently not supported. Please use a Windows
command prompt.
- Alternatively you can use a MSVC or MinGW command line environment that
- Chdir into the WebKit source tree
- Run perl Tools\Scripts\build-webkit --qt --release
- Wait :)
- Try to run WebKitBuild\Release\bin\QtTestBrowser.exe
Notes about
building QtWebKit with the
Qt/Windows OpenSource Edition
- If you want to compile using multiple cores:
- On MinGW you can try set MAKE_COMMAND=mingw32-make
-j%NUMBER_OF_PROCESSORS%.
If this do not work you might have to
Ctrl-C build-webkit‘s execution, go in the
WebKitBuild\Release\ directory and run:mingw32-make -C JavaScriptCore -f Makefile.Release -j%NUMBER_OF_PROCESSORS% && mingw32-make -C WebCore -f Makefile.Release -j%NUMBER_OF_PROCESSORS% && mingw32-make
- On MSVC use the CL environment variable along with the /MP switch:
set CL= /MP
- On MinGW you can try set MAKE_COMMAND=mingw32-make
- If you haven‘t set up your PATH already to include the GnuWin32 packages
then you may want to execute the following command:set
PATH=C:\GnuWin32\bin;C:\Perl\bin;%PATH% Provided that the GnuWin32
packages are installed in C:\GnuWin32\bin and Perl
inC:\Perl\bin. - If you get build errors in JavaScriptCore\bindings\NP_jsobject.cpp
or similar then please make sure that the Microsoft Platform SDK
is NOT in your %INCLUDE% path because it conflicts
with your MingW headers. - If you get build errors after makefile generation
("Makefile:178: * Multiple target patterns. Stop.") then you‘re
probably still using the Cygwin version of make. Try removing Cygwin from your
%PATH% for the time being (it‘s not currently supported, as mentioned
above).
A
‘Works For Me‘ Step-by-Step Guide to building QtWebKit on
Windows using mingw-w64/w32
- The patch in bug report https://bugs.webkit.org/show_bug.cgi?id=38747 may
not yet have been applied to Qt git, apply manually if necessary - Until Qt 4.7 is released, use the git version of Qt 4.7: http://qt.gitorious.org/qt/qt/trees/4.7
- Get a mingw-w64 build with mingw32-make:
- I‘m assuming you‘re running Windows x64, as you will be testing the
build :) - Two options:
- drangon: http://mingw-w64-dgn.googlecode.com/files Download
the mingw-w64-bin-x86_64-<date> package Download the
make-w64-bin-x86_64-<date> package Extract them both to C:\mingw64
so that mingw32-make.exe and g++.exe are present in the C:\mingw64\bin
folder - sezero: http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20BuildsDownload
any of the mingw-w64-x86_64-mingw_<date> packages. The exp/new/old
suffixes are not important here Extract the package to C:\mingw64 so that
g++.exe is present in C:\mingw64\bin Rename included gmake.exe to
mingw32-make.exe
- drangon: http://mingw-w64-dgn.googlecode.com/files Download
- I‘m assuming you‘re running Windows x64, as you will be testing the
- Set up your environment:
- Qt sources are in C:\Qt so that configure.exe is present in that
directory - perl is installed: http://strawberryperl.com/ (installer
should add perl.exe to PATH) - open cmd.exe
- run following commands:
set PATH=C:\mingw64\bin;C:\Qt\bin;%PATH%
set QTDIR=C:\Qt
cd C:\Qt
configure -qt-style-windowsxp -qt-style-windowsvista -phonon
mingw32-make
- Qt sources are in C:\Qt so that configure.exe is present in that
- Everything should have built. Have fun!
Remarks: mingw-w64/w32 also provides a toolchain targetting 32-bit windows.
Sezero provides builds:http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/ The
procedure to compile Qt is exactly the same, only that he mingw64 folder name
should be mingw32.
A
‘Works For Me‘ Step-by-Step Guide to Building QtWebKit on
Windows using MinGW
- The the mentioned GnuWin32 tools
- Download QT
SDK (and QT Creator) and Download
ActivePerl - Open for example a Qt Command Prompt from the Start Menu. Click
Start->Program Files->Qt->QT Command Prompt. In fact, you really
do need to use Qt Command Prompt for this rather than the normal windows
command prompt. - Make sure the GnuWin32 packages are in your PATH as well as Perl (set
PATH=C:\program files\gnuwin32\bin;C:\Perl\site\bin;%PATH%. - You also need to have %QTDIR% set and have %QTDIR%\bin in your PATH.
- Trim your PATH down as much as possible. Remove Git and Mingw from your
PATH if you have them installed, their presence can cause odd build failures.
For example, the PATH that works for me is:set Path=c:\GnuWin32\bin;c:\Qt\2009.01\qt\bin;c:\Qt\2009.01\bin;C:\Perl\bin;C:\Windows\system32;c:\Qt\2009.01\mingw\bin;C:\Perl\site\bin;C:\Windows
- Note that c:\Qt\2009.01\qt above will vary depending
on the QT SDK that you downloaded. You should modify it appropriately.
- Note that c:\Qt\2009.01\qt above will vary depending
- Download WebKit from svn (make sure you‘ve left the location of your svn
client in your %PATH% above):$ svn checkout http://svn.webkit.org/repository/webkit/trunk %HOME%\WebKit
$ cd %HOME%/WebKit - Change into the WebKit source tree: cd
c:\location\of\webkit - For some reason, the build command was unable to create
the WebKitBuild\Release folders by itself on my PC. I had
to do mkdir WebKitBuild and mkdir
WebKitBuild\Release before building. - You may need to do a mkdir c:\tmp. The WebKit build relies
on the existence of c:\tmp when building in Windows. - Build the patched webkit (release mode): $perl
Tools\Scripts\build-webkit --qt --release - The webkit build takes forever, you can shorten it using the
build-webkit‘s --no-svg or --minimal flags:$perl Tools\Scripts\build-webkit --qt --release --no-svg
$perl Tools\Scripts\build-webkit --qt --release --minimal
Speedup Git on Windows
Git tends to be rather slow for repositories with a huge amount of files on
Windows. One way to deal with that is to use a sparse-checkout, to "ignore"
certain files. The LayoutTests directory is certainly a good
candidate, if you currently do not need these files. A sparse-checkout uses a
config file (.git/info/sparse-checkout) to determine if a file should
be checked out or not. Files mentioned in the config file will be part of the
checkout. Files not mentioned in the config file will be ignored. There is also
a syntax to invert this logic, but it is currently not working well with
directories.
- Create a .git/info/sparse-checkout file that will
ignore the LayoutTests directory:/*
!LayoutTests - Enable sparse-checkout:
git config core.sparsecheckout true
- Remove the LayoutTests directory if it is already there:
rmdir /s LayoutTests
- Update the git tree cache:
git read-tree -m -u HEAD
- Check which files have been excluded:
git ls-files -v | grep ^S
参考编译方法:
1.Qt官网下载最新版本:http://qt-project.org/downloads
2.将下载的压缩包解压(例如,路径为:F:/QtWebKit),配置相关环境变量:
-----创建两个变量名,分别为QTDIR(值为 F:/QtWebKit/qt-windows-open.....),QMAKESPEC(值为 win32-msvc20XX; 这里的XX,根据VS的版本决定,本人用的是2010,所以为win32-msvc2010)
3.编译源代码
-----打开VS软件,进入Visual Studio Tools中,运行命令行,锁定到qt的源码目录下,运行命令:configure.exe -webkit
-----编译过程中会出现GPL授权相关提示,yes即可,第一步会生成qmake
-----然后运行nmake命令,编译完即成功编译
4.编译应用程序,同上,一次执行qmake和nmake命令,会在debug目录下生成可执行文件
5.qt安装环境里包含webkit源代码,而且自带一个简单的Browser项目
6.将Browser工程设为启动项目,然后编译即可。