cmake_minimum_required(VERSION 4.0) project(test_module LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") message(WARNING "test_module requires Clang for C++ modules; skipping") return() endif() set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) add_executable(test_module main.cppm) target_sources( test_module PRIVATE FILE_SET cxx_modules TYPE CXX_MODULES BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} FILES main.cppm math.cppm math2.cppm) target_compile_features(test_module PRIVATE cxx_std_23) target_compile_options( test_module PRIVATE # Re-enable implicit modules for Clang std import within this test target -fimplicit-modules -fimplicit-module-maps -Wall -Wextra -Wpedantic $<$:-g -O0> -Wno-import-implementation-partition-unit-in-interface-unit $<$:-O3>)