On Tuesday, 17 December 2019 at 21:08:07 UTC, Adam D. Ruppe wrote:
On Tuesday, 17 December 2019 at 20:57:54 UTC, bachmeier wrote:
Maybe Docker can help ease the burden for others to test it.
oh it isn't that hard... as of now the trickiest thing is the
druntime build and ldc comes with a script to help with that.
The script just worked on my box for x86, arm64, and x86_64.
[...]
The other arm runtime did NOT work with the script, but
conveniently, ldc offers a binary download of that on their
releases page! So just download it, rename the directory and
put it in the right place, and you're good to go.
LDC 1.19 final will probably come with a native Android/AArch64
package. It's going to contain prebuilt Android/x86_64
druntime/Phobos too, and the armv7a package will contain the i686
libs; i.e., there'll be prebuilt libs for all 4 Android
platforms. See https://github.com/ldc-developers/ldc/pull/3244;
I'm just waiting for LLVM 9.0.1 final to be released (planned for
Dec 19th).
Instead of wrappers around ldc2 and dub, I'd prefer a little
generic tool, something like ldc-build-runtime, which automates
1) downloading a prebuilt LDC package for a specified
cross-compilation target,
2) extracting & renaming the libs,
3) extending ldc2.conf by an appropriate section
Step 3 includes selecting a C cross-linker for most targets and
could be simplified to just specifying the NDK path for Android
targets.
Usage would be something like:
$ ldc-add-target android-aarch64
Enter path to Android NDK: /path/to/android-ndk-r20b
$ ldc2 -mtriple=aarch64-linux-android ...
...
$ ldc-add-target windows-x64
$ dub --arch=x86_64-windows-msvc ...
The tool could also create little forwarding scripts
(aarch64-linux-android-ldc2).