MIRA
|
MIRA is organized in Projects that contain Tools, Toolboxes and Domains. Each Project has the same basic directory structure:
All compiled binaries of the Project will be found in the "bin" folder (if not stated otherwise see Creating an executable component). All compiled libraries of the Project together with their Manifest file will be found in the "lib" folder (if not stated otherwise see Creating a library component).
All compiled and temporary build files are found in either build/debug
or build/release
depending on the build type (see Building Particular Targets).
If a Toolbox or Domain contains dependencies to external projects or libraries (which are not installed as general system components) these should be located in the "external" folder.
All Toolboxes reside in the "toolboxes" folder and all Domains are located in the "domains" directory.
Configuration files go to the "etc" folder. Include and source files will be located in their respective folder ("include" or "src"). Include files of Toolboxes should be stored in a meaningful sub directory of "include". It avoids ambiguities of include files if a module depends on multiple Toolboxes and allow the user to see from where he includes a file:
Documentation will be found in "doc".
Typically several sub-domains are grouped in a Domain (e.g. Different audio processing modules for recording, playback and editing will be grouped in an "audio" domain).
Configuration files go to the "etc" folder. Include and source files will be located in their respective folder ("include" or "src"). Documentation will be found in "doc".
Header files will reside in the respective include sub directory of the module they belong to. For Toolboxes they should be located in a meaningful sub directory of "include" to avoid ambiguities of include files (see Directory structure of Toolboxes).
Header files that add support for serialization to data structures from external libraries follow a special rule. They will be put in a sub directory to the serialization module. Their names are based on the name of the include file of the external library.
For example if one wants to add serialization support for Eigen
data types he will have to add a sub directory Eigen
in the include/serialization/adapters
directory. The header file will be called Eigen
to follow the Eigen
naming convention. This is because if an other person wants to use the serialization of Eigen
and has used Eigen
before he only has to change the include path: