| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/host.gni") |
| |
| # The label and output file for running `gn desc` on the outdir. |
| gn_desc_json = "gn_desc.json" |
| |
| if (current_toolchain == default_toolchain) { |
| gn_desc_json_file = "${root_build_dir}/${gn_desc_json}" |
| |
| # This is a target that is used to also cause the gn_desc.json file to be |
| # created when the host tool is created, and can be used to regenerate the |
| # file as-needed. |
| action(gn_desc_json) { |
| script = "//scripts/generate_gn_desc.py" |
| outputs = [ gn_desc_json_file ] |
| depfile = "$target_out_dir/$gn_desc_json.d" |
| hermetic_deps = false |
| no_output_dir_leaks = false |
| |
| args = [ |
| "--fuchsia_dir", |
| rebase_path("//", root_build_dir), |
| "--gn_binary", |
| rebase_path("//prebuilt/third_party/gn/${host_platform}/gn", |
| root_build_dir), |
| "--output", |
| rebase_path(gn_desc_json_file, root_build_dir), |
| "--depfile", |
| rebase_path(depfile, root_build_dir), |
| ] |
| } |
| } |
| |
| if (is_host) { |
| # The default target adds the tool and the generation of the `gn_desc.json` |
| # file to the build graph. |
| group("gn_desc") { |
| testonly = true |
| deps = [ |
| ":${gn_desc_json}($default_toolchain)", |
| ":install_gn_desc($host_toolchain)", |
| ] |
| } |
| |
| # This makes the binary available to fx. It also lists the gn_desc.json target |
| # as a dependency so that if the tool is installed, then `gn desc` is always |
| # run and a file available for it to use. |
| install_host_tools("install_gn_desc") { |
| testonly = true |
| deps = [ |
| ":${gn_desc_json}($default_toolchain)", |
| "bin:gn_desc", |
| ] |
| outputs = [ "gn_desc" ] |
| } |
| |
| # All the tests. |
| group("host_tests") { |
| testonly = true |
| deps = [ |
| "bin:tests", |
| "gn_graph:tests", |
| "gn_json:tests", |
| "tests", |
| ] |
| } |
| } |