Repo-Init is a powerful, production-ready CMake template designed to kickstart your C++ applications with enterprise-grade features built-in. Say goodbye to boilerplate code and hello to modern, robust software development!
๐ง Requires: C++17 supported compiler
๐ก Perfect for: Microservices, CLI tools, system applications, and performance-critical software
๐ก๏ธ Crash ProtectionAutomatic minidump generation with Crashpad Never lose critical debugging information | ๐ Advanced LoggingMulti-output logging with Spdlog File rotation โข Syslog โข Colorized console | ๐ Service IntegrationSentry โข Grafana Loki โข Prometheus Real-time monitoring & alerting |
โก Performance Metrics
| ๐ Network Ready | ๐ Developer Experience
|
๐ฌ Questions? Issues? Contributions? Feel free to ask, use, and report any bugs you encounter! We โค๏ธ community feedback.
Our carefully crafted CMake modules provide powerful build automation:
Module | ๐ฏ Purpose | โจ Benefits |
---|---|---|
CodeCoverage | Detects and enables gcovr | ๐ Automatic test coverage reports |
CompilerSecurityOptions | Enables/Disables secure compiler flags | ๐ก๏ธ Hardened binary security |
Doxy | Finds Doxygen package and prepares docs | ๐ Auto-generated documentation |
GenerateSymbols | Adds target for symbol file generation | ๐ Enhanced debugging with minidumps |
GitVersion | Gets SHA1 hash of current commit | ๐ท๏ธ Version tracking and build reproducibility |
GraphViz | Finds GraphViz and dot executable | ๐จ Visual dependency graphs |
๐ก Tip: All scripts should be executed from the top-level directory
Script | ๐ Function | ๐ Description |
---|---|---|
firstName.sh | Name Changer | Replaces placeholder names throughout the project |
crashpad_manual_upload.py | Manual Minidump Uploader | Uploads bulk of minidump files in given directory |
dump_syms.py | Symbol Dumper | Generates symbol files for crash analysis |
๐ฅ Integrated DependenciesBuilt and bundled automatically
| ๐ ๏ธ Development DependenciesFor building and testing only
๐ System DependenciesInstall via package manager (apt/dnf/brew) |
๐ Want to see the full picture? Check out our complete dependency graph!
Our test suite requires some Python dependencies for comprehensive testing. Here's how to set them up:
๐ Quick Setup | ๐ Required Dependencies
โ ๏ธ Important Notes
|
Target | ๐ Command | ๐ Description |
---|---|---|
all | cmake --build . | Builds the complete project with all components |
coverage | cmake --build . --target coverage | Generates comprehensive test coverage reports |
docs | cmake --build . --target docs | Creates beautiful documentation with Doxygen |
dependency-graph | cmake --build . --target dependency-graph | Visualizes project dependencies with GraphViz |
package | cmake --build . --target package | Creates distribution packages (DEB/RPM + systemd service) |
test | ctest . --parallel | Runs the complete test suite with GoogleTest |
๐ก Pro Tips:
- For packages, specify your preferred format with
-DCPACK_GENERATOR="DEB"
or"RPM"
- Ensure Python virtual environment is activated before running tests!
๐ก Important: Re-run CMake configuration (
cmake -B build
) after changing any options
๐งช Testing & Quality Assurance
๐ Release & Distribution
| ๐ก Quick Examples โก Pro Tips
|
๐ Quick Setup
โจ What You Get
| ๐ธ Live Dashboard Preview![]() Beautiful, responsive, and information-rich monitoring |