Deploy pcoded Matlab Files
Sometimes it’s necessary to obscure the content of MATLAB source code that was developed. While the MATLAB function “pcode” encrypts the M-file, the help of the file gets lost. A way to fix this, is to create a second file, with the same name as the encrypted P-file, but with the M-file extension. Furthermore it’s necessary to add the function signature to the top.
If there are a lot of files to keep up to date, this can produce a lot of work.
In addition the supporting help M-file must always be created before the P-file, otherwise MATLAB complains.
This function creates P-files and the associated help M-files for a given folder and stores it to a given destination folder.
It works fully recursively and also can handle MATLAB Classes, Class-Folders (@Directories) as well as MATLAB Package-Folders (+Directories)
DEPLOY creates p-coded files and the associated help text of a given
source to a given destination folder. Works recursive on folder trees,
including Package folders (+Package) and classes as well as class folders
(@Class). For classes no help is created for the private functions in the
private folder, but help is also created for all public get / constant
properties.
Syntax: deploy( source, destination, varargin)
Inputs:
-source: Can be a single M-file or a folder, also works for
packages and Classes
-destination: Has to be an empty folder
-varargin: The folowing options can be added:
'excludes' - the files to exclude, always excluded
is this file itself
'includes' - the additional files to deploy, e.g.
{'*.pdf', '*.png'}
'recursive' - default is true, can be set to false.
Packages and Class directories are
always included and cannot be
excluded
'includeDLL' - Dll's are by default included. To
exclude Dll's set this option to false
'includeMex' - Mex files are by default included, To
exclude Mex files, set this option to
false
'includeHiddenDirs - by default . presceded folders
and files are excluded by default,
set this option to true to
include . preceded folders,
e.g. .svn or .git
'purgeDestination' - ATTENTION, if this option is
set to true, the destination
will be deleted and all its
subdirectories without further
warning.
Outputs:
-none
Example:
deploy( 'myfun.m', 'for_public' ); % where myfun.m is a function and
for_public a folder
deploy( 'myproject', 'for_public' ); % where myproject is a folder
and for_public a folder
deploy('myproject', 'project_v1.0', 'recursive', true, ...
'includeHiddenDirs', true, 'purgeDestination', true, ...
'includes', {'*.pdf', '*.png'});
Other m-files required:
None
Other files required:
MATLAB
See also: pcode
Cite As
Eydrian (2024). Deploy pcoded Matlab Files (https://www.mathworks.com/matlabcentral/fileexchange/40595-deploy-pcoded-matlab-files), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Application Deployment > MATLAB Compiler >
- MATLAB > Software Development Tools > Toolbox Distribution > Adding custom doc >
Tags
Acknowledgements
Inspired by: deploypcode(source_dir, target_dir, varargin)
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.8.0.0 | destination was created even if no files to process
|
||
1.7.0.0 | Updated the description.
|
||
1.5.0.0 | Updated summary |
||
1.4.0.0 | added support for full recursion
|
||
1.1.0.0 | removed the prominent copyright as it not belongs there. I'm new to matlab central and I didn't really see where it has to go ;) |
||
1.0.0.0 |