blob: 9c65762b8be3695faef3bb5bf8b0adb03e13bf6b [file]
# 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_root/shell/platform/glfw/config.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_root/shell/platform/common/cpp:common_cpp_library_headers",
]
configs += [
"$flutter_root/shell/platform/common/cpp:desktop_library_implementation",
]
public_configs = [
"$flutter_root/shell/platform/common/cpp:relative_flutter_library_headers",
]
}
source_set("flutter_windows_source") {
sources = [
"angle_surface_manager.cc",
"angle_surface_manager.h",
"flutter_windows.cc",
"key_event_handler.cc",
"key_event_handler.h",
"keyboard_hook_handler.h",
"platform_handler.cc",
"platform_handler.h",
"text_input_plugin.cc",
"text_input_plugin.h",
"win32_dpi_helper.cc",
"win32_dpi_helper.h",
"win32_flutter_window.cc",
"win32_flutter_window.h",
"win32_window.cc",
"win32_window.h",
"window_state.h",
]
defines = [ "USE_RAPID_JSON" ]
configs += [
"$flutter_root/shell/platform/common/cpp:desktop_library_implementation",
"//third_party/angle:gl_prototypes",
]
public_configs = [ ":relative_angle_headers" ]
deps = [
":flutter_windows_headers",
"$flutter_root/shell/platform/common/cpp:common_cpp",
"$flutter_root/shell/platform/common/cpp/client_wrapper:client_wrapper",
"$flutter_root/shell/platform/embedder:embedder_with_symbol_prefix",
"$flutter_root/shell/platform/windows/client_wrapper:client_wrapper_windows",
"//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",
"//third_party/rapidjson",
]
}
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_root/shell/platform/common/cpp:publish_headers",
]
}
shared_library("flutter_windows_win32") {
deps = [
":flutter_windows_source",
]
public_configs = [ "$flutter_root:config" ]
}
# TODO: Remove this target once the _glfw copy is being uploaded instead. See
# https://github.com/flutter/flutter/issues/38589
shared_library("flutter_windows") {
deps = [
"$flutter_root/shell/platform/glfw:flutter_glfw",
]
public_configs = [ "$flutter_root:config" ]
}
shared_library("flutter_windows_glfw") {
deps = [
"$flutter_root/shell/platform/glfw:flutter_glfw",
]
public_configs = [ "$flutter_root:config" ]
}
group("windows_win32") {
deps = [
":flutter_windows_win32",
":publish_headers_windows",
"$flutter_root/shell/platform/windows/client_wrapper:publish_wrapper_windows",
]
}
group("windows_glfw") {
deps = [
":flutter_windows",
":flutter_windows_glfw",
"$flutter_root/shell/platform/glfw:publish_headers_glfw",
"$flutter_root/shell/platform/glfw/client_wrapper:publish_wrapper_glfw",
"$flutter_root/shell/platform/glfw/client_wrapper:publish_wrapper_unprefixed",
]
}
group("windows") {
deps = [
":windows_win32",
]
if (build_glfw_shell) {
deps += [ ":windows_glfw" ]
}
}