Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matlab deployment: add files to source control?

I've created a deployment project which works rather well and now I want to add it to source control repository for others to use.
The main problem I'm facing is that the .prj file which deploytool creates contains absolute paths which will not work on other computers. So far I've tried the following:

  • Create the stand alone exe using just mcc without deploytool. This works great but I could find a way to create the final _pkg.exe which contains everything. mcc doesn't seem to be able to create this file and there doesn't seem to be any other tool which does. Is this really the case?
  • Edit the .prj file to include relative paths instead of absolute paths. This only works partially because the .prj file contains a section called MATLABPath which is always replaced with the current setpath of matlab. anyone which uses this file will have to check it out since it is being changed when used.
  • Find a way to generate the .prj file. the mcc documentation say: Project files created using either mcc or deploytool are eligible to use this option. suggesting there is a way to create a .prj file using mcc but I wasn't able to find how this can be done.

Is there a solution to this situation?

like image 518
shoosh Avatar asked Nov 24 '09 14:11

shoosh


1 Answers

We ran into the same thing with Matlab Builder JA. Not only are the paths absolute, Matlab also adds other toolboxes that it finds on the path, which is irritating, as the build machine doesn't have licenses for a lot of them.

So what we do is:

  • Edit the prj file by hand to get rid of the absolute paths
  • Check it into source control and build with mcc
  • NEVER EVER check in the prj file after it has been touched by deploytool (do all changes by hand in an editor)

Our revision control lets you modify files without an explicit checkout, so using deploytool is not a problem. But why would you want to?

Not sure what the final packager does, but if it just bundles the MCR with the compiled binary, I would just write a replacement.

like image 60
Jan Schiefer Avatar answered Oct 06 '22 18:10

Jan Schiefer