My Android project nearing beta

Andre Pany andre at s-e-a-p.de
Tue Dec 31 13:02:38 UTC 2019


On Tuesday, 31 December 2019 at 03:59:58 UTC, Adam D. Ruppe wrote:
> On Wednesday, 18 December 2019 at 15:53:14 UTC, kinke wrote:
>> Heh, it looks like the Wiki page 
>> (https://wiki.dlang.org/Cross-compiling_with_LDC - I've added 
>> an exemplary Android section there as well, using `-gcc` to 
>> specify the NDK's preconfigured clang) needs some overhaul 
>> then if not even you guys seem to find the relevant 
>> information.
>
>
> Well, I worked this into my setup program. It changes ldc2.conf 
> so then you can just
>
>         dub build --compiler=ldc2 -a i386-none-linux-android
>         @mv libdubtest.so 
> BasicActivity/app/src/main/jniLibs/x86 || true
>         #
>         dub build --compiler=ldc2 -a armv7a-none-linux-android
>         @mv libdubtest.so 
> BasicActivity/app/src/main/jniLibs/armeabi-v7a || true
>         #
>         dub build --compiler=ldc2 -a x86_64-none-linux-android
>         @mv libdubtest.so 
> BasicActivity/app/src/main/jniLibs/x86_64 || true
>         #
>         dub build --compiler=ldc2 -a aarch64-none-linux-android
>         @mv libdubtest.so 
> BasicActivity/app/src/main/jniLibs/arm64-v8a || true
>
> I really wish dub had a way to specify the output directory on 
> its command line which would eliminate the need for those ugly 
> mv commands :(
>
> but meh now it works without the helper programs - just a setup 
> step.
>
>
>
> Meanwhile, I wrote a class/jar -> D interface converter and it 
> works beautifully. Alas, dmd is giving me "forward reference" 
> errors in there :(
>
> so the crtp trick is triggering a bunch of internal compiler 
> bugs.
>
> ugh.

I have to check in detail if I can find some free time, but maybe 
in dub.json of d_android a postGenerateCommands line could be 
defined which calls a dub single package responsible for copying 
the binary to the right place depending on the actual 
architecture.

"preGenerateCommands": ["$DUB copy.d"]

Inside of the coding of copy.d all needed information can be 
retrieved from environment variables (see list of environment 
variables here 
https://dub.pm/package-format-json.html#environment-variables).

Kind regards
Andre


More information about the Digitalmars-d-announce mailing list