blob: e61dc56899b5b018b7083cfcdd83467bf7115cb5 [file] [log] [blame]
# Copyright 2018 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.
if (is_debug) {
default_optimize = "debug"
} else {
# TODO(phosek): consider using "size" in release mode to reduce size.
default_optimize = "speed"
}
# NOTE: Keep in sync with //build/config/zircon/levels.gni
# TODO: Unify the default value between the two files.
declare_args() {
# * `none`: really unoptimized, usually only build-tested and not run
# * `debug`: "optimized for debugging", light enough to avoid confusion
# * `default`: default optimization level
# * `size`: optimized for space rather than purely for speed
# * `speed`: optimized purely for speed
# * `sanitizer`: optimized for sanitizers (ASan, etc.)
# * `profile`: optimized for coverage/profile data collection
# * `coverage`: optimized for coverage data collection
optimize = default_optimize
}
_optimize_valid = [
"none",
"debug",
"default",
"size",
"speed",
"sanitizer",
"profile",
"coverage",
]
assert(_optimize_valid + [ optimize ] - [ optimize ] != _optimize_valid,
"`optimize=\"...\"` must be one of $_optimize_valid")
declare_args() {
# Controls whether to use the ML inliner in Clang to reduce size. Note that
# the option only takes effect when `optimize` is set to `"size"`.
clang_ml_inliner = false
}
if (clang_ml_inliner) {
assert(optimize == "size", "clang_ml_inliner requires `optimize = \"size\"`")
}
# NOTE: Keep in sync with //build/config/zircon/levels.gni
declare_args() {
# * `none` means no debugging information
# * `backtrace` means sufficient debugging information to symbolize backtraces
# * `debug` means debugging information suited for debugging
debuginfo = "debug"
}
_debuginfo_valid = [
"none",
"backtrace",
"debug",
]
assert(_debuginfo_valid + [ debuginfo ] - [ debuginfo ] != _debuginfo_valid,
"`debuginfo=\"...\"` must be one of $_debuginfo_valid")
declare_args() {
# Explicitly specify DWARF version used.
dwarf_version = 4
}
assert(dwarf_version >= 2 && dwarf_version <= 5,
"`dwarf_version=\"...\"` must be between 2 and 5")