e0ef9213e4
The gstreamer plugin select the EGL backend of gst1-plugins-base, but forgot to propagate all of its dependencies, notably the _HAS_API condition, causing unmet dependencies warnings (unfortunately, not errors), such as; $ KCONFIG_SEED=0x597D22A8 make randconfig WARNING: unmet direct dependencies detected for BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_EGL Depends on [n]: BR2_PACKAGE_GSTREAMER1 [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL [=y] && BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API [=n] && BR2_PACKAGE_HAS_LIBEGL [=y] Selected by [y]: - BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN [=y] && BR2_PACKAGE_IVI_HOMESCREEN [=y] && BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS [=y] && BR2_PACKAGE_HAS_LIBEGL [=y] We can't select _HAS_API, because it is a symbol that represents a capability provided by other features of gst1-plugins-base; it's semantically like a virtual package: we can't select it, we can only depend on it. Add this dependency to fix this situation. This however causes circular (recursive) dependencies errors: package/gstreamer1/gst1-plugins-base/Config.in:135:error: recursive dependency detected! package/gstreamer1/gst1-plugins-base/Config.in:135: symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL is selected by BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN package/ivi-homescreen/Config.in:221: symbol BR2_PACKAGE_IVI_HOMESCREEN_GSTREAMER_EGL_PLUGIN depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API package/gstreamer1/gst1-plugins-base/Config.in:149: symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API is selected by BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL package/gstreamer1/gst1-plugins-base/Config.in:152: symbol BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_OPENGL depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL Indeed, _HAS_API is only even set when gstreamer1, gst1-plugins-base, and the gst1-plugins-base's lib-opengl support, are all already enabled. As such, the dependency on _HAS_API already implies those, and there is no need to select them. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Adam Duskett <adam.duskett@amarulasolutions.com> Reviewed-by: Adam Duskett <Adam.Duskett@amarulasolutions.com> Tested-by: Adam Duskett <Adam.Duskett@amarulasolutions.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
270 lines
8.7 KiB
Plaintext
270 lines
8.7 KiB
Plaintext
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_5 # flutter-engine
|
|
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 >= 5, dynamic library, host gcc >= 5, NPTL"
|
|
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_TOOLCHAIN_HAS_THREADS_NPTL \
|
|
|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_5 \
|
|
|| 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
|