修订说明
- 2016年4月26日 痞子飞猪[email protected] 从chromium49.0.2623.112抽取。
抽取包仅包含base、net、cc、ui及其基本所需的第三方库。
时间仓促有多余的在所难免见谅!
基础的工具类库,解决一些需要不得不处理的语言、编译器或操作系统 细节而导致的比必要的重复代码工作。
同时也替代一些C++本身不提供的或STL兼容性处理得不好的实现。
总之用了它你很爽!
基础的网络操作工具函数库。
基础的跨平台界面库。
无损压缩算法,压缩数据使用LZ77算法(实现变种)。
是一个字体工具包,可用于使用、编辑和创建基于 SFNT (http://en.wikipedia.org/wiki/Sfnt) 的字体。
2D向量图形处理函数库,包含字型、座标转换,以及点阵图都有高效能且简洁的表现。
BASE64编解码库。
目前Harfbuzz有两个实现树,早期的那个称之为Harfbuzz,或者old harfbuzz。
而新的目前还处于比较活跃的开发状态的这个代码树,在整个代码的结构上面与前面有着非常大的区别, 为了区分新的这个称之为harfbuzz-ng。
Chromium专用的图形和渲染相关的助手代码。
专门用于崩溃后处理的库。
OpenSSL的一个分支(具体还不清楚有什么优化或不同?)
URL处理库
加解密相关库。
http的sdch压缩客户端实现库。
基于SQLite3的封装库。
单元测试相关的工具代码(gtest)。
V8引擎库。
暂时保留
一个跨操作系统使用一套API来访问不同的3D引擎。包括 OpenGL ES 2.0 、OpenGL ES 3.0、Direct3D9、Direct3D11。
chromium采用动态库的方式加载
一种非加密型哈希函数,适用于一般的哈希检索操作,具体见百科说明:
已去掉了仅保留GL与EGL头文件引用
Mesa 3D是一个在MIT许可证下开放源代码的三维计算机图形库,以开源形式实现了OpenGL的应用程序接口。
OpenGL的高效实现一般依赖于显示设备厂商提供的硬件,而Mesa 3D是一个纯基于软件的图形应用程序接口。
由于许可证的原因,它只声称是一个“类似”于OpenGL的应用程序接口。
由于Mesa 3D的API是和OpenGL相同,具体的OpenGL版本浏览Mesa 3D官方网站, 我们可以这么认为它就是OpenGL的软件模拟GPU光栅处理器的一个实现。 我们知道如果要实现一个OpenGL,其本身是一个设备器,不能实现窗体的透明,如果我想要实现窗体透明,又想要有3D的应用,可以试试它。
具体见百科说明:
包含EGL、OpenGL ES2、OpenGL ES3的头文件。
环境要求
- VS2013
- Windows SDK10
- python2.7
环境变量
只有设置了如下的系统环境变量后才能使用GYP产生VS2013的工程文件(用于在VS2013中打开调试)
GYP_GENERATORS=msvs-ninja,ninja
GYP_MSVS_VERSION=2013
Win32编译
cd src
python build\gyp_chromium build\chromium_extract.gyp
ninja -C out\Debug chromium_extract
ninja -C out\Release chromium_extract
WIN64编译
set GYP_DEFINES=target_arch=x64
python build\gyp_chromium build\chromium_extract.gyp
ninja -C out\Debug_x64 chromium_extract
ninja -C out\Release_x64 chromium_extract
编译示例
ninja -C out\Debug views_example_exe
示例截图
环境要求
- pkg-config
- gcc/g++/make
- depot_tools
- gyp
- llvm
环境变量
DEPOT_TOOLS_UPDATE=0
GYP_GENERATORS=ninja
GYP_DEFINES=python_ver=2.7
如果目标为arm平台则如此设置
#GYP_DEFINES="python_ver=2.7 target_arch=arm arm_version=7"
target_arch可以是x64
编译
- 安装依赖
cd src && ./build/install-build-deps.sh
sudo apt-get install gccgo-go
src/third_party/boringssl
python src/util/generate_build_files.py chromium
- 下载lvvm
wget https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-255169-1.tgz
tar xzvf clang-255169-1.tgz chromium_extract/third_party/llvm-build/Release+Asserts
- 生成编译文件
cd src
python build/gyp_chromium build/chromium_extract.gyp
- 再开始编译
ninja -C out\Debug chromium_extract