SkillAgentSearch skills...

Modules

Simple C++20 module support for CMake

Install / Use

/learn @vitaut/Modules
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Simple C++20 module support for CMake

Provides the add_module_library CMake function that is a wrapper around add_library with additional module-specific rules.

This module currently supports:

  • Clang 15+
  • GCC 11+
  • MSVC 19.28+

This module can also fallback to a non-modular library for compatibility.

Projects using add_module_library:

  • {fmt}: a modern formatting library

Example

hello.cc:

module;

#include <cstdio>

export module hello;

export void hello() { std::printf("Hello, modules!\n"); }

main.cc:

import hello;

int main() { hello(); }

CMakeLists.txt:

cmake_minimum_required(VERSION 3.11)
project(HELLO CXX)

include(modules.cmake)

add_module_library(hello hello.cc)

add_executable(main main.cc)
target_link_libraries(main hello)

Building with clang:

CXX=clang++ cmake .
make

Running:

$ ./main
Hello, modules!

License

The code is distributed under the permissive MIT license with an optional exception that allows distributing binary code without attribution.

Related Skills

View on GitHub
GitHub Stars214
CategoryCustomer
Updated16d ago
Forks14

Languages

CMake

Security Score

80/100

Audited on Mar 15, 2026

No findings