1# Flutter includes a vender copy of clang which is mandatory to use for
2# compiling. These are the supported architectures.
3config BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
4	bool
5	default y if BR2_aarch64
6	default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
7	default y if BR2_x86_64
8
9config BR2_PACKAGE_FLUTTER_ENGINE
10	bool "flutter-engine"
11	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
12	depends on BR2_TOOLCHAIN_USES_GLIBC
13	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
14	depends on BR2_INSTALL_LIBSTDCPP
15	depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future
16	depends on !BR2_STATIC_LIBS
17	depends on BR2_USE_WCHAR # std::wstring
18	depends on BR2_HOST_GCC_AT_LEAST_5
19	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
20	select BR2_PACKAGE_FREETYPE
21	select BR2_PACKAGE_HOST_DEPOT_TOOLS
22	select BR2_PACKAGE_ZLIB
23	help
24	  Flutter is Google's SDK for crafting beautiful, fast user
25	  experience for mobile, web, and desktop from a single
26	  codebase. Flutter works with existing code, is used by
27	  developers and organizations around the world, and is
28	  free and open source.
29
30	  The Flutter Engine is a portable runtime for hosting
31	  Flutter applications. It implements Flutter's core
32	  libraries, including animation and graphics, file and
33	  network I/O, accessibility support, plugin architecture,
34	  and a Dart runtime and compile toolchain. Most developers
35	  will interact with Flutter via the Flutter Framework,
36	  which provides a modern, reactive framework, and a rich
37	  set of platform, layout and foundation widgets.
38
39	  https://github.com/flutter/engine
40
41if BR2_PACKAGE_FLUTTER_ENGINE
42
43config FLUTTER_ENGINE_RUNTIME_MODE_PROFILE
44	bool "enable profiling"
45	help
46	  Some debugging ability is maintained—enough to profile your
47	  apps performance. Profile mode is disabled on the emulator
48	  and simulator, because their behavior is not representative
49	  of real performance. Profile mode is similar to release mode,
50	  with the following differences:
51
52	  - Some service extensions, such as the one that enables the
53	    performance overlay, are enabled.
54
55	  - Tracing is enabled, and tools supporting source-level
56	    debugging (such as DevTools) can connect to the process.
57
58	  If this option is left unselected, the global option
59	  BR2_ENABLE_RUNTIME_DEBUG determines whether to build Flutter
60	  in release or debug mode.
61
62	  https://docs.flutter.dev/testing/build-modes#profile
63
64endif
65
66comment "flutter-engine needs an OpenGL or OpenGLES backend"
67	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
68	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES
69
70comment "flutter-engine needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5"
71	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
72	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP \
73		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS \
74		|| !BR2_USE_WCHAR || !BR2_HOST_GCC_AT_LEAST_5
75
76comment "flutter-engine needs a toolchain not affected by GCC bug 64735"
77	depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
78	depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
79