This directory contains files specific to the Flutter macOS embedder. The embedder is built as a macOS framework that is linked into the target application. The framework is composed both of macOS-specific code and code shared with the iOS embedder. These can be found in:
flutter/shell/platform/darwin/common/framework flutter/shell/platform/darwin/macos/framework
Additionally, the framework relies on utility code shared across all embedders, which is found in:
flutter/shell/platform/common
To learn more, see the Engine architecture wiki.
Building all artifacts required for macOS occurs in two steps:
FlutterViewController
used by Flutter applications.Once you've prepared your environment for engine development, you can build the macOS embedder from the src/flutter
directory using the following commands:
# Perform the host build. ./tools/gn --unopt --no-goma autoninja -C ../out/host_debug_unopt # Perform the macOS target build. ./tools/gn --unopt --mac --no-goma autoninja -C ../out/mac_debug_unopt
Builds are architecture-specific, and can be controlled by specifying --mac-cpu=arm64
or --mac-cpu=x64
(default) when invoking gn
.
Googlers can remove --no-goma
to make use of the Goma distributed compile service.
The macOS-specific embedder tests are built as the flutter_desktop_darwin_unittests
binary. Like all gtest-based test binaries, a subset of tests can be run by applying a filter such as --gtest_filter='FlutterViewControllerTest.*Key*'
.
More general details on testing can be found on the Wiki.