package/flutter-engine: new package
There are many issues with this package:
- The release tarballs from https://github.com/flutter/engine are in no state
to compile. They are only for the use of gclient to download a source
directory structure suitable to build the Flutter engine! If you download,
extract and attempt to run `./tools/gn --no-goma --no-prebuilt-dart-sdk`, you
receive the error message:
`No such file or directory: 'flutter/flutter/third_party/gn/gn.'
But wait! Wasn't the gn binary just called? No, that's a wrapper in the
Flutter source tree that formats arguments to call the real gn binary.
The real gn is not provided in the tarball but is downloaded via gclient
(among many other supporting repositories.)
Even worse, the flutter buildsystem depends on the .git dirs being present.
(https://github.com/meta-flutter/meta-flutter/issues/271) This dependency
means it is not possible to create a reproducible tarball from the downloaded
sources, which is why there is no .hash file provided.
I have asked the flutter project to release full tarballs suitable for
compiling here: https://github.com/flutter/flutter/issues/130734
- Flutter engine includes a patched copy of clang that must be used to compile.
Using a Buildroot-build clang results in linking warning and errors.
As such, we depend on LLVM_ARCH_SUPPORTS but use the included clang for
building. On the plus side, this saves time having to compile clang.
- flutter-engine relies on the "PUB_CACHE", that is provided by flutter-sdk,
so we need a build dependency, even if no tool from host-flutter-sdk-bin
is used to build flutter-engine
Tested with:
- Debian 11 and 12
- Ubuntu 18.04, 20.04, and 22.04
- Fedora 38
- Per-package directories
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr:
- search gclient.py from PATH
- indent shell script with 4 spaces
- reorganise schell script with prepare/cleanup
- tweak comment about weirdness of flutter buildsystem
- use suitable-extactor and TAR_OPTIONS
- use FLUTTER_SDK_BIN_PUB_CACHE
- add dependency to host-futter-sdk-bin (Adam)
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-09-19 22:42:49 +02:00
|
|
|
# Flutter includes a vender copy of clang which is mandatory to use for
|
|
|
|
# compiling. These are the supported architectures.
|
|
|
|
config BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
|
|
|
|
bool
|
|
|
|
default y if BR2_aarch64
|
|
|
|
default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
|
|
|
|
default y if BR2_x86_64
|
|
|
|
|
|
|
|
config BR2_PACKAGE_FLUTTER_ENGINE
|
|
|
|
bool "flutter-engine"
|
|
|
|
depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
|
|
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC
|
|
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
|
|
|
|
depends on BR2_INSTALL_LIBSTDCPP
|
|
|
|
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future
|
|
|
|
depends on !BR2_STATIC_LIBS
|
|
|
|
depends on BR2_USE_WCHAR # std::wstring
|
|
|
|
depends on BR2_HOST_GCC_AT_LEAST_5
|
|
|
|
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES
|
|
|
|
select BR2_PACKAGE_FREETYPE
|
|
|
|
select BR2_PACKAGE_HOST_DEPOT_TOOLS
|
|
|
|
select BR2_PACKAGE_ZLIB
|
|
|
|
help
|
|
|
|
Flutter is Google's SDK for crafting beautiful, fast user
|
|
|
|
experience for mobile, web, and desktop from a single
|
|
|
|
codebase. Flutter works with existing code, is used by
|
|
|
|
developers and organizations around the world, and is
|
|
|
|
free and open source.
|
|
|
|
|
|
|
|
The Flutter Engine is a portable runtime for hosting
|
|
|
|
Flutter applications. It implements Flutter's core
|
|
|
|
libraries, including animation and graphics, file and
|
|
|
|
network I/O, accessibility support, plugin architecture,
|
|
|
|
and a Dart runtime and compile toolchain. Most developers
|
|
|
|
will interact with Flutter via the Flutter Framework,
|
|
|
|
which provides a modern, reactive framework, and a rich
|
|
|
|
set of platform, layout and foundation widgets.
|
|
|
|
|
|
|
|
https://github.com/flutter/engine
|
|
|
|
|
2024-01-03 00:59:29 +01:00
|
|
|
if BR2_PACKAGE_FLUTTER_ENGINE
|
|
|
|
|
|
|
|
config FLUTTER_ENGINE_RUNTIME_MODE_PROFILE
|
|
|
|
bool "enable profiling"
|
|
|
|
help
|
|
|
|
Some debugging ability is maintained—enough to profile your
|
|
|
|
apps performance. Profile mode is disabled on the emulator
|
|
|
|
and simulator, because their behavior is not representative
|
|
|
|
of real performance. Profile mode is similar to release mode,
|
|
|
|
with the following differences:
|
|
|
|
|
|
|
|
- Some service extensions, such as the one that enables the
|
|
|
|
performance overlay, are enabled.
|
|
|
|
|
|
|
|
- Tracing is enabled, and tools supporting source-level
|
|
|
|
debugging (such as DevTools) can connect to the process.
|
|
|
|
|
|
|
|
If this option is left unselected, the global option
|
|
|
|
BR2_ENABLE_RUNTIME_DEBUG determines whether to build Flutter
|
|
|
|
in release or debug mode.
|
|
|
|
|
|
|
|
https://docs.flutter.dev/testing/build-modes#profile
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
package/flutter-engine: new package
There are many issues with this package:
- The release tarballs from https://github.com/flutter/engine are in no state
to compile. They are only for the use of gclient to download a source
directory structure suitable to build the Flutter engine! If you download,
extract and attempt to run `./tools/gn --no-goma --no-prebuilt-dart-sdk`, you
receive the error message:
`No such file or directory: 'flutter/flutter/third_party/gn/gn.'
But wait! Wasn't the gn binary just called? No, that's a wrapper in the
Flutter source tree that formats arguments to call the real gn binary.
The real gn is not provided in the tarball but is downloaded via gclient
(among many other supporting repositories.)
Even worse, the flutter buildsystem depends on the .git dirs being present.
(https://github.com/meta-flutter/meta-flutter/issues/271) This dependency
means it is not possible to create a reproducible tarball from the downloaded
sources, which is why there is no .hash file provided.
I have asked the flutter project to release full tarballs suitable for
compiling here: https://github.com/flutter/flutter/issues/130734
- Flutter engine includes a patched copy of clang that must be used to compile.
Using a Buildroot-build clang results in linking warning and errors.
As such, we depend on LLVM_ARCH_SUPPORTS but use the included clang for
building. On the plus side, this saves time having to compile clang.
- flutter-engine relies on the "PUB_CACHE", that is provided by flutter-sdk,
so we need a build dependency, even if no tool from host-flutter-sdk-bin
is used to build flutter-engine
Tested with:
- Debian 11 and 12
- Ubuntu 18.04, 20.04, and 22.04
- Fedora 38
- Per-package directories
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr:
- search gclient.py from PATH
- indent shell script with 4 spaces
- reorganise schell script with prepare/cleanup
- tweak comment about weirdness of flutter buildsystem
- use suitable-extactor and TAR_OPTIONS
- use FLUTTER_SDK_BIN_PUB_CACHE
- add dependency to host-futter-sdk-bin (Adam)
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-09-19 22:42:49 +02:00
|
|
|
comment "flutter-engine needs an OpenGL or OpenGLES backend"
|
|
|
|
depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
|
|
|
|
depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBGLES
|
|
|
|
|
2024-01-17 23:50:42 +01:00
|
|
|
comment "flutter-engine needs a glibc toolchain w/ wchar, C++, gcc >= 5, dynamic library, host gcc >= 5"
|
package/flutter-engine: new package
There are many issues with this package:
- The release tarballs from https://github.com/flutter/engine are in no state
to compile. They are only for the use of gclient to download a source
directory structure suitable to build the Flutter engine! If you download,
extract and attempt to run `./tools/gn --no-goma --no-prebuilt-dart-sdk`, you
receive the error message:
`No such file or directory: 'flutter/flutter/third_party/gn/gn.'
But wait! Wasn't the gn binary just called? No, that's a wrapper in the
Flutter source tree that formats arguments to call the real gn binary.
The real gn is not provided in the tarball but is downloaded via gclient
(among many other supporting repositories.)
Even worse, the flutter buildsystem depends on the .git dirs being present.
(https://github.com/meta-flutter/meta-flutter/issues/271) This dependency
means it is not possible to create a reproducible tarball from the downloaded
sources, which is why there is no .hash file provided.
I have asked the flutter project to release full tarballs suitable for
compiling here: https://github.com/flutter/flutter/issues/130734
- Flutter engine includes a patched copy of clang that must be used to compile.
Using a Buildroot-build clang results in linking warning and errors.
As such, we depend on LLVM_ARCH_SUPPORTS but use the included clang for
building. On the plus side, this saves time having to compile clang.
- flutter-engine relies on the "PUB_CACHE", that is provided by flutter-sdk,
so we need a build dependency, even if no tool from host-flutter-sdk-bin
is used to build flutter-engine
Tested with:
- Debian 11 and 12
- Ubuntu 18.04, 20.04, and 22.04
- Fedora 38
- Per-package directories
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr:
- search gclient.py from PATH
- indent shell script with 4 spaces
- reorganise schell script with prepare/cleanup
- tweak comment about weirdness of flutter buildsystem
- use suitable-extactor and TAR_OPTIONS
- use FLUTTER_SDK_BIN_PUB_CACHE
- add dependency to host-futter-sdk-bin (Adam)
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-09-19 22:42:49 +02:00
|
|
|
depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
|
2024-01-17 23:50:42 +01:00
|
|
|
depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP \
|
|
|
|
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS \
|
|
|
|
|| !BR2_USE_WCHAR || !BR2_HOST_GCC_AT_LEAST_5
|
package/flutter-engine: new package
There are many issues with this package:
- The release tarballs from https://github.com/flutter/engine are in no state
to compile. They are only for the use of gclient to download a source
directory structure suitable to build the Flutter engine! If you download,
extract and attempt to run `./tools/gn --no-goma --no-prebuilt-dart-sdk`, you
receive the error message:
`No such file or directory: 'flutter/flutter/third_party/gn/gn.'
But wait! Wasn't the gn binary just called? No, that's a wrapper in the
Flutter source tree that formats arguments to call the real gn binary.
The real gn is not provided in the tarball but is downloaded via gclient
(among many other supporting repositories.)
Even worse, the flutter buildsystem depends on the .git dirs being present.
(https://github.com/meta-flutter/meta-flutter/issues/271) This dependency
means it is not possible to create a reproducible tarball from the downloaded
sources, which is why there is no .hash file provided.
I have asked the flutter project to release full tarballs suitable for
compiling here: https://github.com/flutter/flutter/issues/130734
- Flutter engine includes a patched copy of clang that must be used to compile.
Using a Buildroot-build clang results in linking warning and errors.
As such, we depend on LLVM_ARCH_SUPPORTS but use the included clang for
building. On the plus side, this saves time having to compile clang.
- flutter-engine relies on the "PUB_CACHE", that is provided by flutter-sdk,
so we need a build dependency, even if no tool from host-flutter-sdk-bin
is used to build flutter-engine
Tested with:
- Debian 11 and 12
- Ubuntu 18.04, 20.04, and 22.04
- Fedora 38
- Per-package directories
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr:
- search gclient.py from PATH
- indent shell script with 4 spaces
- reorganise schell script with prepare/cleanup
- tweak comment about weirdness of flutter buildsystem
- use suitable-extactor and TAR_OPTIONS
- use FLUTTER_SDK_BIN_PUB_CACHE
- add dependency to host-futter-sdk-bin (Adam)
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-09-19 22:42:49 +02:00
|
|
|
|
|
|
|
comment "flutter-engine needs a toolchain not affected by GCC bug 64735"
|
|
|
|
depends on BR2_PACKAGE_FLUTTER_ENGINE_ARCH_SUPPORTS
|
|
|
|
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
|