third_party.pigweed.src/pw_bloat/BUILD.gn

54 lines
1.4 KiB
Plaintext
Raw Normal View History

# Copyright 2019 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
import("$dir_pw_build/pw_executable.gni")
import("$dir_pw_docgen/docs.gni")
config("default_config") {
include_dirs = [ "public" ]
}
# Library which uses standard C/C++ functions such as memcpy to prevent them
# from showing up within bloat diff reports.
source_set("bloat_this_binary") {
public_configs = [
"$dir_pw_build:pw_default_cpp",
":default_config",
]
public = [
"public/pw_bloat/bloat_this_binary.h",
]
sources = [ "bloat_this_binary.cc" ] + public
}
# Standard minimal base binary for bloat reports.
pw_executable("bloat_base") {
deps = [
":bloat_this_binary",
]
sources = [
"base_main.cc",
]
}
pw_doc_group("docs") {
sources = [
"docs.rst",
]
pw_toolchain_size_report template This change adds a GN template which creates a size report card across a set of different toolchains. The toolchains are defined in a build variable, each with an optional linker script and Bloaty config. The size report template builds a base and diff executable with each of the toolchains and compares the size difference of each. Example output for the host target: simple_bloat_toolchain ────────────────────── ┌───────────┬─────────┬────────┬───────┬───────┐ │ Label │ Segment │ Before │ Delta │ After │ ├═══════════┼═════════┼════════┼═══════┼═══════┤ │ gcc -Og │ CODE │ 413 │ +32 │ 445 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ gcc -Os │ CODE │ 429 │ +16 │ 445 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ gcc -O2 │ CODE │ 429 │ +32 │ 461 │ │ │ RAM │ 576 │ +8 │ 584 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -Og │ CODE │ 448 │ +32 │ 480 │ │ │ RAM │ 113 │ +15 │ 128 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -Os │ CODE │ 432 │ +16 │ 448 │ │ │ RAM │ 113 │ +15 │ 128 │ ├───────────┼─────────┼────────┼───────┼───────┤ │ clang -O2 │ CODE │ 448 │ +80 │ 528 │ │ │ RAM │ 113 │ +15 │ 128 │ └───────────┴─────────┴────────┴───────┴───────┘ Change-Id: I2c65f4d4f61354b9779628f207297eacd04470b9
2019-12-19 00:13:38 +00:00
report_deps = [
"examples:simple_bloat_loop",
"examples:simple_bloat_function",
]
}