kassane / sokol-d

D bindings for the sokol headers (https://github.com/floooh/sokol)
http://sokol-d.dub.pm/
zlib License
11 stars 5 forks source link

add Dub support #12

Closed kassane closed 9 months ago

kassane commented 9 months ago

closes #2

Reference

kassane commented 9 months ago

dub not linking dll libraries, only *.lib|**.a? (zig build -DShared - build sokol.dll) see: https://github.com/kassane/sokol-d/actions/runs/7686938821/job/20946392177?pr=12#step:6:40

CI - Windows error:

dub build :clear
    Starting Performing "debug" build using C:\hostedtoolcache\windows\dc\ldc2-cbdce51f\x64\ldc2-cbdce51f-windows-multilib\bin\ldc2.exe for x86_64.
    Building sokol-d:clear 0.1.0: building configuration [application]
   Pre-build Running commands
Error: unrecognized file extension dll
Error: unrecognized file extension dll
Error: unrecognized file extension dll
Error: unrecognized file extension dll

I need help, about Windows linking using (re)dub. Because zig provides own linker in all targets, but dub (pkg-manager) not.

cc: @MrcSnm, @ryuukk


Edit

The bug isn't in the dub, maybe in the zig. I need on windows to check and fix this.

kassane commented 9 months ago

The bug isn't in the dub, maybe in the zig. I need on windows to check and fix this.

Yes and no! zig build -Dshared also run ldc2 building all examples, no library only. This error is issued by ldc2 which does not recognize dll extension. However, the zig generated without any problem.

kassane commented 9 months ago

Note: Needed to switch setup-zig because caching was missing, was making the zig installation longer.

-     - uses: goto-bus-stop/setup-zig@v2
+     - uses: korandoru/setup-zig@v1
+       with:
+         zig-version: master
kassane commented 9 months ago

Latest commit, get another errors using implib (sokol.lib defined from dll).

https://github.com/kassane/sokol-d/actions/runs/7688266248/job/20949282160#step:6:1

ldc/ldmd2, Windows support is 😖🔫!!


Edit

Maybe, I need to port all libsokol dependencies listed in build.zig to dub.sdl when getting the static library. Possibly identifying all reference links.