# 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.

assert(is_win)

import("//flutter/shell/platform/glfw/config.gni")
import("//flutter/testing/testing.gni")

_public_headers = [ "public/flutter_windows.h" ]

config("relative_angle_headers") {
  include_dirs = [ "//third_party/angle/include" ]
}

# Any files that are built by clients (client_wrapper code, library headers for
# implementations using this shared code, etc.) include the public headers
# assuming they are in the include path. This configuration should be added to
# any such code that is also built by GN to make the includes work.
config("relative_flutter_windows_headers") {
  include_dirs = [ "public" ]
}

# The headers are a separate source set since the client wrapper is allowed
# to depend on the public headers, but none of the rest of the code.
source_set("flutter_windows_headers") {
  public = _public_headers

  public_deps = [ "//flutter/shell/platform/common:common_cpp_library_headers" ]

  configs +=
      [ "//flutter/shell/platform/common:desktop_library_implementation" ]

  public_configs =
      [ "//flutter/shell/platform/common:relative_flutter_library_headers" ]
}

source_set("flutter_windows_source") {
  # Common Windows sources.
  sources = [
    "accessibility_bridge_windows.cc",
    "accessibility_bridge_windows.h",
    "compositor.h",
    "compositor_opengl.cc",
    "compositor_opengl.h",
    "compositor_software.cc",
    "compositor_software.h",
    "cursor_handler.cc",
    "cursor_handler.h",
    "direct_manipulation.cc",
    "direct_manipulation.h",
    "dpi_utils.cc",
    "dpi_utils.h",
    "egl/context.cc",
    "egl/context.h",
    "egl/egl.cc",
    "egl/egl.h",
    "egl/manager.cc",
    "egl/manager.h",
    "egl/proc_table.cc",
    "egl/proc_table.h",
    "egl/surface.cc",
    "egl/surface.h",
    "egl/window_surface.cc",
    "egl/window_surface.h",
    "event_watcher.cc",
    "event_watcher.h",
    "external_texture.h",
    "external_texture_d3d.cc",
    "external_texture_d3d.h",
    "external_texture_pixelbuffer.cc",
    "external_texture_pixelbuffer.h",
    "flutter_key_map.g.cc",
    "flutter_platform_node_delegate_windows.cc",
    "flutter_platform_node_delegate_windows.h",
    "flutter_project_bundle.cc",
    "flutter_project_bundle.h",
    "flutter_window.cc",
    "flutter_window.h",
    "flutter_windows.cc",
    "flutter_windows_engine.cc",
    "flutter_windows_engine.h",
    "flutter_windows_texture_registrar.cc",
    "flutter_windows_texture_registrar.h",
    "flutter_windows_view.cc",
    "flutter_windows_view.h",
    "flutter_windows_view_controller.h",
    "keyboard_handler_base.h",
    "keyboard_key_channel_handler.cc",
    "keyboard_key_channel_handler.h",
    "keyboard_key_embedder_handler.cc",
    "keyboard_key_embedder_handler.h",
    "keyboard_key_handler.cc",
    "keyboard_key_handler.h",
    "keyboard_manager.cc",
    "keyboard_manager.h",
    "keyboard_utils.cc",
    "keyboard_utils.h",
    "platform_handler.cc",
    "platform_handler.h",
    "sequential_id_generator.cc",
    "sequential_id_generator.h",
    "settings_plugin.cc",
    "settings_plugin.h",
    "system_utils.cc",
    "system_utils.h",
    "task_runner.cc",
    "task_runner.h",
    "task_runner_window.cc",
    "task_runner_window.h",
    "text_input_manager.cc",
    "text_input_manager.h",
    "text_input_plugin.cc",
    "text_input_plugin.h",
    "window_binding_handler.h",
    "window_binding_handler_delegate.h",
    "window_proc_delegate_manager.cc",
    "window_proc_delegate_manager.h",
    "window_state.h",
    "windows_lifecycle_manager.cc",
    "windows_lifecycle_manager.h",
    "windows_proc_table.cc",
    "windows_proc_table.h",
    "windowsx_shim.h",
  ]

  libs = [
    "dwmapi.lib",
    "imm32.lib",
  ]

  configs += [
    "//flutter/shell/platform/common:desktop_library_implementation",
    "//third_party/angle:gl_prototypes",
  ]

  public_configs = [ ":relative_angle_headers" ]

  defines = [ "FLUTTER_ENGINE_NO_PROTOTYPES" ]

  public_deps = [
    "//flutter/fml:string_conversion",
    "//flutter/shell/platform/common:common_cpp_accessibility",
    "//flutter/shell/platform/common:common_cpp_enums",
  ]

  deps = [
    ":flutter_windows_headers",
    "//flutter/fml:fml",
    "//flutter/impeller/renderer/backend/gles",
    "//flutter/shell/platform/common:common_cpp",
    "//flutter/shell/platform/common:common_cpp_input",
    "//flutter/shell/platform/common:common_cpp_switches",
    "//flutter/shell/platform/common/client_wrapper:client_wrapper",
    "//flutter/shell/platform/embedder:embedder_as_internal_library",
    "//flutter/shell/platform/windows/client_wrapper:client_wrapper_windows",
    "//flutter/third_party/rapidjson",
    "//third_party/angle:libEGL_static",  # the order of libEGL_static and
                                          # libGLESv2_static is important.. if
                                          # reversed, will cause a linker error
                                          # DllMain already defined in
                                          # LIBCMTD.lib
    "//third_party/angle:libGLESv2_static",
  ]
}

