Setting `FLUTTER_GOMA_CREATE_XCODE_SYMLINKS=1` as an environment variable should
achieve the same result as manually specifying the `--xcode-symlinks` flag
(which I often forget). This is in keeping with the pattern of setting the
`GOMA_DIR` environment variable. The variable has a the `FLUTTER_` prefix
because environment variable with the `GOMA_` prefix are reserved for use by
Goma and variable unknown to Goma will cause a fatal error.
This change adds a FlutterMetalRendererConfig that lets embedders
specify metal as rendering api.
Also adds a test that validates rendering a gradient using metal.
Changes to make this work:
- Had to change the use of an UBool constant `FALSE` to 0 because
the file referring to it does not include the respective header.
- Had to change the license checker to ignore files in the directory
icu/source/samples. There were random changes to the licensing
headers which tripped up license checks. And since we don't include
samples in the binaries we build, the most efficient way to fix it is
to exclude sample code from license checks.
Issue: https://github.com/flutter/flutter/issues/70370
Adds a package config file to the const finder test fixtures to unblock the null safety flag removal change.
Otherwise these fixtures get opted in to null safety and some constants are missing (presumably because they are invalid).
Related dart-lang/sdk#43872
Snapshots compiled with sound null-safety enabled require changes to the way in
which isolates are launched. Specifically, the `Dart_IsolateFlags::null_safety`
field needs to be known upfront. The value of this field can only be determined
once the kernel snapshot is available. This poses a problem in the engine
because the engine used to launch the isolate at shell initialization and only
need the kernel mappings later at isolate launch (when transitioning the root
isolate to the `DartIsolate::Phase::Running` phase). This patch delays launch of
the isolate on the UI task runner till a kernel mapping is available. The side
effects of this delay (callers no longer having access to the non-running
isolate handle) have been addressed in this patch. The DartIsolate API has also
been amended to hide the method that could return a non-running isolate to the
caller. Instead, it has been replaced with a method that requires a valid
isolate configuration that returns a running root isolate. The isolate will be
launched by asking the isolate configuration for its null-safety
characteristics.
A side effect of enabling null-safety is that Dart APIs that work with legacy
types will now terminate the process if used with an isolate that has sound
null-safety enabled. These APIs may no longer be used in the engine. This
primarily affects the Dart Convertors in Tonic that convert certain C++ objects
into the Dart counterparts. All known Dart Converters have been updated to
convert C++ objects to non-nullable Dart types inferred using type traits of the
corresponding C++ object. The few spots in the engine that used the old Dart
APIs directly have been manually updated. To ensure that no usage of the legacy
APIs remain in the engine (as these would cause runtime process terminations),
the legacy APIs were prefixed with the `DART_LEGACY_API` macro and the macro
defined to `[[deprecated]]` in all engine translation units. While the engine
now primarily works with non-nullable Dart types, callers can still use
`Dart_TypeToNonNullableType` to acquire nullable types for use directly or with
Tonic. One use case that is not addressed with the Tonic Dart Convertors is the
creation of non-nullable lists of nullable types. This hasn’t come up so far in
the engine.
A minor related change is reworking tonic to define a single library target.
This allows the various tonic subsystems to depend on one another. Primarily,
this is used to make the Dart convertors use the logging utilities. This now
allows errors to be more descriptive as the presence of error handles is caught
(and logged) earlier.
Fixes https://github.com/flutter/flutter/issues/59879
* setting an env variable using commit no
* change variable name
* try to use ref no as string
* use echo for output
* remove all the other stdout
* echo json instead of only the commit no
* use the file method
* list the directory contents
* remove pwd. print flutter version verbose
* cloning flutter repo for luci recipes
* rename the file, script does not clone the repo, but reset it to the right commit
* adding the version logging
* [gn] Adds a flag to turn off git hash versioning
Without this flag, it is excessively tedious to build Dart SDK
for local testing on Fuchsia, since Fuchsia runner will reject
a Dart SDK without a matching version.
* [gn] Add flag --no-dart-version-git-info
This flag suppresses the SDK stamping by git hash, which allows
deploying self-built Dart SDK. Without this flag, it is impossible
to build and deploy a development Dart SDK on Fuchsia.