Skip to content

Add C++20 modules support with CMake integration#132

Open
kaladron wants to merge 1 commit intop-ranav:masterfrom
kaladron:master
Open

Add C++20 modules support with CMake integration#132
kaladron wants to merge 1 commit intop-ranav:masterfrom
kaladron:master

Conversation

@kaladron
Copy link

  • Add tabulate.cppm module interface file exporting core types
  • Extend CMakeLists.txt to conditionally build C++20 module target
  • Create USING.md with comprehensive integration guide covering:
    • Header-only usage
    • CMake FetchContent and find_package
    • C++20 modules with detailed examples
    • Single header usage
  • Add USE_CPP20 CMake option for C++20 standard support
  • Add TABULATE_BUILD_MODULE option to control module building
  • Install module files alongside headers
  • Update README.md with link to integration guide

The module support requires CMake 3.28+ and is compatible with generators supporting C++20 modules (Ninja, Visual Studio 17.4+).

Tested:

  • Clang 22 on Linux with Ninja.
- Add tabulate.cppm module interface file exporting core types
- Extend CMakeLists.txt to conditionally build C++20 module target
- Create USING.md with comprehensive integration guide covering:
  - Header-only usage
  - CMake FetchContent and find_package
  - C++20 modules with detailed examples
  - Single header usage
- Add USE_CPP20 CMake option for C++20 standard support
- Add TABULATE_BUILD_MODULE option to control module building
- Install module files alongside headers
- Update README.md with link to integration guide

The module support requires CMake 3.28+ and is compatible with
generators supporting C++20 modules (Ninja, Visual Studio 17.4+).

Tested:
 - Clang 22 on Linux with Ninja.
@kaladron kaladron mentioned this pull request Dec 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant