I would like to explore the possibility of generating native Android build artifacts during Chrome builds for Chrome OS. I know this is technically feasible as I have a local PoC using explicit GN toolchain references, with only minimal changes to some existing android GNI.The main issue I can imagine is that this requires Chrome OS Chrome builders to pull in Android DEPS, a la .gclient target_os=["android"], in order to get at least NDK and relevant dependencies.Would this be an unreasonable goal to pursue?
For full context, I'm looking to ship a shared library with Chrome in the Chrome OS system image. One copy of this library will exist for Chrome OS system services to consume, and another copy (actually two copies, 32- and 64-bit) will need to exist for native code in the ARC++ container to consume. All builds of the library must be built from the same Chrome revision, and the Android ones obviously need to build against Bionic etc.The simplest thing to do from my naive perspective would be to require pulling Android DEPS for Chrome OS Chrome builds, and add a relatively small chunk (~50 lines) of GN to produce the cross-compiled libraries as needed.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
On Mon, Apr 23, 2018 at 5:02 PM, Ken Rockot <roc...@chromium.org> wrote:I would like to explore the possibility of generating native Android build artifacts during Chrome builds for Chrome OS. I know this is technically feasible as I have a local PoC using explicit GN toolchain references, with only minimal changes to some existing android GNI.The main issue I can imagine is that this requires Chrome OS Chrome builders to pull in Android DEPS, a la .gclient target_os=["android"], in order to get at least NDK and relevant dependencies.Would this be an unreasonable goal to pursue?This isn't an unreasonable goal, but as you've seen in the other responses, doing this properly for a full (ebuild) CrOS build is a bit more complicated.
Apart from that, I'm also concerned about what the impact on the compile time might be. What will need to be built for Android?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CA%2BapAgEL7RqMmwvDd-hURkdgJRwV6ophbbev0S95WYpVe%3D5%2B-g%40mail.gmail.com.
I'd like to hear which builds you expect to produce these artifacts, and how you will version and consume them. But it doesn't seem unreasonable.
You might be able to test that by adding `'checkout_android': 'checkout_chromeos or checkout_android'` to the `vars = { ... }` block in DEPS. If that doesn't work, that might be something we can fix in gclient. Something like that is probably the right way to fix it (i.e., that sounds like it models the dependency correctly), and would only need to be approved like any other normal CL, though in this case it'd probably be best for jbudorick@ or I to review it.Failing that, you can change the conditions in the DEPS file so that everywhere you have `checkout_android` you'd have `checkout_android or checkout_chromeos`. This might not work if there are dependencies in other DEPS files that are recursed into (like src-internal) and so you'd probably need the first fix for that.