cmake-init-gif-engine
cmake-init-vcpkg-example
cmake-init-gif-engine | cmake-init-vcpkg-example | |
---|---|---|
12 | 19 | |
14 | 9 | |
- | - | |
0.0 | 5.6 | |
about 2 years ago | 19 days ago | |
C | CMake | |
- | - |
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.
cmake-init-gif-engine
-
How can you start a codebase that is portable to other microcontrollers?
While not embedded, I have an example that illustrates what everyone else said.
-
Managing Newlib as a Project Dependency
If that doesn't suit your tastes, then maybe just a regular superbuild to orchestrate the dependency and hook it to your project.
-
What advantage do I get if I use a build system?
This project makes use of a superbuild for its fuzzing. I think I should make another example repo that examplifies source generation specifically using a superbuild.
-
C Project template
There is also cmake-init, which generates C projects as well. You can check one such example here, which is also the example to show how to fuzz test a CMake project.
-
Make folder show up in IDE
VS is being stinky and flattens the folder tree? You can solve that as well, see this example.
-
execute_process and toolchain file?
Use a superproject approach if you want to have a code generator. SerenityOS moved to a superbuild structure exactly because having additional tools built in a single build simply does not work.
-
linking multiple projects, how to improve the workflow?
Use a superproject instead of vendoring like you are doing it now. Note that the changes from this commit are merely for convenience, because you don't have to setup RPATH info, but if you are developing Windows, you'll have to populate your PATH with the paths to DLLs either way.
-
What is your approach to testing?
Fuzzing: if your program takes any sort of arbitrary input and you aren't fuzzing, then you have broken software
-
How do I get tests to compile and run on Windows?
That CMake code is terrible. Please take a look at this exmaple to see:
-
Valgrind alternative on M1 Mac/VSCode?
Well since others already mentioned sanitizers, I have an example repository that has sanitizer usage and fuzzing, among many other things.
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?
ultimatepp - U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).
CPM.cmake - 📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
meson - The Meson Build System
steam-runtime - A runtime environment for Steam applications
cmake-init - The missing CMake project initializer
conan-center-index - Recipes for the ConanCenter repository
Folly - An open-source C++ library developed and used at Facebook.
CMake - Mirror of CMake upstream repository
Jenkins - Jenkins automation server
gentoo - [MIRROR] Official Gentoo ebuild repository
cmake-init-fetchcontent - Example for optionally vendoring using FetchContent