Skip to content

project that can build out zinc bindings and dependent libs

License

Notifications You must be signed in to change notification settings

zinc-framework/Zinc.Bootstrapper

Repository files navigation

Zinc.Bootstrapper

This repo builds the dependent libraries and bindings for Zinc

It uses Zig to compile the libraires, and ClangSharpPinvokeGenerator for the bindings.

The only thing you need to install is ClangSharpPInvokeGenerator (and this is only if you want bindings):

dotnet tool install --global ClangSharpPInvokeGenerator --version 18.1.0

Running

This uses Bullseye/SimpleExec for everything. Targets are split up such that they cascade from least to most specific.

Generally there are four options:

  1. Everything (./build with no args or default)
  2. Everything for a lib (./build sokol|cute|stb)
  3. Everything for bindgen (./build [sokol|cute|stb]:bindgen)
  4. Specific bindgen (./build [sokol|cute|stb]:bindgen:[filename])

See all the options by running ./build --help

Bindings

Bindings require that your running platform have Visual Studio (or Build Tools for Visual Studio 2022 - select "Desktop Development with C++") installed or Xcode

https://visualstudio.microsoft.com/downloads/#remote-tools-for-visual-studio-2022 (bottom sctoll for "Visual C++ Redistributable for Visual Studio 2022)

NOTE: IMGUI bindings are a little wonky and need to be manually updated See the "Fix Imgui" commit in the bindings repo to see what needs to change

  • _iobuf needs to map to void*
  • __arglist needs to map to params string[] args
  • the bitfield logic needs to map to proper ints

DLL vs. Static

Most everything just works for now but you need to change some defines stuff for now in the c file (just sokol for now, others not supported for static yet) in sokol.c

DLL

make sure #define SOKOL_DLL is uncommented comment out #define IMGUI_STATIC

Static

comment out #define SOKOL_DLL make sure #define IMGUI_STATIC is uncommented also add in int __stack_chk_guard = 42; for now until I fix stack check guard stuff

About

project that can build out zinc bindings and dependent libs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published