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
Zitieren als
Eydrian (2024). Deploy pcoded Matlab Files (https://www.mathworks.com/matlabcentral/fileexchange/40595-deploy-pcoded-matlab-files), MATLAB Central File Exchange. Abgerufen .
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- Application Deployment > MATLAB Compiler >
- MATLAB > Software Development Tools > Toolbox Distribution > Adding custom doc >
Tags
Quellenangaben
Inspiriert von: 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!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
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 |