cmake-init-fetchcontent
gui_starter_template
cmake-init-fetchcontent | gui_starter_template | |
---|---|---|
4 | 19 | |
2 | 2,391 | |
- | - | |
1.8 | 3.4 | |
about 2 years ago | about 1 year ago | |
CMake | CMake | |
- | The Unlicense |
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-fetchcontent
-
CMake 3.24 has support for dependency providers
You can see that in action here: https://github.com/friendlyanon/cmake-init-fetchcontent This example has the idiomatic find_package(headeronly REQUIRED) call in the CMakeLists.txt, but when configuring ${sourceDir}/cmake/find is added to CMAKE_MODULE_PATH, so the FetchContent code is run to "find" the dependency. There are comments to further explain this.
-
SimpleBLE - Cross-platform BLE library for Windows, Linux and MacOS/iOS
Please consider using https://github.com/friendlyanon/cmake-init before this has any significant amount of users. There is an example that shows you how to still rely on FetchContent as an opt-in.
-
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-init - The missing CMake project initializer, now with Conan and vcpkg templates!
This came up somewhere else, but I created an example repo that idiomatically uses find_package and an opt-in find module to FetchContent a dependency from GitHub: https://github.com/friendlyanon/cmake-init-fetchcontent
gui_starter_template
-
I am finding it incredibly hard to write software in CPP. Where can I get a book for software development in CPP ?
Was checking that as well, can't find it indeed. I would recommend looking into the following: https://github.com/cpp-best-practices/gui_starter_template
-
Collecting the best C++ practices
gui_starter_template. This is a C++ Best Practices GitHub template for getting up and running with C++ quickly.
-
Not adopting newer C++ standards
Next to language versions, spend time setting up your build system (CMake?) with all bells and whistles. You want unit tests, clang-tidy, include-what-you-use, sanitizers, fuzzing, clang-format, package managers. Just take a look at https://github.com/cpp-best-practices/gui_starter_template
-
Good repos for beginners to browse that follow best modern C++ practices (including testing, static analysis etc...)
https://github.com/cpp-best-practices/gui_starter_template from Jason Turner (aka lefticus) is quite a popular one (2.1k stars in Github)
-
The pool of talented C++ developers is running dry
I actually just tried to play around with what seems to be a "modern c++" boilerplate project.
It uses CMake, conan for packaging, clang-tidy and cpp-check, and has templates for fuzz and unit testing[1].
I found it because qtcreator and kdevelop were weirdly clunky and created partly broken qt projects and I figured I wanted to add a package manager and qt to the mix.
The template looks really fancy, but it's so incredibly slow, to the point of being unusable.
It's a ramble yes. But the point is modern C++ tools seem to have added some niceties to the language, but they also brought more of the main C++ issues, i.e. slow compile times and nasty boilerplate in the build process. Yes, I realize CMake isn't modern and there are a bunch of new build tools.
[1] https://github.com/cpp-best-practices/gui_starter_template
-
clang-tidy: Which check flags you typically use?
Clang-tidy file of the C++ Project Template
- Ask HN: Who is using C++ as the main language for new project?
-
Package and project management in C++
For cmake i find this useful: https://cliutils.gitlab.io/modern-cmake/ https://github.com/cpp-best-practices/gui_starter_template
-
How would you create/maintain a new c++ project using modern tools/practices?
Jason Turner (known from cppcast) has following project: https://github.com/cpp-best-practices/cpp_starter_project
-
Recommendations for modern C++ project structures
this is a cpp_question, but anyway, I think this is exactly what you're looking for. Credits go to Jason Turner.
What are some alternatives?
SimpleBLE - SimpleBLE - the all-in-one Bluetooth library for MacOS, iOS, Windows, and Linux.
ModernCppStarter - 🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
SimpleBluez - A simple C++ wrapper around Bluez with a commercially-friendly licence.
sanitizers - AddressSanitizer, ThreadSanitizer, MemorySanitizer
cmake-init-vcpkg-example - cmake-init generated executable project with vcpkg integration
honggfuzz - Security oriented software fuzzer. Supports evolutionary, feedback-driven fuzzing based on code coverage (SW and HW based)
cmake-init-use-pkg-config - Using a dependency that does not support clients using CMake
json - JSON for Modern C++
brainflow - BrainFlow is a library intended to obtain, parse and analyze EEG, EMG, ECG and other kinds of data from biosensors
windmap
SimpleDBus - A simple C++ wrapper around DBus with a commercial-friendly licence.
Catch - A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)