naiveproxy/src/BUILD.gn
2024-11-20 19:33:56 +08:00

85 lines
3.0 KiB
Plaintext

# Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This is the root build file for GN. GN will start processing by loading this
# file, and recursively load all dependencies until all dependencies are either
# resolved or known not to exist (which will cause the build to fail). So if
# you add a new build file, there must be some path of dependencies from this
# file to your new one or GN won't know about it.
import("//build/config/compiler/compiler.gni")
import("//build/config/cronet/config.gni")
import("//build/config/dcheck_always_on.gni")
import("//build/config/features.gni")
import("//build/config/ios/config.gni")
import("//build/config/rust.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/ui.gni")
import("//build/gn_logs.gni")
if (is_android) {
import("//build/config/android/config.gni")
}
declare_args() {
# A list of extra dependencies to add to the root target. This allows a
# checkout to add additional targets without explicitly changing any checked-
# in files.
root_extra_deps = []
}
if (is_official_build) {
# An official (maximally optimized!) component (optimized for build times)
# build doesn't make sense and usually doesn't work.
assert(!is_component_build)
}
# The `gn_all` target is used to list all of the main targets in the build, so
# that we can figure out which BUILD.gn files to process, following the process
# described at the top of this file.
#
# Because of the way GN works (again, as described above), there may be targets
# built by `all` that aren't built by `gn_all`. We always want `all` to build,
# so there's really never a reason you'd want to build `gn_all` instead of
# `all`, and no tooling should depend directly on this target. Tools should
# should depend on either an explicit list of targets, or `all`.
group("gn_all") {
testonly = true
deps = [
"//net",
]
}
if (is_android && !is_cronet_build) {
group("optimize_gn_gen") {
deps = [
# These run expensive scripts in non-default toolchains. Generally, host
# toolchain targets are loaded in the later part of the run, and the
# result is they push out the end of generation. By preloading these, the
# scripts can be parallelized with the rest of the load.
"//build/config/linux(//build/toolchain/linux:clang_x64)",
"//build/config/posix(//build/toolchain/linux:clang_x64)",
# Include x86 toolchains as well since V8 uses them for 32-bit snapshot
# generation.
"//build/config/linux(//build/toolchain/linux:clang_x86)",
"//build/config/posix(//build/toolchain/linux:clang_x86)",
]
}
}
# Write debug logs to gn_logs.txt.
_lines = [
"Generated during 'gn gen' by //BUILD.gn.",
"",
] + build_gn_logs
# GN evaluates each .gn file once per toolchain, so restricting to default
# toolchain will ensure write_file() is called only once.
assert(current_toolchain == default_toolchain)
write_file("$root_build_dir/gn_logs.txt", _lines)