Metadata-Version: 2.4
Name: cmakestrap
Version: 0.2.0
Summary: Simpler CMake project initializer script for C++
Project-URL: Repository, https://github.com/mrizaln/cmakestrap
Project-URL: Issues, https://github.com/mrizaln/cmakestrap/issues
Author-email: Muhammad Rizal Nurromdhoni <mrizaln2000@gmail.com>
Maintainer-email: Muhammad Rizal Nurromdhoni <mrizaln2000@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: c++,cmake,init
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# cmakestrap

Simpler CMake project initializer script for C++ (with Conan).

## Motivation

There are many project initializer script for C++ with CMake, the most famous one is [cmake-init](https://github.com/friendlyanon/cmake-init). Unfortunately, it generates too much files for my liking. Looking at this [issue](https://github.com/friendlyanon/cmake-init/issues/75), that has been up for 2 years, it seems that the author does not have the time to provide an option to generate a simpler, thinner, project structure. This script is an attempt to provide that.

## Installation

cmakestrap is available from [PyPI](https://pypi.org/project/cmakestrap/):

```
pip install --user cmakestrap
```

## Dependencies

- Python 3.12+
- CMake 3.16+ (might need higher version for newer C++ features)
- Conan 2 (for dependency management)

## Features

This script provides a simple way to bootstrap a C++ project with CMake (build system) and Conan (dependency management). You can generate projects in 3 mode:

- Executable mode (default): generate a traditional C++ project structure with headers and such.
- Library mode: generate a header only library project (C++20).
- Modules mode: generate a CMake module project (requires CMake 3.28+ and supported compilers).

> Initializing a simple hello world project:

```
cmakestrap hello
```

> To see the available options, run the script with the `-h` flag:

```
cmakestrap -h
```
