generate mex files on build
The platform (Windows, Unix, MacOS) dependent mex files need to be compiled manually every time their source code is changed. Is there a way to automatize it?
-
On every push to
mastera GitHub action can run that checks if the source code has changed. If yes,mexfiles are compiled on all three platforms and pushed to the repository for a new commit. -
Keep
mexfiles outside of source control and only create and package them up with builds. This has the disadvantage developers need to manually generate them after cloning the repo.
this can be revisited once we have the new windows and macOS machines
The generation of this mex file may be related to its generation environment and platform, such as MATLAB's parallel mode: Threads or processes, C/C++'s corresponding mex compiler, Intel oneapi or VS studio? After my personal test, the most basic MATLAB parallel mode is different, the mex cannot be called. Therefore, this part needs to be standardized and rigorously tested.
error code:
Parallel pool is ready. Error using LineShapes (line 61) Use of MEX functions is not supported on a thread-based worker. Use a PARPOOL('Processes') process-based pool or a different process-based pool instead.
Error in field2line (line 46) [ranges, Ints] = LineShapes(x0, field, int, Sys);