GN требует //BUILD.gn для исполняемой цели для работы в подкаталоге? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь получить некоторый практический опыт работы с GN, но некоторая часть поведения все еще неясна для меня.

В настоящее время у меня есть следующее дерево каталогов:

root/
  - .gn
  - gnbuild/
    - BUILDCONFIG.gn
    - (other .gni files)
  - test/
    - BUILD.gn

Iнастроил точечный файл так, чтобы он принимал test / BUILD.gn в качестве корневого конфига:

# .gn
buildconfig = "//gnbuild/BUILDCONFIG.gn"
root = "//test:my_root"

Теперь у меня в test / BUILD.gn мое объявление цепочки инструментов и объявление исполняемого файла, как в:

# test/BUILD.gn
my_toolchain_template("a_toolchain") {
  ...
}

executable("foo_exec") {
  sources = ["foo.cc"]
}

group("my_root") {
  deps = [":foo_exec(:a_toolchain)"]
}

Теперь кажется, что GN не любит объявление исполняемого файла.(есть еще одна фиктивная цепочка инструментов, которая не используется, она есть, потому что я возился с ней, но это не должно изменить результат).

~/root$ gn gen -v out
Using source root ~/root/
Got dotfile ~/root/.gn
Using build dir //out/
Loading //gnbuild/BUILDCONFIG.gn
Loading //test/BUILD.gn
Running //test/BUILD.gn with toolchain //:fake_toolchain
Loading //gnbuild/toolchain.gni (referenced from //test/BUILD.gn:25)
Defining config //test:conf_default(//:fake_toolchain)
Defining toolchain //test:host_tc_default
Defining target //test:test_executable(//:fake_toolchain)
Defining target //test:test_exe_dump(//:fake_toolchain)
Defining target //test:test_root(//:fake_toolchain)
Loading //BUILD.gn (referenced from //test/BUILD.gn:36)
ERROR at //test/BUILD.gn:36:1: Unable to load "~/root/BUILD.gn".
executable("test_executable") {
^------------------------------

Может кто-нибудь пролить свет на это поведение?Я хотел бы избежать добавления пустого файла root / BUILD.gn, так как не до конца понимаю, зачем это нужно исполняемой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...