| menuconfig BR2_PACKAGE_IVI_HOMESCREEN |
| bool "ivi-homescreen" |
| depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS |
| depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS |
| depends on BR2_HOST_GCC_AT_LEAST_5 # flutter-engine |
| depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17 filesystem |
| depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # flutter-engine |
| depends on BR2_TOOLCHAIN_USES_GLIBC # flutter-engine |
| depends on BR2_INSTALL_LIBSTDCPP # flutter-engine |
| depends on !BR2_STATIC_LIBS # flutter-engine, wayland |
| depends on BR2_USE_WCHAR # flutter-engine |
| depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES # flutter-engine |
| select BR2_PACKAGE_HOST_FLUTTER_SDK_BIN |
| select BR2_PACKAGE_FLUTTER_ENGINE |
| select BR2_PACKAGE_LIBXKBCOMMON |
| select BR2_PACKAGE_WAYLAND |
| select BR2_PACKAGE_WAYLAND_PROTOCOLS |
| select BR2_PACKAGE_WAYLAND_UTILS |
| help |
| Toyota's Flutter Embedder that communicates with Wayland |
| compositors. |
| Features: |
| - Strongly Typed (C++) |
| - Lightweight |
| - Platform Channels enabled/disabled via CMake |
| - OpenGL Texture Framework |
| - Compositor Sub-surface/Region support |
| - Vulkan / EGL backend support |
| |
| https://github.com/toyota-connected/ivi-homescreen |
| |
| if BR2_PACKAGE_IVI_HOMESCREEN |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_IVI_SHELL_CLIENT |
| bool "ivi-shell client" |
| |
| comment "Logging" |
| config BR2_PACKAGE_IVI_HOMESCREEN_DART_VM_LOGGING |
| bool "Enable Dart VM Logging" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_DLT_LOGGING |
| bool "DLT logging" |
| |
| comment "EGL options" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_EGL_TRANSPARENCY |
| bool "Transparency" |
| depends on BR2_PACKAGE_HAS_LIBEGL |
| |
| comment "Transparency support needs an EGL backend" |
| depends on !BR2_PACKAGE_HAS_LIBEGL |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_EGL_ENABLE_3D |
| bool "3D support" |
| depends on BR2_PACKAGE_HAS_LIBEGL |
| help |
| Build with EGL Stencil, Depth, and Stencil |
| |
| comment "3D support needs an EGL backend" |
| depends on !BR2_PACKAGE_HAS_LIBEGL |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_EGL_MULTISAMPLE |
| bool "Multisample support" |
| depends on BR2_PACKAGE_HAS_LIBEGL |
| help |
| Build with EGL Sample set to 4 |
| |
| comment "Multisample support needs an EGL backend" |
| depends on !BR2_PACKAGE_HAS_LIBEGL |
| |
| comment "dependency-less plugins" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_ACCESSIBILITY_PLUGIN |
| bool "Accessibility" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_COMP_REGION_PLUGIN |
| bool "Compositor Region" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_COMP_SURF_PLUGIN |
| bool "Compositor Surface" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_DESKTOP_WINDOW_PLUGIN |
| bool "Desktop Window" |
| help |
| Flutter plugin to change window size. |
| |
| https://pub.dev/packages/desktop_window |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_GO_ROUTER_PLUGIN |
| bool "Go Router" |
| help |
| A declarative routing package for Flutter that uses the |
| Router API to provide a convenient, url-based API for |
| navigating between different screens. You can define URL |
| patterns, navigate using a URL, handle deep links, and a |
| number of other navigation-related scenarios. |
| |
| https://pub.dev/packages/go_router |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_INTEGRATION_TEST_PLUGIN |
| bool "Flutter Integration Test support" |
| help |
| https://docs.flutter.dev/cookbook/testing/integration/introduction |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_ISOLATE_PLUGIN |
| bool "Isolate" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_KEYBOARD_MANAGER_PLUGIN |
| bool "Keyboard Manager" |
| select BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN # runtime |
| help |
| This is a wrapper for the raw keyboard listener made to |
| simplify intercept external keyboard button press. |
| |
| https://pub.dev/packages/keyboard_manager |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_KEY_EVENT_PLUGIN |
| bool "Key Event" |
| select BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN # runtime |
| help |
| KeyEvent plugin to support RawKeyEvent. |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_LAYER_PLAYGROUND_PLUGIN |
| bool "Layer Playground" |
| select BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN |
| help |
| This plugin enables the platform views plugin and also |
| provides a simple-box-view-type option. |
| |
| https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/platform_views |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_LOGGING_PLUGIN |
| bool "Logging" |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_MOUSE_CURSOR_PLUGIN |
| bool "Mouse Cursor" |
| help |
| Add mouse cursor support. |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_PACKAGE_INFO_PLUGIN |
| bool "PackageInfo" |
| help |
| Prints the ivi-homescreen package information. |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_PLUGIN |
| bool "Platform" |
| help |
| Get information about the platform the Flutter application |
| is running on. |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_PLATFORM_VIEWS_PLUGIN |
| bool "Platform Views" |
| help |
| This plugin supports the AndroidView interface. Meaning you |
| can take any Platform View Dart code, change the definition |
| to use AndroidView, and you will have a working interface. |
| |
| Benefits of using this interface: |
| - pre-defined interface that is supported in Flutter SDK |
| - params are easily augmented in Dart to add for given use |
| case |
| - pass touch to another process/library without additional |
| work |
| |
| For a backing implementation there are a number of approaches: |
| - Have a PlatformView implementation render to a Texture |
| - Compositor Region support |
| (poke a hole for another process) |
| - Compositor sub-surface and manage Z-order |
| |
| The above is already supported today using either an OpenGL |
| texture, or a Compositor Sub-Surface. Using Platform Views |
| just re-uses an existing interface. |
| |
| https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/platform_views |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_RESTORATION_PLUGIN |
| bool "Restoration" |
| help |
| Handles the Flutter restoration callback |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_TEXT_INPUT_PLUGIN |
| bool "Text Input" |
| help |
| Allow for text input |
| |
| comment "plugins with external dependencies" |
| config BR2_PACKAGE_IVI_HOMESCREEN_AUDIO_PLAYERS |
| bool "Audio Players" |
| select BR2_PACKAGE_GSTREAMER1 |
| select BR2_PACKAGE_GST1_PLUGINS_BASE |
| select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA |
| select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOCONVERT |
| select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORESAMPLE |
| select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VOLUME |
| help |
| A Flutter plugin to play multiple simultaneously audio files. |
| Based on audioplayers-v5.2.1 |
| |
| https://pub.dev/packages/audioplayers |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_FLUTTER_SECURE_STORAGE_PLUGIN |
| bool "Flutter Secure Storage" |
| select BR2_PACKAGE_LIBSECRET |
| help |
| Store data in secure storage |
| |
| https://pub.dev/packages/flutter_secure_storage |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_GOOGLE_SIGN_IN_PLUGIN |
| bool "Google Sign In manager" |
| select BR2_PACKAGE_LIBCURL |
| select BR2_PACKAGE_LIBCURL_FORCE_TLS |
| select BR2_PACKAGE_OPENSSL |
| help |
| This static plugin is to support this pub.dev package: |
| https://pub.dev/packages/google_sign_in |
| |
| https://github.com/toyota-connected/ivi-homescreen/tree/main/shell/plugins/google_sign_in |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN |
| bool "GStreamer EGL" |
| depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS |
| depends on BR2_PACKAGE_HAS_LIBEGL |
| depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API # GST1_PLUGINS_BASE_LIB_OPENGL_EGL |
| select BR2_PACKAGE_FFMPEG |
| select BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL |
| help |
| A GStreamer-powered alternative to Flutter's video_player that |
| support Linux, iOS and Android. |
| |
| https://pub.dev/packages/flutter_gstreamer_player |
| |
| comment "GStreamer plugin needs gst1-plugins-base with an EGL backend" |
| depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS |
| depends on !BR2_PACKAGE_HAS_LIBEGL \ |
| || !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API |
| |
| config BR2_PACKAGE_IVI_HOMESCREEN_OPENGL_TEXTURE_PLUGIN |
| bool "OpenGL Texture" |
| depends on BR2_PACKAGE_HAS_LIBEGL |
| help |
| A Flutter OpenGL ES plugin using a Texture() widget. |
| Many shaders from ShaderToy.com can be copy/pasted |
| |
| https://pub.dev/packages/flutter_opengl |
| |
| comment "OpenGL texture plugin needs an EGL backend" |
| depends on !BR2_PACKAGE_HAS_LIBEGL |
| |
| endif # BR2_PACKAGE_IVI_HOMESCREEN |
| |
| comment "ivi-homescreen needs a glibc toolchain w/ wchar, C++, gcc >= 8, dynamic library, host gcc >= 5" |
| depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS |
| depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS |
| depends on !BR2_TOOLCHAIN_USES_GLIBC \ |
| || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_8 \ |
| || BR2_STATIC_LIBS || !BR2_USE_WCHAR \ |
| || !BR2_HOST_GCC_AT_LEAST_5 |
| |
| comment "ivi-homescreen needs a toolchain not affected by GCC bug 64735" |
| depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS |
| depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS |
| depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 |
| |
| comment "ivi-homescreen needs an OpenGL or OpenGLES backend" |
| depends on BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS |
| depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS |
| depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES |