project_options
cmake-init
Our great sponsors
project_options | cmake-init | |
---|---|---|
2 | 164 | |
320 | 1,812 | |
- | - | |
8.5 | 8.1 | |
12 days ago | 7 days ago | |
CMake | CMake | |
MIT License | GNU General Public License v3.0 only |
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.
project_options
-
CMake+Conan2 project template example repositories?
I had been using the project_options repository to bootstrap most of my CMake repositories, but it appears like this is not able to handle Conan2 (due to the usage cmake-conan, on a pre-2.0-compatible version of that repo).
-
The pool of talented C++ developers is running dry
- flags like "-fsanitize=address,leak,undefined -fanalyzer -Wthread-safety -D_FORTIFY_SOURCE=" should be baked in to a default "dev"/"debug" mode newbies shouldn't need to know/think about
Did you try project_options[0]? I recommend it to all newbies like me. Just set the "enable_developer_mode=true" and you get all that stuff for free.
> - I have to Google what headers cstd/std stuff comes from half the time
In Clion you can cmd+click on the symbol and it leads to the header.
Another recommended resource is https://github.com/cpp-best-practices/
[0]: https://github.com/aminya/project_options
cmake-init
-
CMake install schema for single- and multi-config generators
https://github.com/friendlyanon/cmake-init This is how you do CMake properly. If you deviate from its install rules you are highly likely to do something wrong.
-
cgen: another declarative CMake configuration generator
CMake itself is as declarative as a build systems need to be. For anything nontrivial, these "declarative" solutions all fall apart. Just use https://github.com/friendlyanon/cmake-init, learn CMake and you won't have any issues.
-
How does one actually build a C++ project
If you want something with a (mostly) Just Works experience then just use https://github.com/friendlyanon/cmake-init
- CMakeList.txt, add_executable vs. add_library vs. target_link_libraries vs. target_link_directories
- Check out my tasks.json for C++ of VScode
- Clang++ Halp
-
Putting libraries in program folder
For CMake basics check out the official "Getting started" tutorial: https://cmake.org/cmake/help/latest/guide/tutorial/index.html, as well as Introduction to Modern CMake. You can also get inspired by the CMake project generator cmake-init
- Recourses to help understand libraries/projects and setting them up?
-
How to Create a Modern C Project with CMake and Conan
You can just use https://github.com/friendlyanon/cmake-init to get a CMake + Conan C project ready to go with a short little command: cmake-init --c -e -p conan coolio
- CMake template
What are some alternatives?
cmake-registry - A cmake modules registry based on vcpkg
meson - The Meson Build System
void_switch - 3D printable magnetic separation contactless key switch and stabilizers (OpenSCAD files)
w64devkit - Portable C and C++ Development Kit for x64 (and x86) Windows
cupcake.cmake - CMake boilerplate for an opinionated project structure.
xmake - 🔥 A cross-platform build utility based on Lua
gui_starter_template - A template CMake project to get you started with C++ and tooling
fastbuild - High performance build system for Windows, OSX and Linux. Supporting caching, network distribution and more.
gz-cmake - A set of CMake modules that are used by the C++-based Gazebo projects.
ModernCppStarter - 🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
vcpkg-cmake-integration - Vcpkg autoinstaller for CMake: Fetch Vcpkg (with versioning), bootstrap Vcpkg, install packages from `vcpkg.json`-manifest or individually from within CMake
llvm-mingw - An LLVM/Clang/LLD based mingw-w64 toolchain