mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[macOS] Deduplicate gen_snapshot creation targets (flutter/engine#36455)
Cleans up the logic for building gen_snapshot for macOS hosts. Also adds
a bit more documentation to the snapshot-related build targets.
Previously:
* gen_snapshot targeting macOS (on both x64, and arm64) were generated
via the `create_macos_gen_snapshots` target.
* gen_snapshot arm/arm64 builds (on a macOS host) were generated via the
`create_arm_gen_snapshot` target. The reason why this covers only
arm/arm64 is simply that those are the only platforms we generate
iOS/Android AOT builds for. x64 iOS implies a simulator build, but we
only support debug builds for the iOS simulator, which aren't AOT
builds, and thus don't require gen_snapshot.
These two conditions overlap in the case of arm64 (but not x64) target
builds. This separates the two cases cleanly. A later patch will merge
the two cases to use a single tool.
Note that NEITHER of these two scenarios mentions builds for macOS hosts
targeting Fuchsia. That's because this target is never invoked during
Fuchsia target builds. See:
75d2baf5fe/BUILD.gn (L93-L95)
Issue: https://github.com/flutter/flutter/issues/103386
Issue: https://github.com/flutter/flutter/issues/101138
This commit is contained in:
parent
4f0aa64e91
commit
ae41d5b3f7
@ -9,28 +9,48 @@ import("//flutter/lib/ui/dart_ui.gni")
|
||||
import("//flutter/sky/tools/macos_snapshots.gni")
|
||||
import("//third_party/dart/utils/compile_platform.gni")
|
||||
|
||||
# Generates the Dart/Flutter core platform files and tools.
|
||||
#
|
||||
# This target generates the platform-specific snapshots and snapshot-related
|
||||
# tooling for a given target CPU.
|
||||
#
|
||||
# Outputs:
|
||||
# * Core platform compiled to kernel bytecode
|
||||
# * Core platform compiled to target_cpu-specific binary snapshot
|
||||
# * target_cpu-specific gen_snapshot
|
||||
# * target_cpu-specific analyze_snapshot
|
||||
group("generate_snapshot_bins") {
|
||||
deps = [
|
||||
":generate_snapshot_bin",
|
||||
":kernel_platform_files",
|
||||
]
|
||||
if (host_os == "mac" && (target_cpu == "arm" || target_cpu == "arm64")) {
|
||||
deps += [ ":create_arm_gen_snapshot" ]
|
||||
}
|
||||
|
||||
# Build gen_snapshot for the currently specified target_cpu.
|
||||
#
|
||||
# For macOS target builds: needed for both target CPUs (arm64, x64).
|
||||
# For iOS, Android target builds: all AOT target CPUs are arm/arm64.
|
||||
if (host_os == "mac" && target_os == "mac") {
|
||||
deps += [ ":create_macos_gen_snapshots" ]
|
||||
} else if (host_os == "mac" &&
|
||||
(target_cpu == "arm" || target_cpu == "arm64")) {
|
||||
deps += [ ":create_arm_gen_snapshot" ]
|
||||
}
|
||||
|
||||
# Build analyze_snapshot for for 64-bit target CPUs.
|
||||
if (target_cpu == "x64" || target_cpu == "arm64") {
|
||||
deps +=
|
||||
[ "//third_party/dart/runtime/bin:analyze_snapshot($host_toolchain)" ]
|
||||
}
|
||||
}
|
||||
|
||||
# Uses gen_snapshot to compile a Dart core platform snapshot.
|
||||
# Compiles a binary snapshot of the core Dart/Flutter platform.
|
||||
#
|
||||
# Inputs:
|
||||
# * platform_strong.dill
|
||||
#
|
||||
# Tools:
|
||||
# * gen_snapshot
|
||||
#
|
||||
# Outputs:
|
||||
# * vm_snapshot_data.bin
|
||||
# * vm_snapshot_instructions.bin
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user