GN-自分用覚書

ソースファイルがどのターゲットに含まれているかを探す

print_preview_ui.ccがどのターゲットに含まれるか調べる

>gn refs out\debug //chrome/browser/ui/webui/print_preview/print_preview_ui.cc
//chrome/browser/ui:ui_4
>

print_preview_ui.ccはターゲット//chrome/browser/ui:ui_4に含まれている。

ターゲット//chrome/browser/ui:ui_4がどのターゲットに含まれるか調べる。

>gn refs out\debug //chrome/browser/ui:ui_4
//chrome/browser/ui:ui
>
>gn refs out\debug //chrome/browser/ui:ui
//chrome/browser:browser_0
//chrome/browser:browser_1
//chrome/browser:browser_2
//chrome/browser:browser_3
//chrome/browser:browser_4
//chrome/browser/devtools:test_support
//chrome/browser/ui:test_support
//chrome/test/data/webui:browser_tests_js_mojo_webui
//chrome/test/data/webui:browser_tests_js_mojo_webui_action
//chrome/test/data/webui:browser_tests_js_webui
//chrome/test/data/webui:browser_tests_js_webui_action
//chrome/test/data/webui:interactive_ui_tests_js_webui
//chrome/test/data/webui:interactive_ui_tests_js_webui_action
//chrome/test/media_router:browser_tests
>

この中で実行ファイルらしきものは//chrome/test/media_router:browser_testsなのでこれをビルドしてみればデバッグできる。browser_0などは//chrome/browser:browserに含まれており、これもいろいろなテストに含まれる。

以下のコマンドで一発でできる。

>gn refs out\debug //chrome/browser/ui/webui/print_preview/print_preview_ui.cc --all --type=executable
//chrome:chrome_initial
//chrome/installer/mini_installer:mini_installer
//chrome/installer/test:upgrade_test
//chrome/test:autofill_captured_sites_interactive_tests
//chrome/test:browser_tests
//chrome/test:chrome_app_unittests
//chrome/test:interactive_ui_tests
//chrome/test:ntp_render_browsertests
//chrome/test:performance_browser_tests
//chrome/test:sync_integration_tests
//chrome/test:sync_performance_tests
//chrome/test:unit_tests
//chrome_elf:chrome_elf_import_unittests
>

ターゲットが依存するターゲットがどこで定義されたか調べる

直接依存していない場合は、間接的に依存しているのでそれを調べる。

desc --treeを使う

gn desc out\debug --tree //:HelloWorld

これはHelloWorldが依存しているものを調べる場合。--treeによりツリー上に一覧が表示されるのでここから検索する。

pathを使う

これは2つのターゲットがどのように依存しているかを表示する。

>gn path out\debug //:HelloWorld //:sse2
//:HelloWorld --[private]-->
//:skia --[private]-->
//:sse2

Showing one of 3 "interesting" non-data paths. 0 of them are public.
Use --all to print all paths.
>

HelloWorldはskiaに依存しており、skiaがsse2に依存していることがわかる。

ターゲットが定義したdefineを調べる

gn desc out\debug //:skia defines

--blameをつけるとツリー表示になり、誰が定義したかがわかる。

gn desc out\debug //:skia defines --blame
Page last modified on June 22, 2019, at 08:29 PM
Powered by PmWiki