ice1000 / jimgui

:sparkling_heart: Pure Java binding for dear-imgui
Apache License 2.0
186 stars 13 forks source link

Improve cross platform support #80

Closed Glavo closed 3 years ago

Glavo commented 3 years ago

Improve cross platform support, to support the linux-aarch64 linux-aarch64 and macos-aarch64 (maybe: linux-mips64 and linux-loongarch64) platform.

ice1000 commented 3 years ago

Where do I get those native libs?

Glavo commented 3 years ago

Where do I get those native libs?

I am currently using Raspberry PI 4B to build the Windows/Linux AArch64 build platform.

For Linux LoongArch64/MIPS64, I plan to assemble a 3a5000 machine for build and testing in the next two months.

ice1000 commented 3 years ago

Where do I get those native libs?

I am currently using Raspberry PI 4B to build the Windows/Linux AArch64 build platform.

For Linux LoongArch64/MIPS64, I plan to assemble a 3a5000 machine for build and testing in the next two months.

Cool. Make sure you link an older version of glibc to make sure it works on old versions of OS dists

ice1000 commented 3 years ago

I'll merge once I can have all these native libs, and I'll publish a new version on maven central.

I plan to drop Java 8 compatibility soon and support jpms in a first-class manner😉.

Glavo commented 3 years ago

I'll merge once I can have all these native libs, and I'll publish a new version on maven central.

I plan to drop Java 8 compatibility soon and support jpms in a first-class manner😉.

LoongArch64 and MIPS64 have no JDK higher than Java 8 available at present, if you give up Java 8 compatibility, you will not be able to achieve relevant support.

To fully support JPMS, you don't need to completely give up Java 8 compatibility, just need to compile module info independently. See java9-modularity/gradle-modules-plugin: Separate compilation of module-info.java.

Glavo commented 3 years ago

Cool. Make sure you link an older version of glibc to make sure it works on old versions of OS dists

hmm, is it better to link to musl libc statically? In this way, we can support Alpine Linux at the same time (although it seems uncommon to use GUI environment on Alpine Linux).

ice1000 commented 3 years ago

Cool. Make sure you link an older version of glibc to make sure it works on old versions of OS dists

hmm, is it better to link to musl libc statically? In this way, we can support Alpine Linux at the same time (although it seems uncommon to use GUI environment on Alpine Linux).

Yeah, I just didn't know how to do it. Your help is appreciated.

Glavo commented 3 years ago

@ice1000 I think the current fix of JniLoader can be merged now, and the rest is completed in a separate PR.