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:

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 project
  • easy-settings.cmake: Symbolic link to the easy-settings.cmake file in src/main/projects/my_projects
  • init-build.sh: Symbolic link to the default init-build.sh script in src/main/tools/cmake-tool/init-build.sh. This file determines based on the easy-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.