
The missing CMake project initializer
cmake-init is a revolutionary CMake project initializer designed to streamline the creation of CMake-based projects. With an emphasis on simplicity, it enables users to generate FetchContent-ready projects while maintaining a clear distinction between developer and consumer targets. This tool is particularly beneficial for modern CMake users, as it ensures adherence to the latest standards and practices while automatically managing project configurations.
Whether you're working on a header-only library, a static/shared library, or any other type of executable, cmake-init offers an intuitive experience that minimizes setup time. By leveraging this initializer, developers can focus more on coding and less on configuration, allowing for a more productive development environment.
Easy Initialization: Simply press enter to create a correctly setup project tailored to your needs, whether it's an executable or a library.
FetchContent Ready: cmake-init ensures that generated projects are ready for FetchContent, allowing seamless integration of other libraries and dependencies.
Separated Targets: Cleanly divides developer and consumer targets, accommodating different requirements for testing, benchmarking, and deployment.
Modern CMake Compliance: Utilizes modern CMake standards (3.14+) to ensure that you are not burdened with outdated practices or examples.
Enhanced Developer Tools: Offers easy access to tools for code coverage, linting, static analysis, and dynamic analysis, promoting high-quality software development.
User-Friendly Choices: Provides simple prompts during project setup, making it easy for users to select the desired project type without confusion.
Community Engagement: Users can reach out for help in the dedicated #cmake channel on C++ Slack or via Discussions in the repository, fostering a supportive community.
Focused Scope: While not designed to cover every possible project structure, cmake-init delivers a straightforward solution for common use cases, making it a practical choice.
