What is the best way to distribute a custom simulink library using C++ S-Function blocks to multiple users? Preferably using some form of CI/CD pipeline

I'm looking for a way to distribute a custom simulink library which has multiple C++ S-function blocks to multiple users. Is there a way to automatically build, package the MEX S-function blocks and their masks, and deploy them as a library usable by multiple users.
The pipeline (if possible) would go something like {cpp source code} -> {mex binaries} -> {library of S-function blocks} -> people can use the latest version of this library.

 Accepted Answer

  1. Write a MATLAB script that Uses the mex() function to compile and link source code for each S-function into a mex function ( you could also use the legacy_code tool to do this
  2. If you have a fixed list of S-Function blocks, I would recommend just creating the blocks and mask manually. However, you can also script this using the create_system(), add_block() and set_param() functions to automate the creation of your Simulink Library
The above scripts can then be called from a CI system whenever the source code for your s-functions changes.

3 Comments

How are shared libraries usually deployed? Are they just placed on a shared drive which is just updated by the CI system, or is there an inbuilt method of controlling updates etc?
There is no built-in method for controlling. Some customers place on a shared drive(s) that all users point to. Others commit to CM tool and the have users pull new version when convenient.

Sign in to comment.

More Answers (0)

Categories

Find more on Modeling in Help Center and File Exchange

Products

Release

R2021b

Community Treasure Hunt

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

Start Hunting!