Kode / Kinc

Modern low level game library and hardware abstraction.
http://kinc.tech
zlib License
511 stars 121 forks source link

Option to disable features #840

Closed bluesillybeard closed 7 months ago

bluesillybeard commented 7 months ago

Describe the solution you'd like Essentially, I'm thinking of a way to disable features of the library. For example, I might not be using G5 - so I would disable the G5 backend. It's up for debate whether G5 should be re-enabled if the graphics API does not have a direct G4 implementation.

In my case specifically, I'm going to use a different audio library than what Kinc provides (likely portaudio), and disabling Kinc's audio will help reduce unnecessary dependencies.

Additional context I am working on a Zig binding for this library, and being able to disable features can be useful while debugging. I am using the --json option of kmake in order to get information on how to build the library, then transferring that data to the Zig build toolchain.

The reason for making a Zig binding for Kinc is for a personal project.

RobDangerous commented 7 months ago

Some work has been done to modularize Kinc already (you can use some parts of it as single-header-libs) but I don't plan to continue working on it this year and a feature to explicitly disable something is not planned - if you don't use G5 or the audio-API the compiler will kick out the code anyway so just don't call kinc_a2_init and you'll be fine.