blob: 4c80c89993236427a37df8d591f15e6064a731a8 [file] [log] [blame]
# Copyright 2020 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/components.gni")
import("//build/rust/rustc_library.gni")
rustc_library("forma") {
name = "forma"
with_unit_tests = true
version = "0.1.0"
edition = "2021"
deps = [
"//src/graphics/lib/compute/surpass",
"//src/lib/trace/rust:trace",
"//third_party/rust_crates:rustc-hash",
]
# TODO(https://fxbug.dev/42133844): Fix the leaks and remove this.
test_deps = [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ]
configs += [ ":forma-performance" ]
sources = [
"src/buffer.rs",
"src/composition/interner.rs",
"src/composition/layer.rs",
"src/composition/mod.rs",
"src/composition/state.rs",
"src/layer.rs",
"src/lib.rs",
"src/renderer/cpu.rs",
"src/renderer/mod.rs",
"src/small_bit_set.rs",
"src/utils.rs",
]
}
config("forma-performance") {
# Enable all optimizations that benefit speed, even if they increase size
configs = [ "//build/config:optimize_speed" ]
if (target_cpu == "x64") {
# TODO(https://fxbug.dev/42168719): not all x64 targets are haswell.
# Consider moving this to a board config.
configs += [ "//build/config/x64:haswell" ]
}
if (target_cpu == "arm64") {
# TODO(https://fxbug.dev/42168343): the flag below is not added by default.
# It's safe to remove the line below when //build/config/arm64:cortex-a53
# picks up this flag.
# Also note that not all arm64 targets are cortex-a53.
# Depending on your target board this optimization flag may actually
# cause a regression.
rustflags = [ "-Ctarget-cpu=cortex-a53" ]
}
}
fuchsia_unittest_package("forma-tests") {
deps = [ ":forma_test" ]
}