blob: 2bbb1e545e4db901663f46194197171935004fc4 [file] [log] [blame]
# Copyright 2013 The Flutter 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("//flutter/common/config.gni")
import("//flutter/impeller/tools/impeller.gni")
import("//flutter/testing/testing.gni")
if (is_fuchsia) {
import("//flutter/tools/fuchsia/gn-sdk/src/gn_configs.gni")
}
config("display_list_config") {
defines = []
if (impeller_enable_3d) {
defines += [ "IMPELLER_ENABLE_3D" ]
}
}
source_set("display_list") {
sources = [
"benchmarking/dl_complexity.cc",
"benchmarking/dl_complexity.h",
"benchmarking/dl_complexity_gl.cc",
"benchmarking/dl_complexity_gl.h",
"benchmarking/dl_complexity_metal.cc",
"benchmarking/dl_complexity_metal.h",
"display_list.cc",
"display_list.h",
"dl_attributes.h",
"dl_blend_mode.cc",
"dl_blend_mode.h",
"dl_builder.cc",
"dl_builder.h",
"dl_canvas.cc",
"dl_canvas.h",
"dl_color.h",
"dl_op_flags.cc",
"dl_op_flags.h",
"dl_op_receiver.cc",
"dl_op_receiver.h",
"dl_op_records.cc",
"dl_op_records.h",
"dl_paint.cc",
"dl_paint.h",
"dl_sampling_options.h",
"dl_tile_mode.h",
"dl_vertices.cc",
"dl_vertices.h",
"effects/dl_color_filter.cc",
"effects/dl_color_filter.h",
"effects/dl_color_source.cc",
"effects/dl_color_source.h",
"effects/dl_image_filter.cc",
"effects/dl_image_filter.h",
"effects/dl_mask_filter.cc",
"effects/dl_mask_filter.h",
"effects/dl_path_effect.cc",
"effects/dl_path_effect.h",
"effects/dl_runtime_effect.cc",
"effects/dl_runtime_effect.h",
"geometry/dl_region.cc",
"geometry/dl_region.h",
"geometry/dl_rtree.cc",
"geometry/dl_rtree.h",
"image/dl_image.cc",
"image/dl_image.h",
"image/dl_image_skia.cc",
"image/dl_image_skia.h",
"skia/dl_sk_canvas.cc",
"skia/dl_sk_canvas.h",
"skia/dl_sk_conversions.cc",
"skia/dl_sk_conversions.h",
"skia/dl_sk_dispatcher.cc",
"skia/dl_sk_dispatcher.h",
"skia/dl_sk_paint_dispatcher.cc",
"skia/dl_sk_paint_dispatcher.h",
"skia/dl_sk_types.h",
"utils/dl_bounds_accumulator.cc",
"utils/dl_bounds_accumulator.h",
"utils/dl_matrix_clip_tracker.cc",
"utils/dl_matrix_clip_tracker.h",
"utils/dl_receiver_utils.cc",
"utils/dl_receiver_utils.h",
]
public_configs = [ ":display_list_config" ]
public_deps = [
"//flutter/fml",
"//flutter/impeller/runtime_stage",
"//flutter/impeller/typographer",
"//flutter/skia",
]
if (!defined(defines)) {
defines = []
}
}
test_fixtures("display_list_fixtures") {
fixtures =
[ "//flutter/third_party/txt/third_party/fonts/Roboto-Regular.ttf" ]
}
if (enable_unittests) {
executable("display_list_unittests") {
testonly = true
sources = [
"benchmarking/dl_complexity_unittests.cc",
"display_list_unittests.cc",
"dl_color_unittests.cc",
"dl_paint_unittests.cc",
"dl_vertices_unittests.cc",
"effects/dl_color_filter_unittests.cc",
"effects/dl_color_source_unittests.cc",
"effects/dl_image_filter_unittests.cc",
"effects/dl_mask_filter_unittests.cc",
"effects/dl_path_effect_unittests.cc",
"geometry/dl_region_unittests.cc",
"geometry/dl_rtree_unittests.cc",
"skia/dl_sk_conversions_unittests.cc",
"skia/dl_sk_paint_dispatcher_unittests.cc",
"utils/dl_matrix_clip_tracker_unittests.cc",
]
deps = [
":display_list",
":display_list_fixtures",
"//flutter/display_list/testing:display_list_testing",
"//flutter/testing",
"//flutter/testing:skia",
]
if (!defined(defines)) {
defines = []
}
if (is_win) {
# Required for M_PI and others.
defines += [ "_USE_MATH_DEFINES" ]
}
# This is needed for //flutter/third_party/googletest for linking zircon
# symbols.
if (is_fuchsia) {
libs = [ "${fuchsia_arch_root}/sysroot/lib/libzircon.so" ]
}
}
executable("display_list_rendertests") {
testonly = true
sources = [ "testing/dl_rendering_unittests.cc" ]
deps = [
":display_list",
":display_list_fixtures",
"//flutter/common/graphics",
"//flutter/display_list/testing:display_list_surface_provider",
"//flutter/display_list/testing:display_list_testing",
"//flutter/impeller/typographer/backends/skia:typographer_skia_backend",
"//flutter/testing",
"//flutter/third_party/txt",
]
if (!defined(defines)) {
defines = []
}
if (is_win) {
# Required for M_PI and others.
defines += [ "_USE_MATH_DEFINES" ]
}
# This is needed for //flutter/third_party/googletest for linking zircon
# symbols.
if (is_fuchsia) {
libs = [ "${fuchsia_arch_root}/sysroot/lib/libzircon.so" ]
}
}
executable("display_list_builder_benchmarks") {
testonly = true
sources = [ "benchmarking/dl_builder_benchmarks.cc" ]
deps = [
":display_list",
":display_list_fixtures",
"//flutter/benchmarking",
"//flutter/display_list/testing:display_list_testing",
"//flutter/testing:testing_lib",
]
}
executable("display_list_region_benchmarks") {
testonly = true
sources = [ "benchmarking/dl_region_benchmarks.cc" ]
deps = [
":display_list_fixtures",
"//flutter/benchmarking",
"//flutter/testing:testing_lib",
]
}
executable("display_list_transform_benchmarks") {
testonly = true
sources = [ "benchmarking/dl_transform_benchmarks.cc" ]
deps = [
":display_list_fixtures",
"//flutter/benchmarking",
"//flutter/testing:testing_lib",
]
}
}
source_set("display_list_benchmarks_source") {
testonly = true
sources = [
"benchmarking/dl_benchmarks.cc",
"benchmarking/dl_benchmarks.h",
]
deps = [
":display_list",
":display_list_fixtures",
"$dart_src/runtime:libdart_jit", # for tracing
"//flutter/benchmarking",
"//flutter/common/graphics",
"//flutter/display_list/testing:display_list_surface_provider",
"//flutter/display_list/testing:display_list_testing",
"//flutter/fml",
"//flutter/skia",
"//flutter/testing:skia",
"//flutter/testing:testing_lib",
]
}
executable("display_list_benchmarks") {
testonly = true
deps = [ ":display_list_benchmarks_source" ]
}
if (is_ios) {
shared_library("ios_display_list_benchmarks") {
testonly = true
visibility = [ ":*" ]
configs -= [
"//build/config/gcc:symbol_visibility_hidden",
"//build/config:symbol_visibility_hidden",
]
configs += [ "//flutter/benchmarking:benchmark_library_config" ]
cflags = [
"-fobjc-arc",
"-mios-simulator-version-min=$ios_testing_deployment_target",
]
ldflags =
[ "-Wl,-install_name,@rpath/libios_display_list_benchmarks.dylib" ]
deps = [
":display_list_benchmarks_source",
"//flutter/benchmarking:benchmarking_library",
]
}
}