mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Part 1 of https://github.com/flutter/flutter/issues/145263 This PR updates the names of builds outside of `local_engine.json` to be prefixed with the string `ci/` (or `ci\` on Windows). For better or worse, the "name" field of a build is used to construct a path used as the source directory of a copy operation (I think the CAS archive step?). Because of that, changing the name of a build also requires updating the build output directory of the ninja build. This PR also adds tests to make sure the naming of these builds remains consistent.
273 lines
6.0 KiB
Plaintext
273 lines
6.0 KiB
Plaintext
# 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/shell/config.gni")
|
|
import("testing.gni")
|
|
|
|
config("dynamic_symbols") {
|
|
if (is_clang && is_linux) {
|
|
ldflags = [ "-rdynamic" ]
|
|
}
|
|
}
|
|
|
|
source_set("testing_lib") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"assertions.h",
|
|
"debugger_detection.cc",
|
|
"debugger_detection.h",
|
|
"display_list_testing.cc",
|
|
"display_list_testing.h",
|
|
"logger_listener.cc",
|
|
"logger_listener.h",
|
|
"mock_canvas.cc",
|
|
"mock_canvas.h",
|
|
"post_task_sync.cc",
|
|
"post_task_sync.h",
|
|
"stream_capture.cc",
|
|
"stream_capture.h",
|
|
"test_args.cc",
|
|
"test_args.h",
|
|
"test_timeout_listener.cc",
|
|
"test_timeout_listener.h",
|
|
"testing.cc",
|
|
"testing.h",
|
|
"thread_test.cc",
|
|
"thread_test.h",
|
|
]
|
|
|
|
public_deps = [
|
|
"//flutter/display_list",
|
|
"//flutter/fml",
|
|
"//flutter/third_party/googletest:gmock",
|
|
"//flutter/third_party/googletest:gtest",
|
|
]
|
|
public_configs = [ "//flutter:config" ]
|
|
}
|
|
|
|
source_set("testing") {
|
|
testonly = true
|
|
|
|
sources = [ "run_all_unittests.cc" ]
|
|
|
|
if (enable_unittests && is_linux) {
|
|
# So that we can call gtk_init in main().
|
|
configs += [ "//flutter/shell/platform/linux/config:gtk" ]
|
|
}
|
|
|
|
public_deps = [ ":testing_lib" ]
|
|
public_configs = [ ":dynamic_symbols" ]
|
|
}
|
|
|
|
source_set("dart") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"dart_isolate_runner.cc",
|
|
"dart_isolate_runner.h",
|
|
"elf_loader.cc",
|
|
"elf_loader.h",
|
|
"test_dart_native_resolver.cc",
|
|
"test_dart_native_resolver.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":testing_lib",
|
|
"$dart_src/runtime/bin:elf_loader",
|
|
"//flutter/common",
|
|
"//flutter/runtime",
|
|
"//flutter/runtime:libdart",
|
|
"//flutter/skia",
|
|
"//flutter/third_party/tonic",
|
|
]
|
|
}
|
|
|
|
source_set("skia") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"assertions_skia.cc",
|
|
"assertions_skia.h",
|
|
"canvas_test.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":testing_lib",
|
|
"//flutter/skia",
|
|
]
|
|
}
|
|
|
|
dart_snapshot_kernel("vmservice_kernel") {
|
|
dart_main = "//flutter/shell/vmservice/empty.dart"
|
|
dart_kernel = "$target_gen_dir/assets/vmservice_kernel.bin"
|
|
}
|
|
|
|
dart_snapshot_aot("vmservice_snapshot") {
|
|
dart_kernel = "$target_gen_dir/assets/vmservice_kernel.bin"
|
|
dart_elf_filename = "libvmservice_snapshot.so"
|
|
deps = [ ":vmservice_kernel" ]
|
|
}
|
|
|
|
source_set("fixture_test") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"dart_fixture.cc",
|
|
"dart_fixture.h",
|
|
"fixture_test.cc",
|
|
"fixture_test.h",
|
|
]
|
|
|
|
public_deps = [
|
|
":dart",
|
|
"//flutter/common",
|
|
"//flutter/runtime",
|
|
]
|
|
|
|
if (flutter_runtime_mode == "profile") {
|
|
public_deps += [ ":vmservice_snapshot" ]
|
|
}
|
|
}
|
|
|
|
if (is_mac || is_ios) {
|
|
source_set("autoreleasepool_test") {
|
|
testonly = true
|
|
|
|
sources = [ "autoreleasepool_test.h" ]
|
|
|
|
deps = [
|
|
"//flutter/fml",
|
|
"//flutter/third_party/googletest:gtest",
|
|
]
|
|
}
|
|
}
|
|
|
|
if (enable_unittests && shell_enable_vulkan) {
|
|
source_set("vulkan") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"test_vulkan_context.cc",
|
|
"test_vulkan_context.h",
|
|
"test_vulkan_image.cc",
|
|
"test_vulkan_image.h",
|
|
"test_vulkan_surface.cc",
|
|
"test_vulkan_surface.h",
|
|
]
|
|
|
|
defines = [ "TEST_VULKAN_PROCS" ]
|
|
|
|
deps = [
|
|
":skia",
|
|
"//flutter/flutter_vma:flutter_skia_vma",
|
|
"//flutter/fml",
|
|
"//flutter/shell/common",
|
|
"//flutter/vulkan",
|
|
"//flutter/vulkan/procs",
|
|
]
|
|
|
|
if (!is_fuchsia) {
|
|
deps += [ "//flutter/third_party/swiftshader" ]
|
|
configs += [ "//flutter/third_party/swiftshader:swiftshader_config" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
if (enable_unittests) {
|
|
test_fixtures("testing_fixtures") {
|
|
fixtures = []
|
|
}
|
|
|
|
# The //flutter/testing library provides utility methods to other test targets.
|
|
# This test target tests the testing utilities.
|
|
executable("testing_unittests") {
|
|
testonly = true
|
|
|
|
sources = [ "mock_canvas_unittests.cc" ]
|
|
|
|
deps = [
|
|
":skia",
|
|
":testing",
|
|
":testing_fixtures",
|
|
"//flutter/runtime:libdart",
|
|
]
|
|
|
|
if (shell_enable_metal) {
|
|
sources += [ "test_metal_surface_unittests.cc" ]
|
|
|
|
deps += [ ":metal" ]
|
|
}
|
|
|
|
if (shell_enable_vulkan) {
|
|
deps += [ "//flutter/vulkan" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
# All targets on all platforms should be able to use the Metal utilities. On
|
|
# platforms where Metal is not available, the tests must be skipped or
|
|
# implemented to use another available client rendering API. This is usually
|
|
# either OpenGL which is portably implemented via SwiftShader or the software
|
|
# backend. This way, all tests compile on all platforms but the Metal backend
|
|
# is exercised on platforms where Metal itself is available.
|
|
#
|
|
# On iOS, this is enabled to allow for Metal tests to run within a test app
|
|
if (is_mac || is_ios) {
|
|
source_set("metal") {
|
|
if (shell_enable_metal) {
|
|
sources = [
|
|
"test_metal_context.h",
|
|
"test_metal_context.mm",
|
|
"test_metal_surface.cc",
|
|
"test_metal_surface.h",
|
|
"test_metal_surface_impl.h",
|
|
"test_metal_surface_impl.mm",
|
|
]
|
|
deps = [
|
|
":skia",
|
|
"//flutter/fml",
|
|
]
|
|
|
|
# Skia's Vulkan support is enabled for all platforms (except iOS), and so parts of
|
|
# Skia's graphics context reference Vulkan symbols.
|
|
if (shell_enable_vulkan) {
|
|
deps += [ "//flutter/vulkan" ]
|
|
}
|
|
}
|
|
|
|
testonly = true
|
|
}
|
|
}
|
|
|
|
# We only use SwiftShader on unittests
|
|
use_swiftshader = enable_unittests && shell_enable_gl
|
|
if (use_swiftshader) {
|
|
source_set("opengl") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"test_gl_surface.cc",
|
|
"test_gl_surface.h",
|
|
]
|
|
|
|
deps = [
|
|
":skia",
|
|
"//flutter/fml",
|
|
]
|
|
|
|
configs -= [ "//build/config/clang:extra_warnings" ]
|
|
configs += [
|
|
"//flutter/third_party/angle:gl_prototypes",
|
|
"//flutter/third_party/swiftshader:swiftshader_config",
|
|
]
|
|
deps += [
|
|
"//flutter/third_party/angle:libEGL_static",
|
|
"//flutter/third_party/angle:libGLESv2_static",
|
|
"//flutter/third_party/swiftshader",
|
|
]
|
|
}
|
|
}
|