01 新增扩展代码chromium 仓库中
以前一直在 out\Debug
或 out\Release
目录里面添加自己的资源目录,然后再修改 chrome\installer\mini_installer\chrome.release
里面增内容,添加打包资源。这样修改了扩展后,还要到扩展的git 仓库同步。
今天发现可以直接放到 chromium 代码仓库,而且很方便。比如,
源码目录 到编译目录: src\chrome\browser\extensions\test_extensions
⇒ out\Release\test
比如:参考 src\chrome\browser\extensions\default_extensions\BUILD.gn
中的内容。这里是把 external_extensions.json
文件拷贝到编译目录下的 extensions 目录下的同名文件。
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
if (is_win) {
copy("default_extensions") {
sources = [ "external_extensions.json" ]
outputs = [ "$root_out_dir/extensions/{{source_file_part}}" ]
}
} else {
# No-op on non-Windows.
group("default_extensions") {
}
}
其实这个windows 上的copy 命令是可以递归拷贝文件加的。
比如增加 src\chrome\browser\extensions\test_extensions
目录,下面添加如下内容:
src\chrome\browser\extensions\oray_extensions\BUILD.gn
# Copyright 2021 The Test Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
if (is_win) {
copy("test_extensions") {
sources = [
# 测试组件1
"test1.dll",
# 测试组件2
"test2.dll",
# js 扩展,这个下面有两个扩展,在 extensions\test1 目录和 extensions\test2 目录
"extensions"
]
outputs = [ "$root_out_dir/test/{{source_file_part}}" ]
}
} else {
# No-op on non-Windows.
group("test_extensions") {
}
}
chrome\installer\mini_installer\BUILD.gn
中 //chrome/browser/extensions/default_extensions",
后面增加
"//chrome/browser/extensions/test_extensions",
编译 mini_installer 会执行拷贝动作。效果如下(extensions 是递归拷贝过来的):
ninja -C out\Release mini_installer
ninja: Entering directory `out\Release'
[0/1] Regenerating ninja files
[10/10] LINK mini_installer.exe mini_installer.exe.pdb