gn tool 编译
之前介绍过GYP,它是Google早期用来维护chromium项目的meta-build system,GN则是用来替代GYP的工具,目前chromium及相关的开源项目都迁移到基于GN来管理。并且GN是基于C++编写,效率上比基于python的GYP快了近20倍。
环境准备
配置depot_tools (ninja)
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
配置gn
虽然depot_tools已经带了gn,但它其实只是一个shell脚本,直接使用会报错,找不到真正的gn二进制文件。
如果编译过webrtc或chromium,gn相关的工具链已经下载,可以在src/buildtools/mac/gn找到。
自己编译可以基于gn的git仓库编译,可以参考:
- 
- 
- 
set -e
- 
set -v
- 
- 
# Get the sources
- 
mkdir gn-standalone
- 
cd gn-standalone
- 
mkdir tools
- 
cd tools
- 
git clone https://chromium.googlesource.com/chromium/src/tools/gn
- 
cd ..
- 
mkdir -p third_party/libevent
- 
cd third_party/libevent
- 
wget --no-check-certificate https://chromium.googlesource.com/chromium/chromium/+archive/master/third_party/libevent.tar.gz
- 
tar -xvzf libevent.tar.gz
- 
cd ../..
- 
git clone https://chromium.googlesource.com/chromium/src/base
- 
git clone https://chromium.googlesource.com/chromium/src/build
- 
git clone https://chromium.googlesource.com/chromium/src/build/config
- 
mkdir testing
- 
cd testing
- 
git clone https://chromium.googlesource.com/chromium/testing/gtest
- 
cd ..
- 
- 
# Build
- 
cd tools/gn
- 
./bootstrap/bootstrap.py -s
- 
- 
# At this point, the resulting binary is at:
- 
# gn-standalone/out/Release/gn
使用gn的例子
gn的例子可以参考gn的git仓库中带的example来开始。比如,以下测试的代码根目录是src
github :
https://github.com/zoujiaqing/gn google gn 工具
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号