From ecb9da14468b64f9cd05bc9df0750ea4ad437b42 Mon Sep 17 00:00:00 2001 From: stuartmorgan Date: Wed, 27 Mar 2019 23:38:44 -0400 Subject: [PATCH] Build Windows shell (flutter/engine#8331) Enables the build of the Windows shell, based on the same GLFW code used by the current Linux shell. --- engine/src/flutter/shell/platform/BUILD.gn | 9 +++++--- .../common/cpp/client_wrapper/publish.gni | 12 +++++++++- .../flutter/shell/platform/windows/BUILD.gn | 22 +++++++++++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 engine/src/flutter/shell/platform/windows/BUILD.gn diff --git a/engine/src/flutter/shell/platform/BUILD.gn b/engine/src/flutter/shell/platform/BUILD.gn index 206f997d9d..89b1bbabe6 100644 --- a/engine/src/flutter/shell/platform/BUILD.gn +++ b/engine/src/flutter/shell/platform/BUILD.gn @@ -13,9 +13,12 @@ group("platform") { ] } else if (is_linux) { deps = [] - } else if (is_win || is_fuchsia) { - # There is no platform target on Windows. Fuchsia has its own runner - # implementation. + } else if (is_win) { + deps = [ + "windows", + ] + } else if ( is_fuchsia) { + # Fuchsia has its own runner implementation. deps = [] } else { assert(false, "Unknown/Unsupported platform.") diff --git a/engine/src/flutter/shell/platform/common/cpp/client_wrapper/publish.gni b/engine/src/flutter/shell/platform/common/cpp/client_wrapper/publish.gni index 8913062ced..5483ab56a6 100644 --- a/engine/src/flutter/shell/platform/common/cpp/client_wrapper/publish.gni +++ b/engine/src/flutter/shell/platform/common/cpp/client_wrapper/publish.gni @@ -23,7 +23,10 @@ template("publish_client_wrapper") { } copy("${template_target_name}_publish_includes") { - visibility = [ ":$template_target_name" ] + visibility = [ + ":$template_target_name", + ":${template_target_name}_publish_sources", + ] sources = invoker.public outputs = [ @@ -38,5 +41,12 @@ template("publish_client_wrapper") { outputs = [ "$publish_dir_root/{{source_file_part}}", ] + + # GN on Windows appears to do #include checks even for copy + # targets, so add the dependency to the headers to satisfy + # the check. + deps = [ + ":${template_target_name}_publish_includes", + ] } } diff --git a/engine/src/flutter/shell/platform/windows/BUILD.gn b/engine/src/flutter/shell/platform/windows/BUILD.gn new file mode 100644 index 0000000000..26fe53036b --- /dev/null +++ b/engine/src/flutter/shell/platform/windows/BUILD.gn @@ -0,0 +1,22 @@ +# 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) + +group("windows") { + deps = [ + ":flutter_windows", + "$flutter_root/shell/platform/glfw:publish_headers_glfw", + "$flutter_root/shell/platform/common/cpp/client_wrapper:publish_wrapper", + "$flutter_root/shell/platform/glfw/client_wrapper:publish_wrapper_glfw", + ] +} + +shared_library("flutter_windows") { + deps = [ + "$flutter_root/shell/platform/glfw:flutter_glfw", + ] + + public_configs = [ "$flutter_root:config" ] +}