Create straightforward, easy to use INSTALL files for your MATLAB project with the included INSTALL file template and utilities. Users will only need to run the INSTALL file to get the project up and running.
- Download the project files
- Open the template INSTALL file
- Modify the contents of the INSTALL file to suit your project's needs
- See the following for more details:
The goal of this project is to make it as simple as possible for a user to get your project code up and running. This project demonstrates how to achieve the following goals in an INSTALL file:
- No uninstall procedure needed. Simply delete the project folder.
- Only a single file is needed for installation. No other functions to keep track of (simpler for users and cleaner repositories).
- Automatically add the project files to the user's path
- Automatically download the dependencies from the web
- Check if toolboxes are installed and minimum versions are met
- Open specific files (such as examples)
- Run specific files (such as examples)
- Close specific files (such as the INSTALL file when it has completed)
- Display diagnostic information to the command window
- Customizable since no two projects are the same
Below is a list of the included utilities that help achieve the goals listed above. This functions are directly included as subfunctions in the INSTALL file.
- AddSubmissionContents: Adds all the contents of the current folder and subfolders relative to the file the function is called from
- OpenThisFile: Opens a specified m file
- RunThisFile: Runs a specified m file
- CloseThisFile: Closes a specified m file
- RequiredWebFiles and DownloadWebFiles: Downloads files from the web to specified location
- RequiredWebZips and DownloadWebZips: Downloads and extracts zips files from the web to specified location
- You no longer need to directly include required MFX and GitHub projects!
- MinimumVersionChecks and VersionChecks: Checks if a list of toolboxes satisfies version checks
- Check if your Python environment and packages are installed and working (see link)
There are a number of projects with similar goals to this one. These include:
- matlab-package-manager: downloads zip files (including on MFX and GitHub)
- github-sync-matlab: downloads or updates GitHub repositories
- buildFexLibrary: downloads MFX submissions
- require-fex-package: downloads MFX submissions
- matlab-library-system: general install system
Perhaps future versions could include some of these efforts to improve certain elements (such as better MFX and GitHub downloading).