Сообщение cmake 4.2.0 +cpp modules / import std fix от 20.11.2025 21:50
Изменено 21.11.2025 4:33 Великий Мессия
cmake 4.2.0 +cpp modules / import std fix
вышла новая версия cmake 4.2.0
https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333
с исправлением для модулей что бы можно было использовать
import std;
проблема была в том что зоопарк линукс пакетов
собирали gcc по разному
и файл метаданных необходимый для подключения import std
был в разных локациях линукс фс
upd
оказывается проблема более глобальная
у каждого компиля свой формат json метаданных
и если clang/gcc еще кое как сходятся
то у msvc свой
поэтому cmake разрабы играются со своим парсером и пытаются стандартизировать формат метаданных
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422
https://github.com/ecostd/rfcs/pull/3
upd2
пофиксил для cmake 4.2.0 что бы работал clang под виндовс c import std;

к сожалению автоматический поиск файла метаданных добавили только
ошибся, поиск был и есть
в следующую версию cmake 4.3.0 которая зарелизится не ранее февраля 2026
поэтому придется пока что пользоваться прямым указанием файла метаданных через переменную cmake
https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333
с исправлением для модулей что бы можно было использовать
import std;
The “CMAKE_CXX_STDLIB_MODULES_JSON” variable was added to set the
path to the “import std” metadata file for the standard library
rather than using the compiler to discover its location.
проблема была в том что зоопарк линукс пакетов
собирали gcc по разному
и файл метаданных необходимый для подключения import std
был в разных локациях линукс фс
проверил, это не пофиксилитак же проблемы была при использовании
clang под виндовс с msvc stl
поскольку для clang была поддержка только кланговского stl
и он не находил файл метаданных с msvc stl
upd
оказывается проблема более глобальная
у каждого компиля свой формат json метаданных
и если clang/gcc еще кое как сходятся
то у msvc свой
поэтому cmake разрабы играются со своим парсером и пытаются стандартизировать формат метаданных
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422
https://github.com/ecostd/rfcs/pull/3
upd2
пофиксил для cmake 4.2.0 что бы работал clang под виндовс c import std;
ошибся, поиск был и есть
в следующую версию cmake 4.3.0 которая зарелизится не ранее февраля 2026
поэтому придется пока что пользоваться прямым указанием файла метаданных через переменную cmake
cmake 4.2.0 +cpp modules / import std fix
вышла новая версия cmake 4.2.0
https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333
с исправлением для модулей что бы можно было использовать
import std;
проблема была в том что зоопарк линукс пакетов
собирали gcc по разному
и файл метаданных необходимый для подключения import std
был в разных локациях линукс фс
upd
оказывается проблема более глобальная
у каждого компиля свой формат json метаданных
и если clang/gcc еще кое как сходятся
то у msvc свой
поэтому cmake разрабы играются со своим парсером и пытаются стандартизировать формат метаданных
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422
https://github.com/ecostd/rfcs/pull/3
upd2
пофиксил для cmake 4.2.0 что бы работал clang под виндовс c import std;

к сожалению автоматический поиск файла метаданных добавили только
ошибся, поиск был и есть
в следующую версию cmake 4.3.0 которая зарелизится не ранее февраля 2026
поэтому придется пока что пользоваться прямым указанием файла метаданных через переменную cmake
https://discourse.cmake.org/t/cmake-4-2-0-available-for-download/15333
с исправлением для модулей что бы можно было использовать
import std;
The “CMAKE_CXX_STDLIB_MODULES_JSON” variable was added to set the
path to the “import std” metadata file for the standard library
rather than using the compiler to discover its location.
проблема была в том что зоопарк линукс пакетов
собирали gcc по разному
и файл метаданных необходимый для подключения import std
был в разных локациях линукс фс
проверил, это не пофиксилитак же проблемы была при использовании
clang под виндовс с msvc stl
поскольку для clang была поддержка только кланговского stl
и он не находил файл метаданных с msvc stl
upd
оказывается проблема более глобальная
у каждого компиля свой формат json метаданных
и если clang/gcc еще кое как сходятся
то у msvc свой
поэтому cmake разрабы играются со своим парсером и пытаются стандартизировать формат метаданных
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11422
https://github.com/ecostd/rfcs/pull/3
upd2
пофиксил для cmake 4.2.0 что бы работал clang под виндовс c import std;
ошибся, поиск был и есть
в следующую версию cmake 4.3.0 которая зарелизится не ранее февраля 2026