Hello. I am not an absolute newbie and have some experience with Chromium.
Here is discussed
(
http://dev.chromium.org/developers/how-tos/get-the-code), Working with release branches section.
My task is to build chromium most stable release. I did it successfully
with deprecated process of getting code from svn. But after moving to
git I've faced with some issues. And some of them concerning your
instructions. I've followed step by step official instruction and
created script which automates official wiki actions. Here is github
link
https://github.com/porkycode/Chromium-Windows-Build
So what are the problems?
1) http://dev.chromium.org/developers/how-tos/get-the-code"If it's taking a long time or looks like it's fetching a bunch of stuff from svn, something is probably wrong."
It not working not on git from windows command shell, nor on git from depot_tools.
It only works correctly if started from bash from this git distribution
http://git-scm.com/download/win
Thats why in my project i need to create separate .sh script
2) http://dev.chromium.org/developers/how-tos/build-instructions-windows
No IDE is installed, however windbg is available in depot_tools\win_toolchain\vs2013_files\win8sdk\Debuggers\x86.
If no IDE installed, After switching to stable branch, and syncing with
gclient sync --jobs 16
the process is failed with error
Generating gyp files from GN...
Updating projects from gyp files...
Using overrides found in C:\Users\build\.gyp\include.gypi
Traceback (most recent call last):
File "src/build/gyp_chromium", line 321, in <module>
sys.exit(gyp.main(args))
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\__init__.py", line 527, in main
return gyp_main(args)
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\__init__.py", line 512, in gyp_main
generator.GenerateOutput(flat_list, targets, data, params)
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\generator\msvs.py", line 1891, in GenerateOutput
generator_flags))
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\generator\msvs.py", line 890, in _GenerateProject
return _GenerateMSVSProject(project, options, version, generator_flags)
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\generator\msvs.py", line 943, in _GenerateMSVSProject
_WriteMSVSUserFile(project.path, version, spec)
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\generator\msvs.py", line 1576, in _WriteMSVSUserFile
user_file.WriteIfChanged()
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\MSVSUserFile.py", line 147, in WriteIfChanged
encoding="Windows-1252")
File "F:\chromium\sourcecode\src\tools\gyp\pylib\gyp\easy_xml.py", line 129, in WriteXmlIfChanged
f = open(path, 'w')
IOError:
[Errno 22] invalid mode ('w') or filename:
'F:\\chromium\\sourcecode\\src\\ppapi\\ppapi_perftests.vcproj.??-??.build.user'
Error:
Command C:\depot_tools\python276_bin\python.exe src/build/gyp_chromium
returned non-zero exit status 1 in F:\chromium\sourcecode
Hook ''C:\depot_tools\python276_bin\python.exe' src/build/gyp_chromium' took 42.45 secs
After installation of Visual Studio 2013 it works like a charm.
3) Then I build Chromium. And receive:ninja: Entering directory `out/Release'
ninja: error: 'C:\Program
Files (x86)\Windows Kits\8.0\Redist\D3D\x86\d3dcompiler_46.dll', needed
by 'd3dcompiler_46.dll', missing and no known rule to make it
So I need also to install Windows Software Development Kit (SDK) for Windows 8. Why it is not working from depot_tools folder?
After installation of windows 8 sdk error gone.
4) I trying to build again. The process started. Then I receive[12632/15849] CXX obj\content\renderer\media\content_renderer.media_stream_dispatcher.obj
FAILED:
ninja -t msvc -e environment.x86 -- "C:\Program Files (x86)\Microsoft
Visual Studio 12.0\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC
@obj\content\renderer\media\content_renderer.media_stream_dependency_factory.obj.rsp
/c ..\..\content\renderer\media\media_stream_dependency_factory.cc
/Foobj\content\renderer\media\content_renderer.media_stream_dependency_factory.obj
/Fdobj\content\content_renderer.cc.pdb
f:\chromium\sourcecode\src\content\renderer\media\media_stream_dependency_factory.cc(663)
: error C2039: 'enable_aec_dump' : is not a member of
'webrtc::PeerConnectionFactoryInterface::Options'
f:\chromium\sourcecode\src\third_party\libjingle\source\talk\app\webrtc\peerconnectioninterface.h(393)
: see declaration of 'webrtc::PeerConnectionFactoryInterface::Options'
ninja: build stopped: subcommand failed.
So I need to edit src\third_party\libjingle\
source\talk\app\webrtc\peerconnectioninterface.h
And add change
public:
Options() :
disable_encryption(false),
disable_sctp_data_channels(false) {
}
bool disable_encryption;
bool disable_sctp_data_channels;
};
to
public:
Options() :
enable_aec_dump(false),
disable_encryption(false),
disable_sctp_data_channels(false) {
}
bool enable_aec_dump;
bool disable_encryption;
bool disable_sctp_data_channels;
};
After this I can build successfully.
But i think this is a problem. According to src/DEPS file "talk" should be 5413
"src/third_party/libjingle/source/talk":
(Var("googlecode_url") % "webrtc") + "/branches/3.48/talk@5413",
but when I execute git log in src/third_party/libjingle/source/talk i see
commit fbb1efa61417540336cf52976d4ff4394bfa795b
Author: w...@webrtc.org <w...@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>
Date: Fri Dec 13 19:20:56 2013 +0000
Update stable to r5287.
so "talk" should be 5413 but actually it is 5287
It
should be mention that when I use deprecated svn process for getting
source code it works correctly. Via svn I receive "talk" of version 5413
So the process works, but somebody, please, guide me to right way. Thanks!