CppCMakeVcpkgTemplate
cmake-init-vcpkg-example
CppCMakeVcpkgTemplate | cmake-init-vcpkg-example | |
---|---|---|
1 | 19 | |
81 | 9 | |
- | - | |
5.5 | 5.6 | |
7 days ago | 22 days ago | |
CMake | CMake | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CppCMakeVcpkgTemplate
-
CMakePresets.json and vcpkg based GitHub Action workflows for C++
I'd like to share a minimal C++ project template https://github.com/lukka/CppCMakeVcpkgTemplate based on CMakePresets.json and vcpkg manifest mode. It can be of great help to understand how to leverage CMake's presets and vcpkg's manifest, both on your local machine as well on remote builds run on workflows. Enjoy!
cmake-init-vcpkg-example
-
Clang-tidy ignore third party
If your dep is not on any of those, then you can write your own port with vcpkg very easily like this.
-
How would you create/maintain a new c++ project using modern tools/practices?
Are they only on git(hub)? You can write a vcpkg overlay port (example) or use FetchContent if the projects are FetchContent ready in a way that doesn't force FetchContent on people trying to build the project (example).
-
CMake/Make problem when compiling C++
Take a look at cmake-init, vcpkg and this example that shows how to pull dependencies from git(hub) using vcpkg's overlay ports.
-
How to download libraries with vcpkg?
cs50 doesn't appear to be present in the MS repo. No problem, you can write your own overlay port. You can find an example for that here: https://github.com/friendlyanon/cmake-init-vcpkg-example
-
Managing Newlib as a Project Dependency
You can take a look at vcpkg or Conan. Maybe vcpkg could be simpler here, because overlay ports are simpler to write than setting up Artifactory for Conan.
-
Best way to manage dependencies with c++?
Conan and vcpkg are the only options. I use them both, depends on what kinds of dependencies I want to pull. vcpkg is easier to setup custom one-off dependencies with using overlay ports, while Conan is faster at things if your profile fits one that has a pre-built binary in CCI. Both are trivial to integrate with a CMake project, see these examples for Conan and vcpkg.
-
Libraries
Here is an example that shows you how to write your own ports for libraries that don't have one provided by vcpkg. The alternative is doing it manually, but eh.
-
CMakePresets.json and vcpkg based GitHub Action workflows for C++
As part of the cmake-init examples I also have an example showing vcpkg integration with a CMake project with exact instructions on what that takes, which also involves CI.
-
Barbarian, an open and distributed Conan package index!
Overlay ports.
-
Problem with imported library
IMPORTED targets have directory scope, they aren't global like the other target types. Depending on what your project's type is and how it's used, the correct answer can vary from just requiring a path to be passed on the CLI to proper package management usage (e.g. vcpkg)
What are some alternatives?
vcpkg_template - Simple cmkr template to get you started with vcpkg right away.
CPM.cmake - 📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
cpp-project - Boiler plate template for C++ projects, with CMake, Doctest, Travis CI, Appveyor, Github Actions and coverage reports.
steam-runtime - A runtime environment for Steam applications
Vcpkg - C++ Library Manager for Windows, Linux, and MacOS
conan-center-index - Recipes for the ConanCenter repository
vcpkg-cmake-integration - Vcpkg autoinstaller for CMake: Fetch Vcpkg (with versioning), bootstrap Vcpkg, install packages from `vcpkg.json`-manifest or individually from within CMake
Folly - An open-source C++ library developed and used at Facebook.
ModernCppStarter - 🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
CMake - Mirror of CMake upstream repository
Jenkins - Jenkins automation server
gentoo - [MIRROR] Official Gentoo ebuild repository