Question

I've build WebKit-r128959 successfully on Win7/VS2010, but now the source (WebKit-r161259) has changed a lot and my experience doesn't work any longer... I met this first error.

WebKitSupportLibrary is up-to-date.
Building results into: /cygdrive/c/cygwin_dir/home/LioMoon/WebKit-r161249/WebKitBuild
WEBKIT_OUTPUTDIR is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitBuild
WEBKIT_LIBRARIES is set to: C:\cygwin_dir\home\LioMoon\WebKit-r161249\WebKitLibraries\win
/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/devenv.com WebKit.vcxproj\WebKit.sln /build Release|Win32

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
------ Build started: Project: WTFGenerated, Configuration: Release Win32 ------
Build started 1/4/2014 7:05:45 AM.
Build:
  /usr/bin/which: no bash in ((null))
  'nmake' is not recognized as an internal or external command,
  operable program or batch file.
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "%SystemDrive%\cygwin\bin\which.exe bash
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH%
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: set PLATFORMARCHITECTURE=32
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake /nologo -f WTFGenerated.make" exited with code 9009.

Build FAILED.

I just don't understand why the path is (null) and why the devenv executable cannot find nmake. The following lines are the path variable in VS2010:

Path=C:\Program Files\Microsoft F#\v4.0\;C:\Program Files\Microsoft Visual Studi
o 10.0\VSTSDB\Deploy;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\;
c:\Program Files\Microsoft Visual Studio 10.0\VC\BIN;C:\Program Files\Microsoft
Visual Studio 10.0\Common7\Tools;c:\Windows\Microsoft.NET\Framework\v4.0.30319;c
:\Windows\Microsoft.NET\Framework\v3.5;c:\Program Files\Microsoft Visual Studio
10.0\VC\VCPackages;C:\Program Files\HTML Help Workshop;C:\Program Files\Microsof
t Visual Studio 10.0\Team Tools\Performance Tools;C:\Program Files\Microsoft SDK
s\Windows\v7.0A\bin\NETFX 4.0 Tools;C:\Program Files\Microsoft SDKs\Windows\v7.0
A\bin;c:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\..\..\VC\bin;C
:\cygwin\bin;C:\Program Files\Parallels\Parallels Tools\Applications;C:\Windows\
system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe
ll\v1.0\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\
Microsoft SQL Server\100\DTS\Binn" /f;c:\Program Files\Microsoft Visual Studio 1
0.0\Common7\Tools\..\..\VC\bin;

Obviously it's not null. How can I fix the problem?

Was it helpful?

Solution

My build experience is as follow. See more at http://blog.csdn.net/lzl124631x/article/details/18098361

Environment:
     Operating System:     Windows 7 Ultimate 32-bit
     Processor:               Intel Core i7 860
     Installed Memory:     4.00 GB    

1. Installing VS2013:
     a. Install Win7 SP1 (windows6.1-KB976932-X86.exe)
     b. Install 5 patches for IE10
          ⅰ. Windows6.1-KB2533623-x86.msu
          ⅱ. Windows6.1-KB2670838-x86.msu
          ⅲ. Windows6.1-KB2729094-v2-x86.msu
          ⅳ. Windows6.1-KB2731771-x86.msu
          ⅴ. Windows6.1-KB2786081-x86.msu
     c. Install IE10 (IE10-Windows6.1-x86-en-us.exe)
     d. Install VS2013 (VS2013_RTM_ULT_ENU.iso)
     e. Right click on "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe", "Properties", "Compatibility", check "Run this program as an administrator".

