Project Structure - lulu98/projects-with-sel4 GitHub Wiki
Project Structure
To get a better understanding on how to build your own project, the following page is a good starting point:
The project structure of this repository is mainly influenced by the following repositories:
- https://github.com/seL4/sel4test-manifest
- https://github.com/seL4/camkes-manifest
- https://github.com/seL4/sel4-tutorials-manifest
This repository features the following layout:
|__ resources
|__ src
|__ build.sh
|__ test.sh
|__ build-dependencies
|__ main
| |__ kernel/
| |__ projects/
| | |__ my_projects/ # directory featuring my applications
| | |__ ...other libraries...
| |__ tools/
| |__ easy-settings.cmake
| |__ griddle
| |__ init-build.sh
|
|__ test
|__ linter
|__ unit_tests
resources/
This directory holds all the required resources, e.g. boot files, for different boards (at the moment only RPi4).
src/build-dependencies/
This repository can be used for building and testing purposes and spins up a Docker container with the required build dependencies already installed for seL4/CAmkES builds.
src/build.sh
Builds all the applications in src/main/projects/my_projects/
for different platforms.
src/test.sh
Builds and tests all the applications in src/main/projects/my_projects/
for different platforms.
src/main/
This directory defines a wrapper around the seL4 microkernel and supporting libraries including CAmkES.
Build files
In the src/main/
directory there are the following build files:
griddle
: not important for this projecteasy-settings.cmake
: Symbolic link to theeasy-settings.cmake
file insrc/main/projects/my_projects
init-build.sh
: Symbolic link to the defaultinit-build.sh
script insrc/main/tools/cmake-tool/init-build.sh
. This file determines based on theeasy-settings.cmake
in which directory the build process should be started, i.e.src/main/projects/my_projects
.
src/main/projects/my_projects
Custom applications for this project.
src/test/
This directory defines linters and test infrastructure for my project.