copy("publish_headers_windows") {
  sources = _public_headers
  outputs = [ "$root_out_dir/{{source_file_part}}" ]

  # The Windows header assumes the presence of the common headers.
  deps = [ "//flutter/shell/platform/common:publish_headers" ]
}

shared_library("flutter_windows") {
  deps = [ ":flutter_windows_source" ]

  public_configs = [ "//flutter:config" ]
}

test_fixtures("flutter_windows_fixtures") {
  dart_main = "fixtures/main.dart"
  fixtures = []
}

executable("flutter_windows_unittests") {
  testonly = true

  # Common Windows test sources.
  sources = [
    "accessibility_bridge_windows_unittests.cc",
    "compositor_opengl_unittests.cc",
    "compositor_software_unittests.cc",
    "cursor_handler_unittests.cc",
    "direct_manipulation_unittests.cc",
    "dpi_utils_unittests.cc",
    "flutter_project_bundle_unittests.cc",
    "flutter_window_unittests.cc",
    "flutter_windows_engine_unittests.cc",
    "flutter_windows_texture_registrar_unittests.cc",
    "flutter_windows_unittests.cc",
    "flutter_windows_view_unittests.cc",
    "keyboard_key_channel_handler_unittests.cc",
    "keyboard_key_embedder_handler_unittests.cc",
    "keyboard_key_handler_unittests.cc",
    "keyboard_unittests.cc",
    "keyboard_utils_unittests.cc",
    "platform_handler_unittests.cc",
    "sequential_id_generator_unittests.cc",
    "settings_plugin_unittests.cc",
    "system_utils_unittests.cc",
    "task_runner_unittests.cc",
    "testing/egl/mock_context.h",
    "testing/egl/mock_manager.h",
    "testing/egl/mock_proc_table.h",
    "testing/egl/mock_window_surface.h",
    "testing/engine_modifier.h",
    "testing/flutter_windows_engine_builder.cc",
    "testing/flutter_windows_engine_builder.h",
    "testing/mock_direct_manipulation.h",
    "testing/mock_text_input_manager.cc",
    "testing/mock_text_input_manager.h",
    "testing/mock_window.cc",
    "testing/mock_window.h",
    "testing/mock_window_binding_handler.cc",
    "testing/mock_window_binding_handler.h",
    "testing/mock_windows_proc_table.h",
    "testing/test_keyboard.cc",
    "testing/test_keyboard.h",
    "testing/test_keyboard_unittests.cc",
    "testing/view_modifier.h",
    "testing/windows_test.cc",
    "testing/windows_test.h",
    "testing/windows_test_config_builder.cc",
    "testing/windows_test_config_builder.h",
    "testing/windows_test_context.cc",
    "testing/windows_test_context.h",
    "testing/wm_builders.cc",
    "testing/wm_builders.h",
    "text_input_plugin_unittest.cc",
    "window_proc_delegate_manager_unittests.cc",
    "window_unittests.cc",
    "windows_lifecycle_manager_unittests.cc",
  ]

  configs +=
      [ "//flutter/shell/platform/common:desktop_library_implementation" ]

  public_configs = [ "//flutter:config" ]

  deps = [
    ":flutter_windows_fixtures",
    ":flutter_windows_headers",
    ":flutter_windows_source",
    "//flutter/impeller/renderer/backend/gles",
    "//flutter/shell/platform/common:common_cpp",
    "//flutter/shell/platform/common/client_wrapper:client_wrapper",
    "//flutter/shell/platform/embedder:embedder_as_internal_library",
    "//flutter/shell/platform/embedder:embedder_test_utils",
    "//flutter/testing",
    "//flutter/testing:dart",
    "//flutter/third_party/rapidjson",
    "//flutter/third_party/tonic",
  ]
}

shared_library("flutter_windows_glfw") {
  deps = [ "//flutter/shell/platform/glfw:flutter_glfw" ]

  public_configs = [ "//flutter:config" ]
}

group("windows_glfw") {
  deps = [
    ":flutter_windows",
    ":flutter_windows_glfw",
    "//flutter/shell/platform/glfw:publish_headers_glfw",
    "//flutter/shell/platform/glfw/client_wrapper:publish_wrapper_glfw",
  ]
}

group("windows") {
  deps = [
    ":flutter_windows",
    ":publish_headers_windows",
    "//flutter/shell/platform/windows/client_wrapper:publish_wrapper_windows",
  ]

  if (build_glfw_shell) {
    deps += [ ":windows_glfw" ]
  }
}
