Transaction-Level Modeling Framework for Space Applications
SoCRocket is providing a repository manager as small layer on top of git. Hence the dependency structures projects in the scientific domain have the number of requirements in form of legal, copyright or simply API stability is rising. To counter these complexity SoCRocket will provide the ability to split project specific code from public code.
Moreover it provides the ability that different code can optionaly depend on each other.
Let's look at an example: First we fetch the SoCRocket Core Repository which provides us with the basic feature set and functinality:
$ git clone git@brauhaus.c3e.cs.tu-bs.de:socrocket-core.git socrocket $ cd socrocket
But we want to play with some video IO and build some nice filters for it. So we add the socrocket-media repository to socrocket:
$ ./waf repo add git@brauhaus.c3e.cs.tu-bs.de:socrocket-media.git
A new folder will appear in the main folder: media. It will contain all the sources from the media repository.
Building the Project is still the same. Just execute the following:
$ ./waf configure $ ./waf build --target=leon3mp.platform
Newly added components can be build as well by using --target
. Morover ./waf list
will list all targets from all repositories.
Repositories are simply git repositories and can be handled as such. See http://git-scm.com for information. The usual commit, push, pull cycles are allowd as well as all other diry voodoo.
The additions are that it you specify a git folder as a SoCRocket Repository waf will be aware of it. That means that in your code you can check for the availability of repositories:
Either in the wscript
:
Or in your SystemC Code:
To declare a SoCRocket Repository out of a git repository add a toplevel wscript with the following constant definitions at the top:
To manage installed repositories we export some more commands to use:
$ ./waf repo <command>
Here command can be: