TGViewer
pro.cxx Channel pro.cxx Channel @procxxnews · 785 subscribers
Post #201 1.09K

Forwarded from Alex Fails Some News Channel

Опа, релизнулся смак 4.2 (42).

Из самых вкусных вещей это поддержка вышедшей студии 2026 и (ВНЕЗАПНО) системы сборки FASTBuild , которая применяется в некоторых компаниях для распределенной сборки и расширенного контроля за собранным кэшем (знаю, что меня читает народ , что у себя в геймдеве использует её, и мучается со своими смак-врапперами, радуйтесь: ща можно просто сгенерировать и забиндить доп имеющиеся).

Также официально добавлена поддержка сборки под Emscripten (интеграция с апстримом стала лучше), те, кто собираются под васм, тоже рекомендую обновляться.

Любителям модулей и import std авторы добавили способ насильно задать путь до жсонины с метаинфой по модулю std , ибо апстримы компиляторов, дистрибутивов , к сожалению, пока что не смогли устаканить нормальные пути (см., например, баг в llvm)

Теперь можно явно очищать значения в кэше через set(CACHE{<var>}) и unset(CACHE{<var>}). Порой бывает, что значение переменной в кэше и при выполнении скрипта не совпадают (иногда бывает при работе с депсами), и это раньше через форс-кэширование, сейчас добавили явный механизм

Остальные нововведения не такие (субъективно) большие, но все равно немного улучшают жизнь:
- cmake -E copy[directory]_if_newer - новая команда для копирования файла/каталога , если он новее;
- линтеры теперь можно отключать через свойство цели SKIP_LINTING - удобно для временного отключения для определенных целей сборки;
- новые команды string(REGEX QUOTE) и cmake_language(TRACE) для поиска точно по строке и переключения трассировки соответственно;
- Новые свойства для контроля имени объектных файлов при сборке и установке OBJECT_NAME, INSTALL_OBJECT_NAME (у этого есть ещё пара доп ручек, см доку);
- Новые свойства для контроля пулов сборки и префиксов имён файлов объединенной сборки JOB_POOL_COMPILE и UNITY_BUILD_FILENAME_PREFIX - думаю, фастбилд чутка поспособствовал этим свойствам, у него было похожее "из коробки";
- модуль ExternalProject теперь может задавать переменные окружения - полезно для кривых кастомных билдов, которые игнорят заданные смаком компиляторы и прочие флажки;
- "модель кода" (абстракция смака с метаинфой для тулинга и IDE-шек) теперь также хранит метаинфу про импортированные таргеты - полезно для пакетников, чтобы они могли проверить корректность импортированных таргетов зависимостей.
- встроенные Find-модули теперь консистентно возвращают инфу о том, что пакет найден, в <PackageName_FOUND> вместо <PACKAGENAME_FOUND>, старые переменные доступны, но помечены устаревшими
- генератор для 2015-й студии признан устаревшим, и его удалят в следующем релизе, можно использовать 2017-ю студию с v140-тулсетом;

И куча другого, смотрите заметки тут: https://cmake.org/cmake/help/latest/release/4.2.html

Пишите в комментариях, если интересно что-то разобрать, или дополнить то, что я не отметил, или если где увидели неточность.

Версия поста v1.2.1 (микро-фиксы; ссылки; find-модули; 2015 студия)

@AlexFailsChannel

#длиннопостик #cmake #длиннопостик@AlexFailsChannel
  • 🔥 6
  • 👍 3
More from @procxxnews
  1. Sep 11, 2026Post #206
  2. May 15, 2026Уже завтра (завтра!) 16 мая откроется офлайн часть конференции C++Russia. Программа получи…
  3. Mar 30, 2026Утверждён стандарт C++26 Комитет ISO по стандартизации языка C++ завершил утвердил финальн…
  4. May 12, 2025Очередной ежегодный небольшой опрос от ISO C++. Обещали закрыть к пятнице прошлой недели,…
  5. Mar 28, 2025Вышел-таки релиз смака 4.0! Авторы решились поднять мажор, чтобы подсветить изменения в об…
  6. Mar 12, 2025Завтра будет community-день конференции C++ Russia: Планируется 11 активностей: — Доклады…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →