Define Pathnames to Share Library Definition Files - MATLAB & Simulink (original) (raw)
Main Content
You can share a MATLAB® interface to a C++ library, for example by uploading the library definition files to GitHub®. If another publisher has the same C++ library version and file structure as you, then they can download the definition files and build the interface.
The paths to the files used to generate the interface, such as theInterfaceGenerationFiles
argument to the clibgen.generateLibraryDefinition function, contain file specifications based on the folder structure of your computer. To avoid hard-coded paths in the definition file, you can specify file paths relative to a starting path using the RootPaths name-value argument which is a dictionary. Then another publisher can build the interface by specifying the RootPaths
argument based on the starting path on their computer.
Share defineMylib.m
Library Definition File
This example shows how to create a library definition filedefineMylib.m
and associated data file MylibData.xml
to share with another publisher. The C++ library consists of a header fileschool.hpp
in folder C:\user1\libname
. For an example using multiple headers and libraries, see the RootPaths argument description.
To share with another publisher, create a RootPaths
dictionary argument with a key named pathKey
and set the value to"C:\user1\libname"
. Another publisher locates the header file by updating the pathKey
value to the start path of the library on their machine.
% Create RootPaths dictionary argument startpaths = dictionary; % Set key="pathKey" and value="C:\user1\libname" startpaths("pathKey") = "C:\user1\libname";
Identify Variables with Relative Pathnames with Keys in RootPaths
Dictionary
To specify school.hpp
in theInterfaceGenerationFiles
argument, create a string with thekey
name inside "<" and ">" tags.
The function uses the value specified for the key in a RootPaths
dictionary and creates the pathname C:\user1\libname\school.hpp
.
Create Library Definition Files
Set the RootPaths
argument.
clibgen.generateLibraryDefinition("/school.hpp", ... RootPaths=startpaths, ... InterfaceName="Mylib");
Share Library Files with Another Publisher
Share the library definition files defineMylib.m
andMylibData.xml
and provide path information to another publisher. In this example, each publisher uses the RootPaths
keypathKey
to locate the school.hpp
header file in their library folders.
Another Publisher Builds the Definition File
From your information, the other publisher locates the school.hpp
header file in the folder C:\user2\libname
on their computer. To set theRootPaths
key pathKey
to this folder, type:
libdef = defineMylib; libdef.RootPaths("pathKey") = "C:\user2\libname";
Build the definition file.