Skip to content

Releases: safaid-yuragi/cmate

cmate v1.1

Choose a tag to compare

@safaid-yuragi safaid-yuragi released this 01 Jun 16:43

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.toml configuration 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 --init to generate a more descriptive and documented Cmate.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 tomlc99 remains, but is now handled internally.

📦 Building from Source

git clone https://github.com/rock-db/cmate
cd cmate
make

💡 Quick Start

  1. Initialize a new project:

    cmate --init
  2. Edit the generated Cmate.toml file to describe your project.

  3. 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 Pre-release
Pre-release

Choose a tag to compare

@safaid-yuragi safaid-yuragi released this 31 May 16:10

🧪 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.c file was split into logical units for better maintainability.
    • Fixed several edge-case behaviors around project structure handling.
  • New --build flag

    • 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 auto detection with fallback to zig cc as 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.toml files.
  • 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

1.1-alpha Pre-release
Pre-release

Choose a tag to compare

@safaid-yuragi safaid-yuragi released this 30 May 14:32

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.