1、NDEBUG 宏
位置:src/build/config/BUILD.gn,定义在 “release” 的 config 配置块中。
什么时候该配置块生效,查找代码发现 src/build/config/BUILDCONFIG.gn 中通过 //build/config:release 引用了该配置块,使得它生效,而生效前提是 is_debug 为 false。is_debug 也在 BUILDCONFIG.gn 中定义:
is_debug = !is_official_build
is_official_build 也定义在 BUILDCONFIG.gn 中,默认值为 false
以上是默认情况,在使用脚本编译时,可以通过 GN_DEFINES 来自定义 is_debug 的值:
// python 脚本
global BUILD_DEBUG
if BUILD_DEBUG and build_type == 'debug':
is_debug = 'true'
else:
is_debug = 'false'
GN_DEFINES += ' clang_use_chrome_plugins = false is_debug = %s symbol_level = %r' % (is_debug, SYMBOL_LEVEL)