2. Installing Cygwin
     a. Download cygwin-downloader.zip (http://svn.webkit.org/repository/webkit/trunk/Tools/CygwinDownloader/cygwin-downloader.zip) and unzip it.
     b. Run cygwin-downloader.exe and wait...
     c. Run setup.exe, select "Install from Local Directory" and install.
     d. Run setup.exe, select "Install from Internet"
          i. In steps before "Select Packages", just select default folder, whatever connection and download site.
          ⅱ. Select Packages: Search "gcc", expand Devel, select "gcc-g++: GNU Compiler Collection(C++)"
          ⅲ. Select Packages: Search "gdb", expand Devel, select "gdb: The GNU Debugger"
     See more at "Installing gcc with Cygwin"(http://www.eecg.utoronto.ca/~aamodt/ece242/cygwin.html)
     e. Open C:\cygwin\etc\profile
          ⅰ. Modify line 32 to PATH="/bin:${PATH}"
          ⅱ. Comment line 44-50 by adding '#' at the beginning of each line.

3. Installing SDKs
     a. Install QuickTime SDK (https://developer.apple.com/quicktime/)
     b. Install Direct SDK (June 2010 DirectX SDK:http://www.microsoft.com/en-us/download/details.aspx?id=6812)

4. Getting the Code
     a. Download Nightly Build (http://nightly.webkit.org/) and unzip it. My version is WebKit-r161524.
     b. Suppress Warning 4309: Open "WebKitLibraries/win/tools/vsprops/common.props", find tag , add 4309.
     c. Download Support Library (https://developer.apple.com/opensource/internet/webkit_sptlib_agree.html) and copy it into WebKit-r161524. DO NOT unzip it.
     d. Open Source/WebCore/platform/LocalizedString.cpp, search "Look Up", delete the DOUBLE-BYTE double quotation marks around “%@” and “”.

5. Save the following lines as a .cmd/.bat file. I named it as Build.cmd.

    @echo off  

    echo Setting up links...  
    set CYGWIN_DIR=C:\cygwin  

    set WEBKIT_SOURCE_DIR=%~dp0%  
    if "%WEBKIT_SOURCE_DIR:~-1%"=="\" set WEBKIT_SOURCE_DIR=%WEBKIT_SOURCE_DIR:~0,-1%  

    for /R "delims=\" %%a in (%WEBKIT_SOURCE_DIR%) do set WEBKIT_DIR_NAME=%%~nxa  
    set WEBKIT_LINK_DIR=%CYGWIN_DIR%\home\%username%\%WEBKIT_DIR_NAME%  

    if exist "%WEBKIT_LINK_DIR%" rmdir "%WEBKIT_LINK_DIR%"  
    mklink /D "%WEBKIT_LINK_DIR%" "%WEBKIT_SOURCE_DIR%"  

    echo Exporting environment varibles...  
    set WEBKIT_OUTPUTDIR=%WEBKIT_LINK_DIR%\WebKitBuildByCygwin  
    set WEBKIT_LIBRARIES=%WEBKIT_LINK_DIR%\WebKitLibraries\win  
    set VSINSTALLDIR=%VS120COMNTOOLS%..\..  
    set PATH=%WEBKIT_LINK_DIR%\Tools\Scripts;%PATH%  

    echo Running Cygwin...  
    call "%CYGWIN_DIR%\Cygwin.bat"  
    :exit  

6. Build
     a. run Build.cmd
     b. update-webkit
     c. build-webkit --debug | tee WebKit-r161524/log.txt

Other Material:
     a. Building on Windows:http://trac.webkit.org/wiki/BuildingOnWindows (WebKit Team's note on building on windows)
     b. ​WebKit Wiki: http://trac.webkit.org/wiki/WikiStart

Error Solutions:
---------------------------------------------------------------------
Error Message:
     17>     sh: /usr/bin/gcc: No such file or directory
     17>     Failed to read names from file: /cygdrive/g/WEBKIT~1/Source/WebCore/html/HTMLTagNames.in at /cygdrive/g/WEBKIT~1/Source/WebCore/dom/make_names.pl line 324.
     17>     /cygdrive/g/WEBKIT~1/Source/WebCore/DerivedSources.make:942: recipe for target 'HTMLElementFactory.cpp' failed
     17>     make: *** [HTMLElementFactory.cpp] Error 127
     17>     make: *** Waiting for unfinished jobs....
     17>     ./CSSGrammar.y:62.1: error: syntax error, unexpected end of file
Solution:
     Install gcc to Cygwin (step 2.d).
---------------------------------------------------------------------
Error Message:
     17>     build-generated-files.sh: line 59: cd: /home/Moon/WEBKIT~1/WEBKIT~2/Debug/obj32/WebCore/DerivedSources: Permission denied
     18>     c1xx : fatal error C1083: Cannot open source file: 'C:\cygwin\home\Moon\WebKit-r161524\WebKitBuildByCygwin\Debug\obj32\WebCore\DerivedSources\CSSPropertyNames.cpp': No such file or directory
Solution:
     Right click on "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe", "Properties", "Compatibility", check "Run this program as an administrator"
---------------------------------------------------------------------
Error Message:
     ..\platform\LocalizedStrings.cpp(248): error C2001: newline in constant
Or
     ..\platform\LocalizedStrings.cpp(250): error C2001: newline in constant
Solution:
     Open Source/WebCore/platform/LocalizedString.cpp, search "Look Up", delete the DOUBLE-BYTE double quotation marks around “%@” and “”.

OTHER TIPS

In my case the problems I faced were the following:

  • Missing cygwin tool such as perl, make python o ruby: execute the setup of cygwin and install the missing components.

  • Conflictive components installed in cygwin and windows at the same time. For instance, if you have python installed in your windows and it is also installed in cygwin, then it's possible that depending on which version is specified in the path, you would get errors related to library versions or problems finding files due the different folder separator character used in the paths ("\" vs "/") remediation: uninstall the conflictive component from windows and let the one installed in cygwin

  • Build script doesn't found the installed SDK: Consider to edit the script and point to the SDK that you have currently installed. You can use regedit to find out the key that corresponds to your SDK in your machine. In my case I added the key that corresponds to my current windows SDK "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A" in the script webkitdirs.pm:

line 1523: my @windowsPlatformSDKRegistryEntries = (
line 1524:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0A",
line 1525:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v8.0",
line 1526:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.1A",
line 1527:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.1",
line 1528:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A",
line 1529:  "HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/InstalledSDKs/D2FF9F89-8AA2-4373-8A31-C838BF4DBBE1", line 1530:);
  • Encoding issues: if you see there is some file that prevent the building, open the file and ensure it has not encoding issues related to DOS / Unix encoding types. Remediation: download the problematic file with the right encoding and try again.

  • Problems related to missing files or files not found: Ensure to execute the script with administrator permissions. in some cases 3rd party tools invoked by the script are the ones without permissions. if it is the case consider to edit the settings of the involved application and change the compatibility to "run as administrator"

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top