Dependency Format#
The APP_DEPENDENT_MODULES and LIB_DEPENDENT_MODULES variables hold the list of module dependencies
for an application, module or static library. The format is flexible to support releases to external users
and also internal development practices.
External releases use this format:
lib_abc(1.2.3)get lib_abc tag v1.2.3 from github.com/xmos; a check is made to see if SSH key access is available, otherwise HTTPS is used. The āvā character is prepended so the released tag must be v1.2.3
For internal development, there are ways to specify the location and version.
Firstly the location can be specified at the beginning of the string:
lib_abcuses
github.com/xmosas the location from which to clone lib_abc; same behaviour as format 1 for SSH/HTTPS access
myuser/lib_abcclones lib_abc from
github.com/myuser; same behaviour as format 1 for SSH/HTTPS access
othergitserver.com:myuser/lib_abcSSH access to clone
git@othergitserver.com:myuser/lib_abc
https://othergitserver.com/myuser/lib_abcclones this URL via HTTPS, without checking for SSH access
Then the version can be specified at the end of the string:
lib_abcno version specified, gets the head of whichever branch has been configured as the default
lib_abc(v1.2.3)acceptable alternative to format 1, gets tag v1.2.3
lib_abc(develop)gets the head of the develop branch
lib_abc(4fa35fe)gets commit 4fa35fe
Any of formats 2-5 can be combined with any of 6-9 to specify both the location and the version. For example:
set(APP_DEPENDENT_MODULES "myuser/lib_abc(develop)"
"othergitserver.com:myuser/lib_foo(1.0.0)")
check out the head of the develop branch of lib_abc from
github.com/myuser, using an SSH key if available, otherwise via HTTPS.check out tag v1.0.0 of lib_foo, cloned from
othergitserver.com/myuservia SSH access.