Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. Verdigris

Verdigris

LGPL-3.0C++v1.3

A header-only library enabling Qt development without the MetaObject Compiler (moc) using compile-time macros.

Visit WebsiteGitHubGitHub
671 stars59 forks0 contributors

What is Verdigris?

Verdigris is a header-only C++ library that allows developers to use Qt without the MetaObject Compiler (moc). It replaces Qt's moc-specific macros with its own set, generating QMetaObject data at compile-time while maintaining full binary compatibility with Qt. This solves build system complexities and enables advanced C++ features like templated QObjects.

Target Audience

C++ developers working with Qt who face build system integration challenges, need templated QObjects, or want to avoid moc's limitations. Particularly useful for projects using non-Qt build systems or requiring advanced metaprogramming.

Value Proposition

Developers choose Verdigris because it eliminates moc dependency, simplifies builds, and extends Qt with features like templated QObjects—all while remaining fully compatible with existing Qt libraries and tooling.

Overview

Qt without moc: set of macros to use Qt without needing moc

Use Cases

Best For

  • Integrating Qt into projects with non-Qt build systems
  • Using templated QObjects in Qt applications
  • Simplifying build processes by removing moc steps
  • Developing Qt applications with advanced C++ metaprogramming
  • Reducing runtime memory overhead for Qt meta-objects
  • Maintaining Qt compatibility while avoiding moc limitations

Not Ideal For

  • Projects using Qt6's QML_ELEMENT feature for automatic QObject registration in QML
  • Teams requiring active, ongoing library maintenance and updates for new Qt versions
  • Applications relying on Qt's plugin system with Q_PLUGIN_METADATA
  • Developers stuck on C++ standards older than C++14 or unsupported compilers

Pros & Cons

Pros

Build System Simplification

Eliminates the need for Qt's moc, simplifying integration with non-Qt build systems like CMake or custom setups, as evidenced by the ISOTRONIC GmbH testimonial where migration took only a day.

Full Binary Compatibility

Maintains complete compatibility with existing Qt libraries and tooling, ensuring seamless interoperability without breaking legacy code or dependencies.

Advanced C++ Features

Enables templated QObjects and nested QObject declarations, which are not supported by standard Qt's moc, as highlighted in the status section for extended functionality.

Compile-Time Efficiency

Generates QMetaObject data at compile-time, reducing runtime memory and initialization overhead compared to runtime alternatives like CopperSpice.

Cons

Discontinued Development

The project is no longer actively maintained, with the author moving on to other projects, posing risks for bug fixes, security updates, and compatibility with future Qt releases.

Incomplete Feature Set

Missing key Qt features such as Q_PLUGIN_METADATA and QML_ELEMENT, limiting use in plugin-based or modern QML applications, as admitted in the README.

Verbose Enum Declarations

Q_ENUM functionality requires manually repeating the names of every enum value, adding boilerplate code and potential for errors compared to standard Qt.

Compiler and Standard Lock-In

Requires C++14 and specific compiler support (e.g., GCC 5.1, Clang 3.5, MSVC 2017), excluding older toolchains and adding complexity for heterogeneous development environments.

Frequently Asked Questions

Quick Stats

Stars671
Forks59
Contributors0
Open Issues11
Last commit11 months ago
CreatedSince 2016

Tags

#qt#c#build-system#gui-framework#cpp14#header-only#compile-time

Built With

Q
Qt
C
C++14

Links & Resources

Website

Included in

C/C++70.6k
Auto-fetched 10 hours ago

Related Projects

stbstb

stb single-file public domain libraries for C/C++

Stars34,612
Forks8,088
Last commit1 month ago
{fmt}{fmt}

A modern formatting library

Stars25,655
Forks3,045
Last commit14 hours ago
xxHashxxHash

Extremely fast non-cryptographic hash algorithm

Stars11,242
Forks914
Last commit1 month ago
single_file_libssingle_file_libs

List of single-file C/C++ libraries, with emphasis on clause-less licenses.

Stars9,997
Forks650
Last commit20 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub