copier-cpp-cmake is project template based on copier tool.
- The main goal of this project is to provide an easy way to start with development of your new
C++project and focus on the problem you want to solve instead of project structure/code formatting/basicCIand other common "quality of life" issues. - The secondary goal is to make this project as flexible as reasonable. Allowing people to use different tools as they usually have different needs. Supporting them in updating of their projects when new tools are available or preferred after initial creation during development process.
- The third important aspect is to provide good
defaultsfor each choice user can make (default to well established tools) so that less experienced users can use them as good starting point in theirC++adventure.
What is not a goal of the project:
- Currently, it is not a goal to help you install/maintain all necessary tools on your machine. The project provides
dockerimages forCI/CDwhich can be used during development - but taking care of having properly installed tools is your responsibility.
WARNING
Currently, project is still in active development and until version
1.0.0breaking changes may occur unexpectedly.
Pythonversion3.7or newer.copierversion6.0.0or newer andcopier-templates-extensions.cmakewith reasonably new version (3.xx)conanfor providing dependencies (vcpkgto be supported in future)- compiler of your choice
python3 -m pip install cmake copier copier-templates-extensions conanTo start project generation simply use command:
copier git@github.com:MaciejPatro/copier-cpp-cmake.git .To update project use command:
copier update <project_dir>More information you can find on website: https://maciejpatro.github.io/copier-cpp-cmake/
-
github-pagesintroduced - support for
vcpkg - support for
WindowsOS - choice of providing own
namespacefor the project instead of defaulting toproject_slug - automated deployment of docker images provided in this repository
- support for installation of exporting the software as packages (
deb,rpm,tgz) - support for
conanpackage creation -
ci/cdimprovements - deployment of tagged releases support -
clang-tidysupport -
clang-formatas part of CI (possibly) - periodic updates for supported standards/compiler versions
- much more...