Skip to main content

Direct dependencies

For direct dependencies, there will be one or more mtb files somewhere in your project (typically in the deps directory but could be anywhere except the libs directory). An mtb file is simply a text file with the extension mtb that has three fields separated by #:

  • A URL to a Git repository somewhere that is accessible by your computer, such as GitHub
  • A Git Commit Hash or Tag that tells which version of the library that you want
  • A path to where the library should be stored in the shared location (that is, the directory path underneath mtb_shared).

A typical mtb file looks like this:

https://github.com/cypresssemiconductorco/retarget-io/#latest-v1.X#$$ASSET_REPO$$/retarget-io/latest-v1.X

The variable $$ASSET_REPO$$ points to the root of the shared location - it is specified in the application's Makefile. If you want a library to be local to the app instead of shared, you can use $$LOCAL$$ instead of $$ASSET_REPO$$ in the mtb file before downloading the libraries. Typically, the version is excluded from the path for local libraries since there can only be one local version used in a given application. Using the above example, a library local to the app would normally be specified like this:

https://github.com/cypresssemiconductorco/TARGET_CY8CKIT-062S2-43012/#latest-v1.X#$$LOCAL$$/TARGET_CY8CKIT-062S2-43012
Note:
The examples above specify dynamic library versions (e.g. latest-v1.X). Normally in your application, you will want fixed library versions (e.g. release-v1.0.0). This behavior can be controlled using the Library Manager.
Last updated on