Skip to content

A cross-platform base layer for configuring the system

Notifications You must be signed in to change notification settings

KanoComputing/mercury

Repository files navigation

Introduction

CodeFactor

Mercury provides a cross-platform base layer for configuring the system.

Etymology

"Why Mercury?" I hear you say. Primarily because Mercury was the Roman god of boundaries, communication and travel which aligns with this project's main goals:

  • Boundaries: Project Mercury will form the boundary between hardware and what a consumer wants to do, abstracting away platform-specifics.
  • Communication: Project Mercury provides a translation abstraction layer between the consumers and the base hardware, regardless of what that may be.
  • Travel: Project Mercury is designed to be cross-platform from the beginning, allowing the same apps to be delivered across multiple different platforms by providing the base abstraction upon which all functionality can be leveraged.

Additionally, Project Mercury was the first United States human spaceflight program and likewise this is our first foray into colonising other planets (well, hardware).

Finally, Mercury is an element known to send people mad when they inhale too much of the fumes: hopefully not a sign of things to come with this project.

Getting Started

The technologies which are used in this project are:

c++11
cmake
conan
cpplint
doxygen
googletest
lcov
make
qt
sphinx

Install the tools

OS X

pip3 install -r requirements-dev.txt
brew install cmake doxygen lcov qt

Linux

pip3 install -r requirements-dev.txt
apt-get install cmake doxygen lcov qt

Building and running

Build

make

CMake (3.10.0 minimum to allow us to use some of the newer goodies) is used to build both the project and the tests.

If your linux system is based on Debian Stretch, you can use the backports repositories to pull the latest CMake version. Alternatively, you can point your APT sources to Debian Buster.

Test

make test

Tests are written with Google Test. Conan will handle installing all the dependencies here. Coverage reports are generated with lcov and a report can be found in coverage/index.html after running the tests.

make test-library will only cover the core library tests, explained above make test-python to run the Python3 tests only. Note that these tests can also run on the target installation system. You need to have make and python-pytest tools installed.

Lint

make lint

C++ linting is performed by the CppLint tool. The configuration is in the CPPLINT.cfg file.

Automatic checking of the linting is performed by CodeFactor for your convenience.

Documentation

make docs

The base documentation files can be found in the docs/source directory.

C++ code is marked up with Doxygen which integrates with Sphinx using Breathe.

About

A cross-platform base layer for configuring the system

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •