| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "flutter/common/settings.h" |
| #include "flutter/fml/command_line.h" |
| #include "flutter/fml/string_view.h" |
| |
| #ifndef SHELL_COMMON_SWITCHES_H_ |
| #define SHELL_COMMON_SWITCHES_H_ |
| |
| namespace shell { |
| |
| // clang-format off |
| #ifndef DEF_SWITCHES_START |
| #define DEF_SWITCHES_START enum class Switch { |
| #endif |
| #ifndef DEF_SWITCH |
| #define DEF_SWITCH(swtch, flag, help) swtch, |
| #endif |
| #ifndef DEF_SWITCHES_END |
| #define DEF_SWITCHES_END Sentinel, } ; |
| #endif |
| // clang-format on |
| |
| DEF_SWITCHES_START |
| DEF_SWITCH(AotSharedLibraryPath, "aot-shared-library-path", "Path to the *.so.") |
| DEF_SWITCH(AotSnapshotPath, |
| "aot-snapshot-path", |
| "Path to the directory containing the four files specified by " |
| "AotVmSnapshotData, AotVmSnapshotInstructions, " |
| "AotVmSnapshotInstructions and AotIsolateSnapshotInstructions.") |
| DEF_SWITCH(AotVmSnapshotData, |
| "vm-snapshot-data", |
| "The VM snapshot data that will be memory mapped as read-only. " |
| "AotSnapshotPath must be present.") |
| DEF_SWITCH(AotVmSnapshotInstructions, |
| "vm-snapshot-instr", |
| "The VM instructions snapshot that will be memory mapped as read " |
| "and executable. AotSnapshotPath must be present.") |
| DEF_SWITCH(AotIsolateSnapshotData, |
| "isolate-snapshot-data", |
| "The isolate snapshot data that will be memory mapped as read-only. " |
| "AotSnapshotPath must be present.") |
| DEF_SWITCH(AotIsolateSnapshotInstructions, |
| "isolate-snapshot-instr", |
| "The isolate instructions snapshot that will be memory mapped as " |
| "read and executable. AotSnapshotPath must be present.") |
| DEF_SWITCH(CacheDirPath, "cache-dir-path", "Path to the cache directory.") |
| DEF_SWITCH(ICUDataFilePath, "icu-data-file-path", "Path to the ICU data file.") |
| DEF_SWITCH(ICUSymbolPrefix, |
| "icu-symbol-prefix", |
| "Prefix for the symbols representing ICU data linked into the " |
| "Flutter library.") |
| DEF_SWITCH(ICUNativeLibPath, |
| "icu-native-lib-path", |
| "Path to the library file that exports the ICU data.") |
| DEF_SWITCH(DartFlags, |
| "dart-flags", |
| "Flags passed directly to the Dart VM without being interpreted " |
| "by the Flutter shell.") |
| DEF_SWITCH(DeviceObservatoryPort, |
| "observatory-port", |
| "A custom Dart Observatory port. The default is to pick a randomly " |
| "available open port.") |
| DEF_SWITCH(DisableObservatory, |
| "disable-observatory", |
| "Disable the Dart Observatory. The observatory is never available " |
| "in release mode.") |
| DEF_SWITCH(IPv6, |
| "ipv6", |
| "Bind to the IPv6 localhost address for the Dart Observatory.") |
| DEF_SWITCH(EnableDartProfiling, |
| "enable-dart-profiling", |
| "Enable Dart profiling. Profiling information can be viewed from " |
| "the observatory.") |
| DEF_SWITCH(EndlessTraceBuffer, |
| "endless-trace-buffer", |
| "Enable an endless trace buffer. The default is a ring buffer. " |
| "This is useful when very old events need to viewed. For example, " |
| "during application launch. Memory usage will continue to grow " |
| "indefinitely however.") |
| DEF_SWITCH(EnableSoftwareRendering, |
| "enable-software-rendering", |
| "Enable rendering using the Skia software backend. This is useful" |
| "when testing Flutter on emulators. By default, Flutter will" |
| "attempt to either use OpenGL or Vulkan.") |
| DEF_SWITCH(SkiaDeterministicRendering, |
| "skia-deterministic-rendering", |
| "Skips the call to SkGraphics::Init(), thus avoiding swapping out" |
| "some Skia function pointers based on available CPU features. This" |
| "is used to obtain 100% deterministic behavior in Skia rendering.") |
| DEF_SWITCH(EnableBlink, |
| "enable-blink", |
| "Enable Blink as the text shaping library instead of libtxt.") |
| DEF_SWITCH(FLX, "flx", "Specify the FLX path.") |
| DEF_SWITCH(FlutterAssetsDir, |
| "flutter-assets-dir", |
| "Path to the Flutter assets directory.") |
| DEF_SWITCH(Help, "help", "Display this help text.") |
| DEF_SWITCH(LogTag, "log-tag", "Tag associated with log messages.") |
| DEF_SWITCH(StartPaused, |
| "start-paused", |
| "Start the application paused in the Dart debugger.") |
| DEF_SWITCH(TraceStartup, |
| "trace-startup", |
| "Trace early application lifecycle. Automatically switches to an " |
| "endless trace buffer.") |
| DEF_SWITCH(TraceSkia, |
| "trace-skia", |
| "Trace Skia calls. This is useful when debugging the GPU threed." |
| "By default, Skia tracing is not enabled to reduce the number of " |
| "traced events") |
| DEF_SWITCH(DumpSkpOnShaderCompilation, |
| "dump-skp-on-shader-compilation", |
| "Automatically dump the skp that triggers new shader compilations. " |
| "This is useful for writing custom ShaderWarmUp to reduce jank. " |
| "By default, this is not enabled to reduce the overhead. ") |
| DEF_SWITCH( |
| TraceSystrace, |
| "trace-systrace", |
| "Trace to the system tracer (instead of the timeline) on platforms where " |
| "such a tracer is available. Currently only supported on Android and " |
| "Fuchsia.") |
| DEF_SWITCH(UseTestFonts, |
| "use-test-fonts", |
| "Running tests that layout and measure text will not yield " |
| "consistent results across various platforms. Enabling this option " |
| "will make font resolution default to the Ahem test font on all " |
| "platforms (See https://www.w3.org/Style/CSS/Test/Fonts/Ahem/). " |
| "This option is only available on the desktop test shells.") |
| DEF_SWITCH(VerboseLogging, |
| "verbose-logging", |
| "By default, only errors are logged. This flag enabled logging at " |
| "all severity levels. This is NOT a per shell flag and affect log " |
| "levels for all shells in the process.") |
| DEF_SWITCH(RunForever, |
| "run-forever", |
| "In non-interactive mode, keep the shell running after the Dart " |
| "script has completed.") |
| DEF_SWITCH(DisableDartAsserts, |
| "disable-dart-asserts", |
| "Dart code runs with assertions enabled when the runtime mode is " |
| "debug. In profile and release product modes, assertions are " |
| "disabled. This flag may be specified if the user wishes to run " |
| "with assertions disabled in the debug product mode (i.e. with JIT " |
| "or DBC).") |
| DEF_SWITCHES_END |
| |
| void PrintUsage(const std::string& executable_name); |
| |
| const fml::StringView FlagForSwitch(Switch swtch); |
| |
| blink::Settings SettingsFromCommandLine(const fml::CommandLine& command_line); |
| |
| } // namespace shell |
| |
| #endif // SHELL_COMMON_SWITCHES_H_ |