chromium源码如何启用USE_ASH预定义宏
来源:互联网 发布:北京知果科技 编辑:程序博客网 时间:2024/05/16 09:05
chromium版本号:(stable_51.0.2704.106)
方案
启用USE_ASH宏需要重新生成编译目录。
在顶级GN目录(src目录)中输入:
gn args out/x86_d --ide=vs
在弹出的文本编辑器中添加编译选项参数:use_ash = true即可,我的args.gn文件
# Build arguments go here. Examples:# is_component_build = true# is_debug = false# See "gn args <out_dir> --list" for available build arguments.is_component_build = trueenable_nacl = falseis_debug = truetarget_cpu = "x86"use_ash = true
有时候在编辑参数的时候,GIT-BASH中就已经在生成文件了,此时你填写的参数可能就没生效了
Waiting for editor on "……\args.gn"...Generating files...
如果是这种情况,就等文件生成好后,保存args.gn再输入下面的命令:
gn gen out/x86_d --ide=vs
重新生成ninja文件和vcxproj文件就可以了,此时在ninja文件和vcxproj文件中就可以看到
-DUSE_ASH=1
的预定义宏了。接下来直接编译即可
ninja chrome
相关内容
你可以通过输入以下命令来获取所有编译选项参数的默认值,需要提供编译目录
gn args out/x86_d --list
也可以获取某个指定的变量
gn args out/x86_d --list=use_ash
结果如下
use_ash Default = false//build/config/ui.gni:22Indicates if Ash is enabled. Ash is the Aura Shell which provides adesktop-like environment for Aura. Requires use_aura = true
当我们在args.gn中指定了变量的值后,默认的初始化就不会执行.
具体的宏定义声明在以下位置src\build\config\BUILD.gn
config("feature_flags") { ... if (use_ash) { defines += [ "USE_ASH=1" ] } if (use_aura) { defines += [ "USE_AURA=1" ] } ...}
使用以下命令查看某个target的详细信息
gn desc out/x86_d //chrome/browser/ui:ui
可以对某项进行筛选
gn desc out/x86_d //chrome/browser/ui:ui defines
部分结果如下
definesMOJO_RUNNER_CLIENTMOJO_SHELL_CLIENTV8_DEPRECATION_WARNINGSCLD_VERSION=2ENABLE_MDNS=1ENABLE_NOTIFICATIONSENABLE_PEPPER_CDMSENABLE_PLUGINS=1ENABLE_PDF=1ENABLE_PRINTING=1ENABLE_BASIC_PRINTING=1ENABLE_PRINT_PREVIEW=1ENABLE_SPELLCHECK=1USE_ASH=1USE_AURA=1USE_DEFAULT_RENDER_THEME=1...
关于gn的详细用法,输入
gn help
查询,或参考GN Reference
参考内容
https://www.chromium.org/developers/gn-build-configuration
https://www.chromestory.com/2012/04/aura-and-ash-in-chrome-os-what-are-they/
so aha,编译后不能直接运行,大体看了下,不知道怎么改,是不是windows下不支持呢?
1 0
- chromium源码如何启用USE_ASH预定义宏
- 如何获取chromium的源码
- 如何快速获取Chromium源码和编译
- Chromium 源码
- 如何查看Linux GCC编译器里预定义的宏
- xcode工程如何添加预定义编译宏
- 如何获取编译器预定义宏的值
- C预定义宏
- 预定义宏
- FD_SET预定义宏
- 预定义_MSC_VER宏
- 预定义,宏定义
- 常用预定义宏
- Makefile宏预定义
- 编译器预定义宏
- C_C++预定义宏
- VS 预定义宏
- 编译器预定义宏
- MVC3使用MvcPager实现简单分页功能
- 构建微服务 spring boot
- SpringMVC,Spring MVC是一个基于Model2的MVC框架
- 深度剖析空间配置器(一)构造和析构函数
- Linux进程间通信——使用共享内存
- chromium源码如何启用USE_ASH预定义宏
- 搭建一个支持HTTPS的私有DOCKER Registry
- JavaScript设置按下enter键后执行函数
- 微服务实战:深入微服务架构的进程间通信
- STL 基础学习总结
- Maven Intellij 配置下载镜像
- shell-四(数组和函数)
- Docker命令解读-二
- Android优化(三)_延迟电池续航时间