kumquat-buildroot/package/ivi-homescreen/Config.in

270 lines
8.7 KiB
Plaintext
Raw Normal View History

package/ivi-homescreen: new package Much like flutter-pi, this package is a Flutter embedder used to run Flutter applications. However, unlike Flutter-pi, this package requires a Wayland compositor to run, which flutter-pi does not support. Furthermore, flutter-pi lacks several plugins and features that ivi-homescreen supports, such as: - Dart VM console redirection - DLT logging - Accessibility - Compositor region - Compositor surface - Desktop Window - Go Router - Isolate - Keyboard Manager - Layer Playground - Mouse Cursor - PackageInfo - Platform - Platform Views - Restoration The following plugins and options are hardcoded to off: - Crash handler: Requires a newer version of sentry-native. - File selector: Requires the zenity package. - Firebase-core: Requires the firebase-cpp-sdk package. - URL Launcher: Requires a runtime-dependency on xdg-open. - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build. - BUILD_TEXTURE_TEST_EGL: Fails to build. - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL). The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps. If this option is disabled, ivi-homescreen segfaults when starting an application. Finally, there is a need for a patch that fixes the audio-players plugin: If the audio-players plugin is the only plugin selected, several compilation errors occure because of undeclared definitions, as the standard_method_codec.h header file is missing. Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133 This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS with Docker 24.0.5: - The following distributions: - Fedora 39: Host system - Ubuntu 22.04: Docker - Debian 11: Docker - The following targets: - BR2_aarch64 - BR2_arm - BR2_x86_64 Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> [yann.morin.1998@free.fr: - propagate BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS to comments - drop NPTL, implied by glibc - reorder dependencies in a more logical way - reorder comments - drop undefined BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT - grammar ("for to change") ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-01-07 00:01:32 +01:00
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
package/ivi-homescreen: fix dependencies for gstreamer plugin 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>
2024-01-28 14:20:51 +01:00
depends on BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API # GST1_PLUGINS_BASE_LIB_OPENGL_EGL
package/ivi-homescreen: new package Much like flutter-pi, this package is a Flutter embedder used to run Flutter applications. However, unlike Flutter-pi, this package requires a Wayland compositor to run, which flutter-pi does not support. Furthermore, flutter-pi lacks several plugins and features that ivi-homescreen supports, such as: - Dart VM console redirection - DLT logging - Accessibility - Compositor region - Compositor surface - Desktop Window - Go Router - Isolate - Keyboard Manager - Layer Playground - Mouse Cursor - PackageInfo - Platform - Platform Views - Restoration The following plugins and options are hardcoded to off: - Crash handler: Requires a newer version of sentry-native. - File selector: Requires the zenity package. - Firebase-core: Requires the firebase-cpp-sdk package. - URL Launcher: Requires a runtime-dependency on xdg-open. - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build. - BUILD_TEXTURE_TEST_EGL: Fails to build. - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL). The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps. If this option is disabled, ivi-homescreen segfaults when starting an application. Finally, there is a need for a patch that fixes the audio-players plugin: If the audio-players plugin is the only plugin selected, several compilation errors occure because of undeclared definitions, as the standard_method_codec.h header file is missing. Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133 This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS with Docker 24.0.5: - The following distributions: - Fedora 39: Host system - Ubuntu 22.04: Docker - Debian 11: Docker - The following targets: - BR2_aarch64 - BR2_arm - BR2_x86_64 Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> [yann.morin.1998@free.fr: - propagate BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS to comments - drop NPTL, implied by glibc - reorder dependencies in a more logical way - reorder comments - drop undefined BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT - grammar ("for to change") ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-01-07 00:01:32 +01:00
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
package/ivi-homescreen: fix dependencies for gstreamer plugin 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>
2024-01-28 14:20:51 +01:00
comment "GStreamer plugin needs gst1-plugins-base with an EGL backend"
package/ivi-homescreen: new package Much like flutter-pi, this package is a Flutter embedder used to run Flutter applications. However, unlike Flutter-pi, this package requires a Wayland compositor to run, which flutter-pi does not support. Furthermore, flutter-pi lacks several plugins and features that ivi-homescreen supports, such as: - Dart VM console redirection - DLT logging - Accessibility - Compositor region - Compositor surface - Desktop Window - Go Router - Isolate - Keyboard Manager - Layer Playground - Mouse Cursor - PackageInfo - Platform - Platform Views - Restoration The following plugins and options are hardcoded to off: - Crash handler: Requires a newer version of sentry-native. - File selector: Requires the zenity package. - Firebase-core: Requires the firebase-cpp-sdk package. - URL Launcher: Requires a runtime-dependency on xdg-open. - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build. - BUILD_TEXTURE_TEST_EGL: Fails to build. - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL). The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps. If this option is disabled, ivi-homescreen segfaults when starting an application. Finally, there is a need for a patch that fixes the audio-players plugin: If the audio-players plugin is the only plugin selected, several compilation errors occure because of undeclared definitions, as the standard_method_codec.h header file is missing. Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133 This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS with Docker 24.0.5: - The following distributions: - Fedora 39: Host system - Ubuntu 22.04: Docker - Debian 11: Docker - The following targets: - BR2_aarch64 - BR2_arm - BR2_x86_64 Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> [yann.morin.1998@free.fr: - propagate BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS to comments - drop NPTL, implied by glibc - reorder dependencies in a more logical way - reorder comments - drop undefined BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT - grammar ("for to change") ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-01-07 00:01:32 +01:00
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
package/ivi-homescreen: fix dependencies for gstreamer plugin 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>
2024-01-28 14:20:51 +01:00
depends on !BR2_PACKAGE_HAS_LIBEGL \
|| !BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL_HAS_API
package/ivi-homescreen: new package Much like flutter-pi, this package is a Flutter embedder used to run Flutter applications. However, unlike Flutter-pi, this package requires a Wayland compositor to run, which flutter-pi does not support. Furthermore, flutter-pi lacks several plugins and features that ivi-homescreen supports, such as: - Dart VM console redirection - DLT logging - Accessibility - Compositor region - Compositor surface - Desktop Window - Go Router - Isolate - Keyboard Manager - Layer Playground - Mouse Cursor - PackageInfo - Platform - Platform Views - Restoration The following plugins and options are hardcoded to off: - Crash handler: Requires a newer version of sentry-native. - File selector: Requires the zenity package. - Firebase-core: Requires the firebase-cpp-sdk package. - URL Launcher: Requires a runtime-dependency on xdg-open. - BUILD_TEXTURE_NAVI_RENDER_EGL: Failes to build. - BUILD_TEXTURE_TEST_EGL: Fails to build. - ENABLE_AGL_CLIENT: Used for Automitve Grade Linux (AGL). The ENABLE_XDG_CLIENT=ON option is a requirement to run Flutter apps. If this option is disabled, ivi-homescreen segfaults when starting an application. Finally, there is a need for a patch that fixes the audio-players plugin: If the audio-players plugin is the only plugin selected, several compilation errors occure because of undeclared definitions, as the standard_method_codec.h header file is missing. Upstream-status: https://github.com/toyota-connected/ivi-homescreen/pull/133 This package has been tested on a x86_64 host with an AMD Ryzen 9 6900HS with Docker 24.0.5: - The following distributions: - Fedora 39: Host system - Ubuntu 22.04: Docker - Debian 11: Docker - The following targets: - BR2_aarch64 - BR2_arm - BR2_x86_64 Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> [yann.morin.1998@free.fr: - propagate BR2_PACKAGE_HOST_FLUTTER_SDK_BIN_ARCH_SUPPORTS to comments - drop NPTL, implied by glibc - reorder dependencies in a more logical way - reorder comments - drop undefined BR2_PACKAGE_IVI_HOMESCREEN_HAS_CLIENT - grammar ("for to change") ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-01-07 00:01:32 +01:00
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