Skip to content

cmate v1.1

Latest

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!