Introduction

When setting up a C++ Software project multiple tasks besides writing the actual C++ code arise.

  • Organizing the code-base into smaller packages.

  • Versioning of the packages.

  • Automatic acquisition of external software dependencies.

  • Creating package archives that can be consumed by others.

  • Setting up a build pipeline that also does additional tasks like running automated test, static/dynamic analysis, generate documentation, etc.

  • Setting up a CI-server to run the pipeline.

  • Setting up a homepage for the project that hosts the documentation.

The CMakeProjectFramework tries to solve the above mentioned problems by using a combination of common open source tools from the C++ ecosystem. The third party tools used by the CMakeProjectFramework are:

Required

  • CMake (meta-buildsystem)

  • Git (code version control system)

Optional

Using the CPF should relieve you of writing your own higher level CMake code or other additional scripts to implement pipeline tasks. It can additionally provide a Jenkins CI infrastructure that is (in the future) completely generated from text-files.