blob: 806ae3b7656f5205b06398d07b863e9a0687dc6b [file] [log] [blame]
# Copyright 2015 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.
import("//sky/engine/bindings/bindings.gni")
template("sky_precompilation_sdk") {
assert(is_ios, "The precompilation SDK is only supported for iOS targets")
assert(defined(invoker.sdk_name), "The SDK name must be defined")
sdk_name = invoker.sdk_name
sdk_dir = "$root_out_dir/$sdk_name"
snapshotter_copy_gen_target_name = target_name + "_copy_snapshotter"
copy(snapshotter_copy_gen_target_name) {
snapshotter_target = "//dart/runtime/bin:gen_snapshot($dart_host_toolchain)"
snapshotter_directory = get_label_info(snapshotter_target, "root_out_dir")
snapshotter_name = get_label_info(snapshotter_target, "name")
sources = [ "$snapshotter_directory/$snapshotter_name" ]
outputs = [ "$sdk_dir/Tools/Snapshotter" ]
deps = [ snapshotter_target ]
}
copy("embedder_entry_points") {
sources = [ "//sky/engine/bindings/dart_vm_entry_points.txt" ]
outputs = [ "$sdk_dir/Tools/EmbedderEntryPoints" ]
}
copy("precompilation_xcode_scripts") {
sources = [
"//sky/build/SnapshotterInvoke",
"//sky/build/PackagerInvoke",
]
outputs = [ "$sdk_dir/Tools/{{source_file_part}}" ]
}
copy("copy_sdk_xcode_harness") {
sources = [
"//sky/build/sdk_xcode_harness/FlutterApplication",
"//sky/build/sdk_xcode_harness/FlutterApplication.xcodeproj",
"//sky/build/sdk_xcode_harness/Runner",
]
outputs = [ "$sdk_dir/{{source_file_part}}" ]
}
executable_gen_target_name = target_name + "_runner"
executable(executable_gen_target_name) {
libs = [
"UIKit.framework",
"AVFoundation.framework",
"QuartzCore.framework",
"OpenGLES.framework",
]
deps = [ "//sky/shell:ios_scaffolding" ]
}
copy_runner_gen_target_name = target_name + "_copy_runner"
copy(copy_runner_gen_target_name) {
sources = [ "$root_out_dir/$executable_gen_target_name" ]
outputs = [ "$sdk_dir/RunnerResources/FlutterRunner" ]
deps = [ ":$executable_gen_target_name" ]
}
copy_data_gen_target_name = target_name + "_copy_data"
copy(copy_data_gen_target_name) {
set_sources_assignment_filter([])
sources = [ "//third_party/icu/android/icudtl.dat" ]
outputs = [ "$sdk_dir/RunnerResources/{{source_file_part}}" ]
set_sources_assignment_filter(sources_assignment_filter)
}
group(target_name) {
deps = [
":$snapshotter_copy_gen_target_name",
":embedder_entry_points",
":$copy_runner_gen_target_name",
":$copy_data_gen_target_name",
":precompilation_xcode_scripts",
":copy_sdk_xcode_harness",
]
}
}