| Crates.io | cppup |
| lib.rs | cppup |
| version | 0.1.0 |
| created_at | 2025-10-30 19:32:28.287411+00 |
| updated_at | 2025-10-30 19:32:28.287411+00 |
| description | An interactive C++ project generator |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1908860 |
| size | 210,909 |
A powerful and interactive C++ project generator written in Rust. It helps you quickly set up new C++ projects with modern best practices and your preferred configurations.
cargo build
cargo test
Generate code coverage reports locally:
# Install cargo-tarpaulin
cargo install cargo-llvm-cov
# Print the coverage summary to stdout
cargo llvm-cov
# Open coverage report
cargo llvm-cov --open
This project includes pre-commit hooks that run code formatting and linting checks before each commit. To install them:
./hooks/install-hooks.sh
The pre-commit hook will automatically:
cargo fmtcargo clippyIf you need to commit without running the hooks (not recommended), use:
git commit --no-verify
Simply run:
cppup
Follow the interactive prompts to configure your project.
Create a new executable project with specific settings:
cppup --name my-project \
--description "My awesome C++ project" \
--project-type executable \
--build-system cmake \
--cpp-standard 17 \
--package-manager conan \
--test-framework doctest \
--license MIT \
--quality-tools clang-format,clang-tidy \
--non-interactive
--name: Project name--description: Project description--project-type: executable or library--build-system: cmake or make--cpp-standard: 11, 14, 17, 20, or 23--package-manager: none, conan, or vcpkg--test-framework: none, doctest, gtest, catch2, or boosttest--license: MIT, Apache-2.0, GPL-3.0, or BSD-3-Clause--quality-tools: Comma-separated list of clang-format, clang-tidy, cppcheck--non-interactive: Skip interactive prompts--path: Output directory (default: current directory)--git: Initialize git repository (default: true)Generated project structure for an executable:
my-project/
├── src/
│ └── main.cpp
├── include/
├── assets/
├── tests/ # If testing is enabled
├── build/
├── CMakeLists.txt # Or Makefile
├── .gitignore
├── LICENSE
└── README.md
For a library:
my-project/
├── src/
│ └── lib.cpp
├── include/
│ └── my-project.hpp
├── examples/
├── tests/ # If testing is enabled
├── build/
├── CMakeLists.txt # Or Makefile
├── .gitignore
├── LICENSE
└── README.md
This project is licensed under the MIT License - see the LICENSE file for details.
Nauris Linde naurislinde@gmail.com
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.