| # 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_linux) | |
| import("//flutter/shell/platform/glfw/config.gni") | |
| import("//flutter/shell/platform/linux/config.gni") | |
| group("linux") { | |
| deps = [] | |
| if (build_glfw_shell) { | |
| deps += [ | |
| ":flutter_linux_glfw", | |
| "//flutter/shell/platform/glfw:publish_headers_glfw", | |
| "//flutter/shell/platform/glfw/client_wrapper:publish_wrapper_glfw", | |
| ] | |
| } | |
| if (build_linux_shell) { | |
| deps += [ | |
| ":flutter_linux_gtk", | |
| ":publish_headers_linux", | |
| ] | |
| } | |
| } | |
| # Temporary workaround for the issue describe in | |
| # https://github.com/flutter/flutter/issues/14509 and | |
| # https://github.com/flutter/flutter/issues/14438 | |
| # Remove once the build infrastructure moves to Ubuntu 18.04 or newer, where | |
| # the underlying issue is fixed. | |
| config("disable_fatal_link_warnings") { | |
| visibility = [ ":*" ] | |
| ldflags = [ "-Wl,--no-fatal-warnings" ] | |
| } | |
| if (build_glfw_shell) { | |
| shared_library("flutter_linux_glfw") { | |
| deps = [ | |
| "//flutter/shell/platform/glfw:flutter_glfw", | |
| ] | |
| configs += [ ":disable_fatal_link_warnings" ] | |
| public_configs = [ "//flutter:config" ] | |
| } | |
| } | |
| if (build_linux_shell) { | |
| _public_headers = [ | |
| "public/flutter_linux/fl_dart_project.h", | |
| "public/flutter_linux/fl_view.h", | |
| "public/flutter_linux/flutter_linux.h", | |
| ] | |
| config("relative_flutter_linux_headers") { | |
| include_dirs = [ "public" ] | |
| } | |
| source_set("flutter_linux") { | |
| sources = [ | |
| "fl_dart_project.cc", | |
| "fl_view.cc", | |
| ] | |
| configs += [ | |
| "//flutter/shell/platform/linux/config:gtk", | |
| "//flutter/shell/platform/linux/config:egl", | |
| ] | |
| # Set flag to stop headers being directly included (library users should not do this) | |
| defines = [ "FLUTTER_LINUX_COMPILATION" ] | |
| deps = [ | |
| "//flutter/shell/platform/embedder:embedder_with_symbol_prefix", | |
| ] | |
| } | |
| shared_library("flutter_linux_gtk") { | |
| deps = [ | |
| ":flutter_linux", | |
| ] | |
| public_configs = [ "//flutter:config" ] | |
| } | |
| copy("publish_headers_linux") { | |
| sources = _public_headers | |
| outputs = [ | |
| "$root_out_dir/flutter_linux/{{source_file_part}}", | |
| ] | |
| } | |
| } |