ARM support
Upstream CEF added ARM 32-bit support in September. Upstream Issue #1990 ("Linux: Add ARM build support") provides more details. Below is a short summary:
- Supported branches are 2840 and later (v54 and later). The corresponding cefpython branches are cefpython54, cefpython55 and later.
- Currently there is X11 dependency. ARM build tested to run successfully on an ASUS C201 Chromebook running Crouton/Ubuntu Xfce.
- X11 dependency is to be removed in upstream Issue #1989 ("Linux: Add ozone support as an alternative to X11") and this will allow to run on e.g. Raspberry Pi
- You can cross-compile on Ubuntu, instructions are provided in the CEF issue linked above
- ARM64 cross-compile is to be added when Chromium Issue 613452 is resolved
To build CEF for ARM (cross-compile on Ubuntu) there will be modifications required to cefpython's tools/automate.py script:
- Add --arm-build flag which will call upstream automate-git.py with that flag
- Add "arm_float_abi=hard" in GN_DEFINES when --arm-build flag is passed
Currently CEF Python has issue231 and issue251 patches that must be applied to CEF for the CEF binaries to work with cefpython. So you should use the tools/automate.py script to build CEF which applies patches automatically. These two patches will be removed when they get merged into upstream, see the NOTES section at the end of Issue #264.
I haven't yet played with ARM. Looks like getting a Chromebook and then using Crouton to install Ubuntu Xfce is the way to go.
I'm currently working on a Buildroot package for Chromium, which will be a good first step to automated cross-compiling builds for CEF and cefpython3.
cython_setup.py should support using clang as CC/CXX on Linux, as (unlike GCC) it's a cross-compiler by default, and can build for other targets based on the -target option passed to it.
You can see which targets your Clang supports by running llvm-config --targets-built
Ozone support added in upstream. Ozone builds can run with different platform backends (Wayland, X11, etc). Upstream commit: https://bitbucket.org/chromiumembedded/cef/commits/491253fa037113cad7416218beb2bb949b458185 .
Are there any small tasks which could be done to help out with this issue?
Would it be possible in the near future for raspberry pi?
I am not aware of anyone working on this at the moment. jakogut mentioned earlier in comments that he has done some work on this and I can see "cefpython69-arm" branch in his repository, but no idea what's the progress.
CEF now officially supports ARM/ARM64 builds. These builds should appear on Spotify Automated Builds site when cache refreshes: http://opensource.spotify.com/cefbuilds/index.html
@cztomczak now that CEF is building on ARM/ARM64 -- any idea around timelines for this? Not to put pressure on you or be annoying, just genuinely curious about this. Would a modest donation help with prioritizing? :)
It is required to update to latest CEF first. From v66 to v80 that's 14 version bumps and that's a big task.
I wanted to give a head-up to anyone following this issue, v80 is now available on http://opensource.spotify.com/cefbuilds/index.html
Any update?
I will ask for my fellow raspberry pi nerds - how is it coming along? ;)
Seems that the builds are successful for arm, but don't know why the delay for the python tkinter side
https://cef-builds.spotifycdn.com/index.html#linuxarm
Any update?
I need this as well, and I'm prepared to help out if possible. Unfortunately, I presently have no idea where to start. If anyone can suggest what changes would be necessary and where to start, maybe we can get some momentum going?