same problem with clang-22 and gcc-16 on OSX
bash-5.3$ ninja -C build/ -j 1 -k 1 -v
ninja: Entering directory `build/'
[1/183] "/usr/local/Cellar/llvm/22.1.8/bin/clang-scan-deps" -format=p1689 -- /usr/local/Cellar/llvm/22.1.8/bin/clang++ -I/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/test/../include -O3 -DNDEBUG -std=gnu++20 -fno-rtti -x c++ /Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm -c -o test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o -resource-dir "/usr/local/Cellar/llvm/22.1.8/lib/clang/22" -MT test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi -MD -MF test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.d > test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.tmp && mv test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.tmp test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi
FAILED: [code=1] test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi
"/usr/local/Cellar/llvm/22.1.8/bin/clang-scan-deps" -format=p1689 --
/usr/local/Cellar/llvm/22.1.8/bin/clang++
-I/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/test/../include -O3
-DNDEBUG -std=gnu++20 -fno-rtti -x c++
/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm
-c -o
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o
-resource-dir "/usr/local/Cellar/llvm/22.1.8/lib/clang/22" -MT
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi
-MD -MF
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.d
>
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.tmp
&& mv
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi.tmp
test/CMakeFiles/boost_type_index_no_rtti.dir/__/modules/boost_type_index.cppm.o.ddi
Diagnostics while scanning dependencies for '/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm':
/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm:17:10: fatal error: 'boost/config.hpp' file not found
ninja: build stopped: subcommand failed.
bash-5.3$ cmake --version
cmake version 4.4.0-rc2-g88e8d67
CMake suite maintained and supported by Kitware (kitware.com/cmake).
bash-5.3$
[
{
"directory": "/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/build",
"command": "/usr/local/Cellar/llvm/22.1.8/bin/clang++ -DBOOST_ASIO_NO_DEPRECATED -DBOOST_DISABLE_ASSERT -DBOOST_USE_MODULES -I/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/include -isystem /Users/clausklein/.local/include -O3 -DNDEBUG -std=gnu++20 @CMakeFiles/boost_type_index.dir/modules/boost_type_index.cppm.o.modmap -o CMakeFiles/boost_type_index.dir/modules/boost_type_index.cppm.o -c /Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm",
"file": "/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/modules/boost_type_index.cppm",
"output": "/Users/clausklein/Workspace/cpp/boost-git/libs/type_index/build/CMakeFiles/boost_type_index.dir/modules/boost_type_index.cppm.o"
}
]
The file is installed here: /Users/clausklein/.local/include/boost/config.hpp
This is the CMakeLists.txt:
# -----------------------------------------------------------------------------
# Boost.type_index CMake
# Handles: no modules, modules, modules + import std;
# -----------------------------------------------------------------------------
# Copyright 2020, 2021 Peter Dimov
# Copyright 2026 Fedor Osetrov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.28...4.4)
project(boost_type_index VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
if(PROJECT_IS_TOP_LEVEL)
set(BUILD_TESTING ON)
enable_testing()
find_package(Threads)
find_package(Boost 1.91.0 CONFIG REQUIRED)
endif()
# -----------------------------------------------------------------------------
# User option: enable C++ modules
# -----------------------------------------------------------------------------
option(BOOST_USE_MODULES "Build Boost using C++ modules" OFF)
# -----------------------------------------------------------------------------
# Determine target type and sources
# -----------------------------------------------------------------------------
if(BOOST_USE_MODULES)
# Ensure CMAKE_CXX_STANDARD is set for module detection
if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 20)
endif()
add_library(boost_type_index)
target_sources(
boost_type_index
PUBLIC
FILE_SET modules_public
TYPE CXX_MODULES
FILES modules/boost_type_index.cppm
)
# Require C++20 for modules
target_compile_features(boost_type_index PUBLIC cxx_std_${CMAKE_CXX_STANDARD})
# Define macro indicating modules usage
target_compile_definitions(boost_type_index PUBLIC BOOST_USE_MODULES)
# Check if import std; is available for the current standard
if(${CMAKE_CXX_STANDARD} IN_LIST CMAKE_CXX_COMPILER_IMPORT_STD)
target_compile_definitions(boost_type_index PUBLIC BOOST_TYPE_INDEX_USE_STD_MODULE)
set_property(TARGET boost_type_index PROPERTY CXX_MODULE_STD ON)
message(STATUS "Boost.type_index: Using `import std;`")
else()
message(WARNING "Boost.type_index: `import std;` is not available for C++${CMAKE_CXX_STANDARD}")
endif()
set(__scope PUBLIC)
else()
# Verify interface headers only at top level
if(PROJECT_IS_TOP_LEVEL)
set(CMAKE_VERIFY_INTERFACE_HEADER_SETS ON)
endif()
# Modules disabled -> INTERFACE library
add_library(boost_type_index INTERFACE)
# If modules are disabled, require C++17 for headers
target_compile_features(boost_type_index INTERFACE cxx_std_17)
set(__scope INTERFACE)
endif()
# -----------------------------------------------------------------------------
# Include headers
# -----------------------------------------------------------------------------
# Note: usable starting with cmake v3.23
if(NOT CMAKE_VERSION VERSION_LESS 3.23)
target_sources(
boost_type_index
PUBLIC
FILE_SET headers_public
TYPE HEADERS
BASE_DIRS include
FILES
include/boost/type_index.hpp
include/boost/type_index/runtime_cast.hpp
include/boost/type_index/stl_type_index.hpp
include/boost/type_index/detail/compile_time_type_info.hpp
include/boost/type_index/detail/stl_register_class.hpp
include/boost/type_index/detail/config.hpp
include/boost/type_index/detail/ctti_register_class.hpp
include/boost/type_index/ctti_type_index.hpp
include/boost/type_index/runtime_cast/std_shared_ptr_cast.hpp
include/boost/type_index/runtime_cast/detail/runtime_cast_impl.hpp
include/boost/type_index/runtime_cast/register_runtime_class.hpp
include/boost/type_index/runtime_cast/pointer_cast.hpp
include/boost/type_index/runtime_cast/reference_cast.hpp
include/boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp
include/boost/type_index/type_index_facade.hpp
)
else()
target_include_directories(boost_type_index ${__scope} include)
endif()
# -----------------------------------------------------------------------------
# Link dependencies
# -----------------------------------------------------------------------------
if(PROJECT_IS_TOP_LEVEL)
target_link_libraries(boost_type_index ${__scope} Boost::headers)
else()
target_link_libraries(boost_type_index
${__scope}
Boost::config
Boost::container_hash
Boost::core
Boost::smart_ptr
Boost::throw_exception
Boost::unordered
)
endif()
# Alias for convenient import
add_library(Boost::type_index ALIAS boost_type_index)
# -----------------------------------------------------------------------------
# Testing
# -----------------------------------------------------------------------------
if(BUILD_TESTING)
add_subdirectory(test)
endif()