Coder Social home page Coder Social logo

gerhobbelt / cpptemplate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ben1980/cpptemplate

0.0 1.0 0.0 557 KB

A template project (library and executable) for C++ projects with cmake, ctest, vcpkg, circleci, and automated document deploymend via doxygen to gh-pages

Home Page: https://ben1980.github.io/cpptemplate/

License: MIT License

C++ 16.75% CMake 8.90% Dockerfile 8.27% XSLT 62.56% Python 3.52%

cpptemplate's Introduction

cpptemplate {#mainpage}

A C++ GitHub template project.

CircleCI CodeFactor Grade Documentation License

A C++ GitHub template project consisting of a circleci build pipeline utilising cmake, ctest, vcpkg, and an automated documentation deployment via GitHub-Actions at gh-pages branch.

Getting Started

To build the project:

  • Setup toolchain ~/PROJECTNAME/build/cmake .. -DCMAKE_TOOLCHAIN_FILE={YOUR_PATH_TO_VCPKG}/scripts/buildsystems/vcpkg.cmake
  • Build ~/PROJECTNAME/build/cmake --build . --config Release
  • Execute the tests ~/PROJECTNAME/build/ctest
  • You can execute the program by ./build/app/PROJECTNAME

To update the docker image:

  • Edit the Dockerfile to your needs
  • Build docker image sudo docker build -t IMAGENAME .
  • Tag docker image with dockerhub username sudo docker tag IMAGENAME:TAG DOCKERHUBUSERNAME/IMAGENAME:TAG
  • Push docker image to dockerhub sudo docker push DOCKERHUBUSERNAME/IMAGENAME:TAG

To change/add dependencies:

  • Edit the vcpkg part of .cirlceci/config.yml to your needs
- run:
    name: Install vcpkg dependencies
    command: ./../../vcpkg/vcpkg install DEPENDENCIES

Prerequisites/Dependencies

  • cmake – Open-Source, cross-platform build tool
  • fmt – External library used for formatting and printing results
  • doctest – Feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD
  • vcpkg – C++ Library Manager for Windows, Linux, and MacOS
  • python 3 – A programming language used to convert ctest results with a xml transformation (xslt)

Release History

  • 1.1.0
    • CHANGED: README.md extended and several links corrected
    • CHANGED: Dockerfile cleaned up which also lead to a slightly smaller docker image
  • 1.0.0
    • ADD: Customized docker image for C++/cmake builds with vcpkg as dependency manager
    • ADD: GitHub action to generate documentation
    • ADD: GitHub project template

Meta

Documentation can be found at https://ben1980.github.io/cpptemplate/

Benjamin MahrGitHub
                          – LinkedIn
                          – Twitter
                          – Mail

Distributed under the MIT license. See LICENSE for more information.

Contributing

  1. Fork it (https://github.com/Ben1980/cpptemplate/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Acknowledgments

cpptemplate's People

Contributors

ben1980 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.