All Projects → Ben1980 → cpptemplate

Ben1980 / cpptemplate

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

Programming Languages

XSLT
1337 projects
C++
36643 projects - #6 most used programming language
CMake
9771 projects
Dockerfile
14818 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to cpptemplate

CDT-plusplus
Causal Dynamical Triangulations in C++ using CGAL
Stars: ✭ 49 (+63.33%)
Mutual labels:  doxygen, vcpkg
react-typescript-starter
Minimalist React 18 starter template with TypeScript ⚛
Stars: ✭ 72 (+140%)
Mutual labels:  template-project
terraform-aws-s3-bucket
Terraform module that creates an S3 bucket with an optional IAM user for external CI/CD systems
Stars: ✭ 138 (+360%)
Mutual labels:  circleci
gradle-circle-style
🚀🚀🚀MOVED TO Baseline
Stars: ✭ 28 (-6.67%)
Mutual labels:  circleci
terraform-provider-circleci
Terraform provider for CircleCI
Stars: ✭ 94 (+213.33%)
Mutual labels:  circleci
ci-npm-update
(no longer used by @bitjourney)
Stars: ✭ 41 (+36.67%)
Mutual labels:  circleci
Norimaki
🌀 Android client for Circle CI
Stars: ✭ 19 (-36.67%)
Mutual labels:  circleci
MirrorCache
Download Redirector
Stars: ✭ 24 (-20%)
Mutual labels:  circleci
reveal-template
Simple reveal.js template with mathjax support and no node or npm dependencies, just a good old Makefile
Stars: ✭ 20 (-33.33%)
Mutual labels:  template-project
ci-configuration-examples
This repository makes it easy to run your MATLAB tests on some of the most common CI platforms. The configuration files take care of setting up MATLAB and automatically executing your MATLAB tests.
Stars: ✭ 52 (+73.33%)
Mutual labels:  circleci
dockerfiles
Dockerfiles I use for development
Stars: ✭ 64 (+113.33%)
Mutual labels:  gh-pages
kanjigrid
A web-app displaying the 2200 kanji characters taught in James Heisig's "Remembering the Kanji", 6th edition.
Stars: ✭ 37 (+23.33%)
Mutual labels:  gh-pages
scikit-ci
Simpler and centralized CI configuration for Python extensions.
Stars: ✭ 15 (-50%)
Mutual labels:  circleci
cimg-node
The CircleCI Node.js Docker Convenience Image.
Stars: ✭ 35 (+16.67%)
Mutual labels:  circleci
cart
Fetch build artifacts from CircleCI.
Stars: ✭ 21 (-30%)
Mutual labels:  circleci
phpboilerplate
PHP boilerplate with composer psr-4, phpunit and travis-ci.
Stars: ✭ 15 (-50%)
Mutual labels:  circleci
flask-vue-project-seed
SPA quick start using Python Flask and Vue.js. Containerized with Docker.
Stars: ✭ 27 (-10%)
Mutual labels:  template-project
tiller-circleci
Deploy Trellis, Bedrock and Sage via CircleCI
Stars: ✭ 14 (-53.33%)
Mutual labels:  circleci
cibuildwheel
🎡 Build Python wheels for all the platforms on CI with minimal configuration.
Stars: ✭ 1,350 (+4400%)
Mutual labels:  circleci
deal2lkit
A ToolKit library for deal.II
Stars: ✭ 16 (-46.67%)
Mutual labels:  doxygen

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].