回答
该third_party
目录适用于在 Fuchsia 树之外管理的模块。在顶层.gitignore
目录被排除(链接):
/third_party/*
你可以看到这个文件夹在 git ( link ) 中大部分是空的。它首先在引导(链接)期间填充,它在内部用于jiri update
获取集成清单中指定的存储库(例如 for third_party
)。
您将在单独的存储库中维护您的模块git
。对于开发,您可以将此 repo 克隆到third-party
. 因为.gitignore
进入,所以不会被 Fuchsia 追踪git
。
例子
文件:
third_party/hello_world/BUILD.gn
third_party/hello_world/hello_world.cc
BUILD.gn
:
import("//build/package.gni")
group("hello_world") {
deps = [ ":hello-world-cpp" ]
}
executable("bin") {
output_name = "my_hello_world_cpp"
sources = [ "hello_world.cc" ]
}
package("hello-world-cpp") {
deps = [ ":bin" ]
binaries = [
{
name = "my_hello_world_cpp"
},
]
}
hello_world.cc
:
#include <iostream>
int main(int argc, char** argv) {
std::cout << "Hello, World (out-of-tree)!" << std::endl;
return 0;
}
构建并运行:
$ fx set bringup.x64 --with //third_party/hello_world
$ fx build
$ fx qemu
$ my_hello_world_cpp
Hello, World (out-of-tree)!