| # 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/platform/config.gni") |
| import("//flutter/shell/platform/glfw/config.gni") |
| import("//flutter/testing/testing.gni") |
| |
| # Whether to build the dartdevc sdk, libraries, and source files |
| # required for the flutter web sdk. |
| declare_args() { |
| full_dart_sdk = false |
| } |
| |
| config("config") { |
| include_dirs = [ ".." ] |
| if (is_win) { |
| if (current_cpu != "x86") { |
| cflags = [ "/WX" ] # Treat warnings as errors. |
| } |
| } |
| |
| defines = [] |
| |
| # This define is transitional and will be removed after the embedder API |
| # transition is complete. |
| # |
| # TODO(bugs.fuchsia.dev/54041): Remove when no longer necessary. |
| if (is_fuchsia && flutter_enable_legacy_fuchsia_embedder) { |
| defines += [ "LEGACY_FUCHSIA_EMBEDDER" ] |
| } |
| |
| if (is_debug) { |
| defines += [ "FLUTTER_ENABLE_DIFF_CONTEXT" ] |
| } |
| } |
| |
| config("export_dynamic_symbols") { |
| if (is_linux || is_fuchsia) { |
| inputs = [ "//flutter/common/exported_symbols.sym" ] |
| ldflags = [ "-Wl,--dynamic-list=" + rebase_path(inputs[0], root_build_dir) ] |
| } |
| } |
| |
| group("flutter") { |
| testonly = true |
| |
| # Compile the engine. |
| public_deps = [ |
| "//flutter/shell/platform/embedder:flutter_engine", |
| "//flutter/sky", |
| ] |
| |
| # Flutter SDK artifacts should only be built when either doing host builds, or |
| # for cross-compiled desktop targets. |
| build_engine_artifacts = current_toolchain == host_toolchain || |
| (is_linux && !is_chromeos) || is_mac |
| |
| # If enbaled, compile the SDK / snapshot. |
| if (!is_fuchsia) { |
| public_deps += [ |
| "//flutter/lib/snapshot:generate_snapshot_bin", |
| "//flutter/lib/snapshot:kernel_platform_files", |
| ] |
| |
| if (build_engine_artifacts) { |
| public_deps += [ |
| "//flutter/flutter_frontend_server:frontend_server", |
| "//third_party/dart:create_sdk", |
| |
| # This must be listed explicitly for desktop cross-builds since |
| # //flutter/lib/snapshot:generate_snapshot_bin will only build |
| # gen_snapshot for the host and not the target. |
| "//third_party/dart/runtime/bin:gen_snapshot", |
| ] |
| |
| if (full_dart_sdk) { |
| public_deps += [ "//flutter/web_sdk" ] |
| } |
| } |
| } |
| |
| if (build_engine_artifacts) { |
| public_deps += [ |
| "//flutter/shell/testing", |
| "//flutter/tools/const_finder", |
| "//flutter/tools/font-subset", |
| ] |
| } |
| |
| # Compile all benchmark targets if enabled. |
| if (enable_unittests && !is_win) { |
| public_deps += [ |
| "//flutter/fml:fml_benchmarks", |
| "//flutter/lib/ui:ui_benchmarks", |
| "//flutter/shell/common:shell_benchmarks", |
| "//flutter/third_party/txt:txt_benchmarks", |
| ] |
| } |
| |
| # Compile all unittests targets if enabled. |
| if (enable_unittests) { |
| public_deps += [ |
| "//flutter/flow:flow_unittests", |
| "//flutter/fml:fml_unittests", |
| "//flutter/lib/spirv/test/exception_shaders:spirv_compile_exception_shaders", |
| "//flutter/lib/ui:ui_unittests", |
| "//flutter/runtime:no_dart_plugin_registrant_unittests", |
| "//flutter/runtime:runtime_unittests", |
| "//flutter/shell/common:shell_unittests", |
| "//flutter/shell/platform/embedder:embedder_proctable_unittests", |
| "//flutter/shell/platform/embedder:embedder_unittests", |
| "//flutter/testing:testing_unittests", |
| "//flutter/third_party/tonic/tests:tonic_unittests", |
| "//flutter/third_party/txt:txt_unittests", |
| ] |
| |
| # The accessibility library only supports Mac and Windows at the moment. |
| if (is_mac || is_win) { |
| public_deps += |
| [ "//flutter/third_party/accessibility:accessibility_unittests" ] |
| } |
| |
| if (is_fuchsia) { |
| public_deps += [ "//flutter/shell/platform/fuchsia:tests" ] |
| } |
| |
| if (is_mac) { |
| public_deps += |
| [ "//flutter/shell/platform/darwin:flutter_channels_unittests" ] |
| } |
| |
| if (!is_win && !is_fuchsia) { |
| public_deps += [ |
| "//flutter/shell/platform/android/external_view_embedder:android_external_view_embedder_unittests", |
| "//flutter/shell/platform/android/jni:jni_unittests", |
| "//flutter/shell/platform/android/platform_view_android_delegate:platform_view_android_delegate_unittests", |
| ] |
| } |
| |
| # Unit tests for desktop embeddings should only be built if the desktop |
| # embeddings are being built. |
| if (enable_desktop_embeddings) { |
| public_deps += [ |
| "//flutter/shell/platform/common:common_cpp_core_unittests", |
| "//flutter/shell/platform/common/client_wrapper:client_wrapper_unittests", |
| ] |
| |
| if (!is_fuchsia) { |
| # These tests require the embedder and thus cannot run on fuchsia. |
| # TODO(): Enable when embedder works on fuchsia. |
| public_deps += |
| [ "//flutter/shell/platform/common:common_cpp_unittests" ] |
| |
| # These tests require GLFW and thus cannot run on fuchsia. |
| public_deps += [ "//flutter/shell/platform/glfw/client_wrapper:client_wrapper_glfw_unittests" ] |
| } |
| |
| if (is_linux) { |
| public_deps += |
| [ "//flutter/shell/platform/linux:flutter_linux_unittests" ] |
| if (build_glfw_shell) { |
| public_deps += |
| [ "//flutter/shell/platform/glfw:flutter_glfw_unittests" ] |
| } |
| } |
| |
| if (is_mac) { |
| public_deps += [ "//flutter/shell/platform/darwin/macos:flutter_desktop_darwin_unittests" ] |
| } |
| |
| if (is_win) { |
| if (target_os == "winuwp") { |
| # TODO: Add winnup variant of client_wrapper_windows_unittests here; see |
| # https://github.com/flutter/flutter/issues/70197 |
| public_deps += |
| [ "//flutter/shell/platform/windows:flutter_windows_unittests" ] |
| } else { |
| public_deps += [ |
| "//flutter/shell/platform/windows:flutter_windows_unittests", |
| "//flutter/shell/platform/windows/client_wrapper:client_wrapper_windows_unittests", |
| ] |
| } |
| } |
| } |
| } |
| } |
| |
| group("dist") { |
| testonly = true |
| |
| deps = [ "//flutter/sky/dist" ] |
| } |
| |
| if (is_fuchsia) { |
| group("fuchsia_tests") { |
| testonly = true |
| |
| deps = [ "//flutter/shell/platform/fuchsia:tests" ] |
| } |
| } |