# Copyright 2016 The Chromium 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_ios) import("//build/config/ios/rules.gni") import("//build/config/ios/ios_sdk.gni") _flutter_framework_dir = "$root_out_dir/Flutter.framework" shared_library("flutter_framework_dylib") { visibility = [ ":*" ] output_name = "Flutter" sources = [ "framework/Headers/Flutter.h", "framework/Headers/FlutterAppDelegate.h", "framework/Headers/FlutterAsyncMessageListener.h", "framework/Headers/FlutterDartProject.h", "framework/Headers/FlutterJSONMessageListener.h", "framework/Headers/FlutterMacros.h", "framework/Headers/FlutterMessageListener.h", "framework/Headers/FlutterViewController.h", "framework/Source/accessibility_bridge.h", "framework/Source/accessibility_bridge.mm", "framework/Source/flutter_touch_mapper.h", "framework/Source/flutter_touch_mapper.mm", "framework/Source/FlutterAppDelegate.mm", "framework/Source/FlutterDartProject_Internal.h", "framework/Source/FlutterDartProject.mm", "framework/Source/FlutterDartSource.h", "framework/Source/FlutterDartSource.mm", "framework/Source/FlutterJSONMessageListener.mm", "framework/Source/FlutterPlatformPlugin.h", "framework/Source/FlutterPlatformPlugin.mm", "framework/Source/FlutterTextInputDelegate.h", "framework/Source/FlutterTextInputPlugin.h", "framework/Source/FlutterTextInputPlugin.mm", "framework/Source/FlutterView.h", "framework/Source/FlutterView.mm", "framework/Source/FlutterViewController.mm", "framework/Source/platform_message_router.h", "framework/Source/platform_message_router.mm", "framework/Source/vsync_waiter_ios.h", "framework/Source/vsync_waiter_ios.mm", "platform_view_ios.h", "platform_view_ios.mm", ] deps = [ "//base:base", "//dart/runtime:libdart", "//flutter/lib/ui", "//flutter/shell/common", "//flutter/shell/gpu", "//flutter/shell/platform/darwin/common", "//flutter/skia", "//flutter/sky/engine/platform", "//flutter/sky/engine/wtf", "//lib/ftl", "//mojo/edk/base_edk", "//mojo/edk/system", ] defines = [ "FLUTTER_FRAMEWORK" ] libs = [ "UIKit.framework", "OpenGLES.framework", "AVFoundation.framework", "AudioToolbox.framework", "QuartzCore.framework", ] } copy("framework_dylib") { visibility = [ ":*" ] sources = [ "$root_out_dir/libFlutter.dylib" ] outputs = [ "$_flutter_framework_dir/Flutter" ] deps = [ ":flutter_framework_dylib", ] } action("framework_install_name") { visibility = [ ":*" ] stamp_file = "$root_out_dir/flutter_install_name_stamp" script = "//flutter/sky/tools/change_install_name.py" inputs = [ "$_flutter_framework_dir/Flutter" ] outputs = [ stamp_file ] args = [ "--dylib", rebase_path("$_flutter_framework_dir/Flutter"), "--install_name", "@rpath/Flutter.framework/Flutter", "--stamp", rebase_path(stamp_file), ] deps = [ ":framework_dylib" ] } copy("framework_info_plist") { visibility = [ ":*" ] sources = [ "framework/Info.plist" ] outputs = [ "$_flutter_framework_dir/Info.plist" ] } copy("framework_module_map") { visibility = [ ":*" ] sources = [ "framework/module.modulemap" ] outputs = [ "$_flutter_framework_dir/Modules/module.modulemap" ] } copy("framework_headers") { visibility = [ ":*" ] sources = [ "framework/Headers/Flutter.h", "framework/Headers/FlutterAppDelegate.h", "framework/Headers/FlutterAsyncMessageListener.h", "framework/Headers/FlutterDartProject.h", "framework/Headers/FlutterJSONMessageListener.h", "framework/Headers/FlutterMacros.h", "framework/Headers/FlutterMessageListener.h", "framework/Headers/FlutterViewController.h", ] outputs = [ "$_flutter_framework_dir/Headers/{{source_file_part}}" ] } copy("framework_icu") { visibility = [ ":*" ] set_sources_assignment_filter([]) sources = [ "//third_party/icu/android/icudtl.dat", ] set_sources_assignment_filter(sources_assignment_filter) outputs = [ "$_flutter_framework_dir/{{source_file_part}}" ] } group("flutter_framework") { public_deps = [ ":framework_dylib", ":framework_headers", ":framework_icu", ":framework_info_plist", ":framework_install_name", ":framework_module_map", ] }