SpaiR / imgui-java

JNI based binding for Dear ImGui
MIT License
547 stars 90 forks source link

build(binding): MacOS ARM64 native binaries #223

Open rexfleischer opened 4 months ago

rexfleischer commented 4 months ago

Description

Change to add the native binaries for Mac OS ARM64. This is based on #112 and #190. I am not able to test all the different binaries, but I was able to test the non-freetype macos-arm64.

Type of change

Displee commented 2 months ago

Yes please! I need this so bad!

zly2006 commented 1 month ago

kindly reminds that you could use * [X] instead of * [ X ] (remove whitespaces) so it looks like ☑️ in your description

rexfleischer commented 1 month ago

I haven't checked the all one because I didn't know there was one! I will do that as well. Thanks for the reviews.

rexfleischer commented 1 month ago

Update will be in soon.

Ok, this was a couple months ago so I'm not sure if I'm remembering correctly. Here are some notes (and maybe a follow up question):

I do have one follow up question. I see in the image-app build script for the jar, it copies in the non-freetype linux and mac natives, but only the freetype windows native. What is the reason for this?

zly2006 commented 1 month ago

However, I'm copying them into bin now. Is there a standard way of doing this that I'm missing?

There is a github ci script for that: .github/workflows/ci.yaml, but was disabled for PRs, please commit native libs by hand

  • I couldn't get the freetype build working until I executed the FreeType - Install (MacOS-arm64) from .github/workflows/ci.yaml step. This sound reasonable?

There's an wrong if condition, I fixed this issue in #190, merge the upstream to fix

  • After executing ./gradlew :imgui-app:shadowJar, I executed jar tf imgui-app/build/libs/imgui-app-686c27-all.jar and now see the libimgui-javaarm64.dylib library.

I am not quite sure... I have not looked carefully into your code.

I do have one follow up question. I see in the image-app build script for the jar, it copies in the non-freetype linux and mac natives, but only the freetype windows native. What is the reason for this?

see readme: https://github.com/SpaiR/imgui-java?tab=readme-ov-file#freetype freetype was better in rendering, and there is no dependency issues on windows (unlike linux and macos you should install freetype first)

After all, your PR still cannot be compiled and seems far away from being merged, I am neither the maintainer of this project nor an expert in imgui, I am not asking you to close the pr but it really has some problems and I think #190 works better.

rexfleischer commented 1 month ago

I opened this because both #112 and #190 seemed to be abandoned and had either changes requested by the maintainer or had other issues. If you can get 190 in, I don't care either way. However, 190 still has changes requested by the maintainer in 112.

your PR still cannot be compiled

how do you figure this? It compiles: https://github.com/rexfleischer/imgui-java/actions/runs/9118399802

seems far away from being merged

If you "neither the maintainer of this project nor an expert in imgui", how do you figure this? I'm sorry if this PR caused some turmoil, but both the other PRs seemed far away from being merged.

rexfleischer commented 1 month ago

Either way, @SpaiR if there is anything that can help move this PR or #190 forward, please let us know.