My Android project nearing beta

kinke noone at nowhere.com
Tue Dec 17 22:28:32 UTC 2019


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).


More information about the Digitalmars-d-announce mailing list