-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prebuilt/caching libraries for BRN #1270
Comments
Would this specifically be local builds, build agents, or both? |
both. Maybe some option in cmake to download binaries or build them. |
If CI VMs are the main concern, could we use GitHub workflow caching for the build output? This would effectively make the builds incremental. I’m not sure how hard it wold be to generate a correct cache key for build outputs though. https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows# |
Yes, it makes sense to save some binaries when a PR is merged, using BN commit hash as a key. And reuse with all builds following as long as it's the same BN commit. BN is not updated very often so it makes total sense. |
I've used MSVC to get local build times. I'm keeping here libraries with >2seconds times. squish 6 253.3 seconds v8inspector 25 116.2 seconds so ~70% of build time can be cached and reused |
If it’s just build caching, then I’d think the binaries from both your lists could be included as well. |
We discussed that with @bghgary and because of changes in JS interface, react,... this might not be possible. |
Since this would be caching specifically for the BN build within BRN, then BN is always configured with a specific JS engine etc., so I would expect caching to be fine on all binaries. Not sure what you and @bghgary discussed though so maybe I’m missing something. |
I did some tests today with Github Caching and got these issues:
|
I tried to reuse, locally, bgfx static libraries.
But it didn't work and include is not added to the build command line
Any idea why it happens ? EDIT: Adding |
I'm reaching a point where cmake needs to run to fetch content (jsruntimehost, arcana,...) while also needing the prebuilt cache so it can import the libraries. But the cache (in order to be invalidated) needs a commit hash. A way to do it is to run cmake 2 times:
That's not something I'd like to do because of less maintainable cmake scripts and the benefits will be low (around 3 minutes per build) |
In order to speed up BRN builds, I want to evaluate the feasibility of having (some) prebuilt libraries of BabylonNative.
As discussed with @bghgary , because of JS engine, it won't be possible to prebuild everything. Does it make sense to have more clear separation for some libraries (JS engine layer + internal functionnality).
Note: I'm also wondering if it makes sense to not build everything for BN local builds or CI.
List of libraries dependent of JSEngine:
Independent ones:
Excepted ABI:
win32 : x86 Debug + Release, win_x64 Debug + Release
arm64, arm7(?), x86, x86_64
ios: arm64, x86_64, arme(?)
The text was updated successfully, but these errors were encountered: