Ответ
Каталог third_party
предназначен для модулей, которые управляются вне дерева фуксий. На верхнем уровне .gitignore
каталог исключен ( ссылка ):
/third_party/*
Вы можете видеть, что эта папка в основном пуста в git ( ссылка ). Сначала он заполняется во время bootstrap ( link ), который внутренне использует jiri update
для получения репозиториев, указанных в манифесте интеграции (например, для third_party
).
Вы бы содержали свой модуль в отдельном git
репо. Для разработки вы должны клонировать этот репозиторий в подкаталог в third-party
. Из-за записи .gitignore
она не будет отслеживаться фуксией 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)!