Architecture
Folders
The goal of this document is to give an overview about the folder architecture of this repository and explain how the different parts are imbricated between them.
This repository is structured like below:
.
├── agent
├── docs
├── externals
├── libraries
├── platform
└── tests
Application sources
Application sources are necessary to build the final binary to be executed on the target. It is composed by 4 main folders:
externalscontains the third parties used in this project.FetchContentfromcmakeshould be used to retrieve them.- An exception can be made if it is a light header-only library and may be placed directly into its folder.
platformincludes all the supported platform and the platform-specific code. Please refer to Platform documentation.librariescontains the internal libraries to be used as API by the agent. It shall be platform-agnostic and it is organized like below:
libraries
├── myLib
│ ├── CMakeLists.txt
│ ├── include
│ │ └── myLib
│ │ └── foo.h
│ └── foo.cpp
├── others...
└── CMakeLists.txt
agentis the main application to be executed on the target and will build as an executable. Like the library, it shall be platform-agnostic and should use theplatformsources to execute specific behaviors.
The following schema describes the relationships between these modules.
Unit tests
tests: cf. Unit Tests documentation.
Documentation
docs: contains the project documentation.