编译cef 2526

fetch --nohooks chromium

cd /path/to/chromium/src
# git checkout -b 51.0.2704.103 refs/tags/51.0.2704.103
# gclient sync --nohooks --with_branch_heads --jobs 16
# git clone https://bitbucket.org/chromiumembedded/cef.git

# third_party/WebKit/LayoutTests/mhtml/transfer_encoding_8bit.mht
#Please, commit your changes or stash them before you can switch branches.
#Aborting
#E:srccodechromiumsrc>git reset --hard
#E:srccodechromiumsrc>git pull

cd /path/to/chromium/src
gclient sync --nohooks --with_branch_heads
git fetch
git fetch --tags

git checkout refs/tags/47.0.2526.80 -----current select
or
git checkout -b 47.0.2526.80 refs/tags/47.0.2526.80

gclient sync --jobs 16
or
gclient sync --nohooks --with_branch_heads --jobs 16 -----current select

git clone https://bitbucket.org/chromiumembedded/cef.git

cd cef
git checkout -t origin/2526
modify the cef.gyp

cd /path/to/chromium/src
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_GENERATORS=ninja
set GYP_MSVS_VERSION=2013
gclient runhooks

cd cef
execute the create.bat

cd /path/to/chromium/src
ninja -C out/Release cefclient
ninja -C out/Debug cefclient

cd /path/to/chromium/src/cef/tools
make_distrib.bat --ninja-build

FAILED: obj/ui/gl/gl.gl_bindings_skia_in_process.obj
ninja -t msvc -e environment.x86 -- "C:Program Files (x86)Microsoft Visual Stu
dio 12.0VCinamd64_x86cl.exe" /nologo /showIncludes /FC @objuiglgl.gl_bin
dings_skia_in_process.obj.rsp /c ....uiglgl_bindings_skia_in_process.cc /Foo
bjuiglgl.gl_bindings_skia_in_process.obj /Fdobjuiglgl.cc.pdb
e:codechromiumsrcuiglgl_bindings_skia_in_process.cc(891) : error C2679: bi
nary '=' : no operator found which takes a right-hand operand of type 'overloade
d-function' (or there is no acceptable conversion)
e:codechromiumsrc hird_partyskiaincludegpuglgrglinterface.h(116
): could be 'GrGLInterface::GLPtr<GrGLFlushMappedBufferRangeProc> &GrGLInterface
::GLPtr<GrGLFlushMappedBufferRangeProc>::operator =(const GrGLInterface::GLPtr<G
rGLFlushMappedBufferRangeProc> &)'
e:codechromiumsrc hird_partyskiaincludegpuglgrglinterface.h(112
): or 'GrGLInterface::GLPtr<GrGLFlushMappedBufferRangeProc> GrGLInterface:
:GLPtr<GrGLFlushMappedBufferRangeProc>::operator =(FNPTR_TYPE)'
with
[
FNPTR_TYPE=GrGLFlushMappedBufferRangeProc
]
while trying to match the argument list '(GrGLInterface::GLPtr<GrGLFlush
MappedBufferRangeProc>, overloaded-function)'

chromiumsrcuiglgl_bindings_skia_in_process.cc文件,把提示有错误的函数参数类型前面都加上Gr,
如原来为 GLenum的,改成GrGLenum,GLintptr 改为GrGLintptr等等,如为void*的,改成GrGLvoid.

FAILED: obj/ui/gl/gl.egl_util.obj
ninja -t msvc -e environment.x86 -- "C:Program Files (x86)Microsoft Visual Stu
dio 12.0VCinamd64_x86cl.exe" /nologo /showIncludes /FC @objuiglgl.egl_ut
il.obj.rsp /c ....uiglegl_util.cc /Foobjuiglgl.egl_util.obj /Fdobjuigl
gl.cc.pdb
e:codechromiumsrc hird_partyswiftshaderincludeegleglext.h(119) : error C
4430: missing type specifier - int assumed. Note: C++ does not support default-i
nt
e:codechromiumsrc hird_partyswiftshaderincludeegleglext.h(119) : error C
2143: syntax error : missing ',' before '*'
e:codechromiumsrc hird_partyswiftshaderincludeegleglext.h(120) : error C
2061: syntax error : identifier 'EGLAttrib'
e:codechromiumsrc hird_partyswiftshaderincludeegleglext.h(515) : error C
2061: syntax error : identifier 'EGLAttrib'

chromiumsrc hird_partyswiftshaderincludeegleglext.h,
在62行typedef intptr_t EGLAttribKHR;
后加追加typedef intptr_t EGLAttrib;

cd /path/to/chromium/src/cef/tools

make_distrib.bat --ninja-build

原文地址:https://www.cnblogs.com/zxpo/p/6758175.html