An open API service indexing awesome lists of open source software.

https://github.com/stephanlachnit/mmeson

ccmake for Meson projects
https://github.com/stephanlachnit/mmeson

ccmake meson python python3 tui urwid

Last synced: over 1 year ago
JSON representation

ccmake for Meson projects

Awesome Lists containing this project

README

          

# mmeson

[![REUSE status](https://api.reuse.software/badge/github.com/stephanlachnit/mmeson)](https://api.reuse.software/info/github.com/stephanlachnit/mmeson)
[![CI status](https://github.com/stephanlachnit/mmeson/actions/workflows/build_test.yml/badge.svg)](https://github.com/stephanlachnit/mmeson/actions/workflows/build_test.yml)

TUI to configure Meson projects similar to `ccmake` for CMake projects

![](screenshots/screenshot.png)

## Installation

### Via pip

```sh
pip install mmeson
```

## Running

```sh
python3 -m mmeson path/to/builddir
```

It is not need to run it in the project's source folder, however you need to setup the project beforehand.

Changed items will start with a star, press `enter` to edit a filed and enter to exit editing (except fields of type
boolean or combo). Press `c` to configure and exit and `q` to exit without configuring.

Note: you can always set options via `meson configure path/to/builddir -Doption=value` in addition to `mmeson`. This
does not reconfigure the project though, this needs to be done via `meson setup --reconfigure path/to/builddir`. When
exiting `mmeson` with `c`, it combines both of these steps, while exiting with `g` does not reconfigure the project.
Note that this will happen automatically though when you run `meson compile`.

## Dependencies

- Python3 >=3.9
- [`urwid`](https://github.com/urwid/urwid)

## Contributing

Contributions are welcome, the code is well documented, especially the TUI part. You can find documentation of the
internal function and classes [here](https://stephanlachnit.github.io/mmeson/api/mmeson.html).

## ToDo-List

- Custom Widget for array editing (instead of writing string only edit array entries)
- Search function for build option
- Path completion via `TAB` when editing strings / arrays
- Unit tests and coverage report
- More elaborate error handling (e.g. array with choices)
- Fix workaround for colored output

## License

- Code: [EUPL-1.2](https://spdx.org/licenses/EUPL-1.2)
- Documentation: [CC-BY-SA-4.0](https://spdx.org/licenses/CC-BY-SA-4.0)

## Notable mentions

- [`cmeson`](https://github.com/proskur1n/cmeson)