[[PageOutline]] = Building on Windows = Follow the instructions on http://webkit.org/building/tools.html to install the necessary developer tools, support libraries, and check out the WebKit code. Note that it is safest to build WebKit in your Cygwin home directory. At the moment, there seems to be an implicit assumption in the build scripts that paths will be relative to the home directory. == Building from within Visual Studio == WebKit can be built from within Visual Studio by setting two environment variables: * {{{WEBKITOUTPUTDIR}}} - An absolute Windows-style path pointing to the directory where you want the build products to go. * {{{WEBKITLIBRARIESDIR}}} - An absolute Windows-style path pointing to the WebKitLibraries/win folder in your WebKit checkout. == Common Build Errors == === Error spawning cmd.exe === Sometimes, Visual Studio complains that it 'cannot spawn cmd.exe'. Should this happen, check if both your Cygwin\bin folder and c:\windows\sytem32 are both in the Visual Studio list of executable files (Tools -> Options -> VC++ Directories). === Bad line endings === When you see errors in WebCore/css/makeprops or WebCore/css/maketokenizer, open those files in a suitable editor (SciTE works) and convert the line endings to LF only (Unix-style). Then restart the build. === Visual C++ Express Edition === {{{ 1>c:\cygwin\home\admin\webkit\javascriptcore\wtf\assertions.cpp(45) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory }}} If you see errors like this you probably need to install the [http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ platform SDK]. === Missing packages in Cygwin === You may have had cygwin already installed before attempting to build WebKit. In this case, you should have checked your cygwin setup to make sure that you have at least the following packages installed: bison, gawk, flex, gperf, perl, zlib. The error reports you get when you miss one such package are particularly cryptic and may not lead you to those packages. If you'd rather reconcile each package and version manually, rather than use the cygwin installer, you may find the [wiki:CygwinInstallerPackages list of packages included in the cygwin installer] useful. == Running the tests == After successfully building WebKit, in order to run the tests you need to copy the DLLs from C:\Program Files\Safari\ into your WebKitBuild\bin folder, otherwise testkjs won't run properly. When you are doing this, be careful not to overwrite the WebKit.dll file in WebKitBuild\bin with the one in C:\Program Files\Safari. (If you use the DOS copy command, it will ask you before overwriting.)