Repository navigation
Releases: safaid-yuragi/cmate
Release list
cmate v1.1
cmate v1.1 – Stable Release
We are pleased to announce the first stable release of cmate, a streamlined tool for generating Makefiles from TOML-based configuration files. This version marks the end of the alpha/beta phase and brings a number of structural improvements and new features for better usability and maintainability.
🚀 Highlights in v1.1
🛠 Major Refactor
- Comprehensive internal refactoring for better maintainability and consistency.
- Improved cross-platform stability, with enhanced support for both Linux and Windows (10+ recommended).
🔧 New --build Flag
- Added support for the
--build(-b) flag to generate and build the Makefile in a single step. - Simplifies typical workflows and enables faster iteration during development.
🔄 Separated Compiler and Linker Flags
-
Cmate.tomlconfiguration now distinguishes between:flags: for compile-time options (e.g.,-Wall,-std=c99,-g)linkflags: for link-time options (e.g.,-O2,-static,-flto)
-
Ensures that optimization and linker-specific flags are applied at the correct stage.
🧩 Improved Default Configuration
- Updated
--initto generate a more descriptive and documentedCmate.toml. - Easier to understand and customize, even for new users.
🔍 Additional Notes
- No longer requires
git submodules. - ANSI escape sequences are enabled by default; Windows 10+ is required for full terminal support.
- Dependency on
tomlc99remains, but is now handled internally.
📦 Building from Source
git clone https://github.com/rock-db/cmate
cd cmate
make💡 Quick Start
-
Initialize a new project:
cmate --init
-
Edit the generated
Cmate.tomlfile to describe your project. -
Build it:
cmate --build
📥 Download
Binaries available for:
- Linux (x86_64)
- Windows (x86_64)
For more information, refer to the README or open an issue if you encounter any problems.
Thank you for using cmate!
cmate v1.1-beta
🧪 cmate v1.1-beta — Beta Release
We're excited to announce the beta release of cmate v1.1!
This release builds upon the earlier alpha version and brings major internal improvements and new features to help finalize the path toward a stable 1.1.
🔧 What's New Since Alpha
-
Major internal refactor
- The core codebase has been modularized.
- Large
main.cfile was split into logical units for better maintainability. - Fixed several edge-case behaviors around project structure handling.
-
New
--buildflag-
You can now regenerate the Makefile and build the project in one step:
cmate --build
-
-
Improved compiler detection and validation
- Now gives clear errors if a requested compiler isn't found.
- Still supports
autodetection with fallback tozig ccas before.
🚧 Known Limitations
- This beta version does not yet support
[[lib]]targets — only[[bin]]is available. - Some advanced workflows on Windows may still require adjustments due to the platform's compiler and terminal quirks.
- ANSI color support requires Windows 10 or newer.
✅ Backward Compatibility
- Fully compatible with existing cmate alpha
Cmate.tomlfiles. - Not compatible with GMK's TOML format — cmate requires
[[bin]].
🧪 Why Beta?
This version is feature-complete for most single and multi-binary C projects.
We're releasing it as a beta to gather final feedback and allow users to test the restructured internals before locking things down in a stable release.
🧰 Quick Start
cmate --init
cmate --build
./bin/<your_project>📥 Download
Binaries available for:
- Linux (x86_64)
- Windows (x86_64)
🙌 Feedback Welcome!
Help us improve the final 1.1 by reporting issues or suggesting enhancements:
👉 https://github.com/rock-db/cmate
1.1-alpha
We're excited to announce the pre-release of cmate!
This version comes with binaries for both Windows and Linux.
We hope you enjoy using it!
Note:
This is the first public release of cmate, based on a heavily reworked fork of gmk.
While gmk never reached v1.0, this project starts at v1.1-alpha to reflect its major improvements and practical usability.