MATLAB Answers

What's the best way to create a toolbox that relies on a C library?

1 view (last 30 days)
Simon Stone
Simon Stone on 8 Jun 2021
Edited: Simon Stone on 10 Jun 2021
I want to create a toolbox that is essentially a wrapper for the API of a C shared/dynamic library. Obviously, the library needs to be built for the respective target system (Linux/Windows/Mac). I guess I could simply include binaries for the most common configurations in the toolbox archive, but that seems ham-fisted and is certainly not going to cover all user environments.
I know that in Python you can build the dependencies of a package during the installation process. Is there any equivalent process in MATLAB? Or is there any other best practice regarding this problem?

Accepted Answer

Simon Stone
Simon Stone on 10 Jun 2021
Edited: Simon Stone on 10 Jun 2021
I ended up writing some code to build the library using system() calls. The toolbox is essentially a single class and when it gets instantiated, the ctor checks whether the binary library file exists and otherwise calls the function to build it from source.
Don't know if that's the best way, but it seems to be working. Thanks to CMake, it's also fairly easy to do platform-independently. But it does require the user to install some software beyond Matlab, namely CMake and some compiler.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by