Skip to content
Snippets Groups Projects
Select Git revision
  • f3e4e881014887af3d4f4d715c3f95821954e321
  • main default protected
  • convert-cookiecutter
  • expand-documentation
  • enable-security-dashboard
  • fix-clang-tidy
6 results

cpp-project

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • Mark de Wever's avatar
    Merge branch 'CWG-10-skeleton-for-C++' into 'main'
    Mark de Wever authored
    CWG-10 Skeleton C++.
    
    See merge request !1
    f3e4e881
    History

    C++ project

    An example repository of an CI/CD pipeline for building, testing and deploying a C++ project.

    Description

    The repository can be used as a basis for new projects using C++ within ASTRON. The code is intended to be copied in a new repository and used as basis for the new project. After copying the code needs to be adjusted for the specific project. The template offers:

    • CI jobs for building, testing, and generating documentation

      • A basic Docker file to be used in the CI
      • A CMake project skeleton
      • A Doxygen and Sphinx skeleton for documentation
      • Formatting scripts for the code

    Note: The project is intended to be used for C++ projects without Fortran code. At the moment of writing there is no Fortran support for Ninja. This means the project needs to be changed to use make.

    Getting started

    • Clone the project in the directory $repo
    • Install all dependencies as listed in ci/ubuntu_22_04-base
    • Create the project: cmake -DBUILD_TESTING=ON -H$repo -B$repo/build -G Ninja
    • Build the project: ninja -C $repo/build

    Contributing

    To contribute, please create a feature branch and a "Draft" merge request. Upon completion, the merge request should be marked as ready and a reviewer should be assigned.

    License

    This project is licensed under the Apache License Version 2.0.