rules_android_ndk
rules_android_ndk copied to clipboard
Adding downloading of NDK inside Bazel
I have a working prototype of downloading the NDK directly in Bazel for both Linux and macOS. Would that be something interesting to contribute in rules_android_ndk?
I find providing the path of the NDK via an environment variable relatively brittle and it's much easier IMO to have Bazel download the toolchain when onboarding new devs.
We used to do this internally, and it's very convenient. But I believe the new NDK only provides dmg files, not zip files, on macOS due to security requirements. So we switched back to the environment variable for now.
If we do get a zipped ndk, I think one workaround is using xattr -d com.apple.quarantine FILENAME to remove the quarantine flag from the directly downloaded executable files.
But I believe the new NDK only provides dmg files, not zip files
The zip file still exists, it's just not published on the download pages because people kept downloading the wrong thing and then filing bugs about it not being compatible with gatekeeper (which is impossible to do per Apple's requirements). Just replace .dmg with .zip in the download URL.
If we do get a zipped ndk, I think one workaround is using xattr -d com.apple.quarantine FILENAME to remove the quarantine flag from the directly downloaded executable files.
Not required unless whatever tool you're using to download the zip applies the quarantine flag in the first place, fwiw. I haven't seen anything but a web browser do this, so not likely needed here.
That's awesome! We are definitely interested in downloading NDK inside Bazel. We can help if needed.
The zip file still exists, it's just not published on the download pages because people kept downloading the wrong thing and then filing bugs about it not being compatible with gatekeeper (which is impossible to do per Apple's requirements). Just replace
.dmgwith.zipin the download URL.
This is excellent news! Thanks for the tip. I'll open a PR ASAP.