The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз сборочной системы CMake 4.0.0

29.03.2025 10:45

Представлен релиз кроссплатформенного открытого генератора сценариев сборки CMake 4.0.0, выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.

CMake примечателен предоставлением простого языка сценариев, средствами расширения функциональности через модули, поддержкой кэширования, наличием инструментов для кросс-компиляции, поддержкой генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличием утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилитой cmake-gui для интерактивной настройки параметров сборки.

Основные изменения:

  • Прекращена совместимость с версиями CMake до выпуска 3.5. При привязке к неподдерживаемым версиям в функциях cmake_minimum_required() и cmake_policy() теперь будет выводиться ошибка.
  • Добавлена переменная окружения "CMAKE_POLICY_VERSION_MINIMUM" для переопределения минимальной версии CMake, функциональность которой необходима для сборки проекта. Добавленная переменная позволяет обойтись без изменения вызовов cmake_minimum_required(VERSION) и cmake_policy(VERSION) в самом проекте, например, для настройки политики версий в проектах, не предусматривающих такую возможность.
  • В выражение генератора "$<PATH>" добавлена операция "NATIVE_PATH" для преобразования файлового пути из представления CMake (для разделения каталогов всегда используется "/"), в системный путь (в Unix-подобных системах используется "/", а в Windows - "\").
  • На платформе macOS при использовании генераторов сборочных сценариев на базе инструментария Ninja и генераторов Makefile, если в каталоге "/usr/bin" присутствует компилятор, то он отныне оставляется как есть, без привязки к компилятору в Xcode. При сборке для платформы macOS по умолчанию прекращён выбор SDK и передача компилятору флага "-isysroot" (SDK теперь выбирает сам компилятор, а не CMake).
  • Добавлено свойство LINK_WARNING_AS_ERROR, при котором предупреждения компоновщика будут трактоваться как ошибки. Для отключения действия данного свойства добавлена опция командной строки "--link-no-warning-as-error".
  • В утилиту cmake добавлена опция "--project-file" для задания альтернативного имени файла CMakeLists.txt.
  • В генератор CPack добавлена возможность создания несжатых tar-архивов.
  • В команду target_link_libraries() и переменные CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* добавлена поддержка префикса "LINKER:".
  • Добавлены новые переменные:
  • Добавлены новые свойства: DEBUGGER_WORKING_DIRECTORY и VS_SOLUTION_ITEMS (для прикрепления файлов к .sln для Visual Studio).
  • Обеспечено формирование готовых сборок CMake для SunOS для архитектур sparc64 и x86_64.


  1. Главная ссылка к новости (https://www.kitware.com/cmake-...)
  2. OpenNews: Релиз системы сборки CMake 3.28
  3. OpenNews: Facebook опубликовал систему сборки Buck2
  4. OpenNews: Проект Сicada развивает систему автоматизации сборок, похожую на GitHub Actions
  5. OpenNews: Выпуск сборочной системы Meson 1.7.0
  6. OpenNews: Компания Apple открыла код сборочной системы Swift Build
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62974-cmake
Ключевые слова: cmake, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (115) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:02, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Какие преимущества перед Мизоном?
     
     
  • 2.2, A.Stahl (ok), 11:06, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Распространённость и... и всё.
     
  • 2.4, Аноним (4), 11:14, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Преимущества что в отличии от мизона смаке легко пользоваться.
     
     
  • 3.28, Аноним (-), 13:00, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я бы не сказал что cmake прост в использовании
     
     
  • 4.80, Аноним (80), 19:48, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У него отличная документация, в отличие от...
     
  • 3.94, Аноним (-), 21:58, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Преимущества что в отличии от мизона смаке легко пользоваться.

    И еще - не на питоне дурацком, так что не выдвигает требований по (не)совместимости :)

     
     
  • 4.117, анонд (?), 17:13, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что любопытно пакетный менеджер Conan для C и C++ написан и... версии 1 и 2 несовместимы. Микрософт написали vcpkg на обычном CMake поэтому таких проблем нет при обновлениях.
     
     
  • 5.141, Аноним (141), 08:40, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Что любопытно пакетный менеджер Conan для C и C++ написан и... версии
    > 1 и 2 несовместимы. Микрософт написали vcpkg на обычном CMake поэтому
    > таких проблем нет при обновлениях.

    Виндопроблемы такие виндопроблемы. В линухе это все проще, apt install libsomething-dev и в обшем то весь пакетный менеджмент для сей. А в винде все как всегда...

     
  • 2.5, Аноним (5), 11:14, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Мезон под гномом, сабж под вендузятниками.
     
     
  • 3.95, Аноним (-), 21:59, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Мезон под гномом, сабж под вендузятниками.

    Поэтому они / в путях юзали? Странные какие-то виндузятники. А гномеры наверное даже хуже виндузятников, вообще пытаются мобилку из десктопа делать. До этого даже MS не допер.

     
     
  • 4.98, Аноним (5), 22:22, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обратная косая только в досе, ничего странного.
     
     
  • 5.115, Аноним (115), 13:04, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    DOS прекрасно понимает пути с обычными слэшами.
     
     
  • 6.145, anonymmmeer (?), 17:58, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а ты DOS с его эмулятор в винде не путаешь?
     
  • 4.105, Аноним (-), 05:58, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Было такое называется Windows 8 В Windows 8 1 по просьбе не довольных вернули н... большой текст свёрнут, показать
     
     
  • 5.142, Аноним (141), 08:43, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это чего туда вернули Тупое полноэкранное меню пуск или дурацкие HTML5 плитки... большой текст свёрнут, показать
     
  • 2.7, Александр (??), 11:28, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее интересны преимущества перед premake, xmake, scons и waf
     
     
  • 3.16, Аноним (1), 12:12, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    эти все какая-то маргинальщина, в основном же юзают мизон и смаке в открытых проектах
     
     
  • 4.24, Аноним (5), 12:47, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Gn всё ещё самый популярный и наиболее распространённый в опенсорсе.
     
     
  • 5.37, Rezzet (??), 13:49, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это GNиль от гулгла которая? ни справки, ни разобраться?
     
  • 3.96, Аноним (-), 22:00, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее интересны преимущества перед premake, xmake, scons и waf

    В отличие от этой неведомой фигни он не является маргинальщиной и используется кучей проектов. Нормальное преимущество - "не надо изучать маргинальную фигню".

     
  • 3.101, anonymous (??), 04:24, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Прикасался к каждой хтони в разное время premake - lua-подобный синтаксис, по ... большой текст свёрнут, показать
     
  • 2.36, Rezzet (??), 13:48, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Преимущество в том что CMake все поддерживают и он становится некоторым де-факто стандартом для C++, а самое важное его поддерживает vcpkg и теперь охренелион зависимостей в проект можно подтянуть двумя файлами.
     
     
  • 3.118, анонд (?), 17:14, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    и пакетный менеджер Conan продвигаемый JFrog, но обновления принимают там намного дольше
     
  • 2.53, cmake_for_ever (?), 15:20, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    meson не поддерживает и не будет никогда поддерживать
    C++ модули

    https://github.com/mesonbuild/meson/issues/11256
    >C++20 modules #11256
    >Closed as not planned

     
     
  • 3.63, llolik (ok), 16:38, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это какой-то левый тикет. Основное обсуждение вот https://github.com/mesonbuild/meson/issues/5024 . Читал я, правда, по диагонали, но не увидел мысли

    >  meson не поддерживает и не будет никогда поддерживать

    Как я понял от одного из разработчиков в треде

    '''
    The current status is that basic cases should mostly work. I have been working on fixing up our scanner and how we do scanning to get faster and more accurate results see here, mainly aiming at Fortran since they've hod modules longer, and C++ and Fortran modules have many of the same design decisions.
    '''

    они над этим работают, но пока ещё рано выпускать в люди.

     
  • 2.121, sena (ok), 05:02, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Например в симейк не нужно программировать отдельно поддержку библиотеки как в мезоне:

    https://github.com/mesonbuild/meson/blob/19482e4553775d4612f5fcc1c7c124774e9a0

     
     
  • 3.122, llolik (ok), 08:40, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Например в симейк не нужно программировать отдельно поддержку библиотеки как в мезоне:
    >  https://github.com/mesonbuild/meson/blob/19482e4553775d4612f5fcc1c7c124774e9a0

    Так это же обёртки для удобства. И не над библиотекой, а над Гномовскими генераторами кода. Не, ну, можно и врукопашную с custom_target/run_target-ами сношаться (прямо, как в cmake), кто-бы был против. Но с обёртками всё-таки удобнее.

     
     
  • 4.125, sena (ok), 11:38, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Например в симейк не нужно программировать отдельно поддержку библиотеки как в мезоне:
    >>  https://github.com/mesonbuild/meson/blob/19482e4553775d4612f5fcc1c7c124774e9a0
    > Так это же обёртки для удобства. И не над библиотекой, а над
    > Гномовскими генераторами кода. Не, ну, можно и врукопашную с custom_target/run_target-ами
    > сношаться (прямо, как в cmake), кто-бы был против. Но с обёртками
    > всё-таки удобнее.

    Ну-ну. Удобство это конечно хорошо, в принципе. Но тогда выходит, если не запихать поддержку особенностей библиотеки прямо в исходники, то Мезон внезапно станет неудобным? А ты считаешь нормальным пихать поддержку какой-то библиотеки в систему сбоки? И что, каждая библиотека будет добавлять свою простынку нечитаемого кода прямо в исходники Мезона или разрабы Мезона будут решать, какая библиотека заслужила эту привилегию, а какая нет?

    Ну уж нет, спасибо, я лучше custom_target-ы попишу.

     
     
  • 5.127, llolik (ok), 14:00, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну-ну. Удобство это конечно хорошо, в принципе. Но тогда выходит, если не
    > запихать поддержку особенностей библиотеки прямо в исходники, то Мезон внезапно станет
    > неудобным?

    Нет. Просто ты вернёшься в те же custom_target-ы. Можешь не пользоваться модулем GNOME, если желаешь, кто же тебе возразит-то.

    > А ты считаешь нормальным пихать поддержку какой-то библиотеки в систему
    > сбоки?

    Ещё раз: это НЕ поддержка библиотеки, это сахарок для задействования автогенераторов (glib-mkenums, g-ir-scanner, gdbus-codegen  и вот этого всего), которые генерируют boilerplate-код в рамках GObject (если эти генераторы вообще в проекте задействованы, что не факт), чтобы не городить CT-ы, а просто вызывать их, как объекты/зависимости.

    Библиотеку можно подключать, как обычное dependency. Модуль для этого НЕ нужен.

    > И что, каждая библиотека будет добавлять свою простынку нечитаемого кода
    > прямо в исходники Мезона или разрабы Мезона будут решать, какая библиотека
    > заслужила эту привилегию, а какая нет?

    Ну, разрабы GNOME-а вот запилили, чтобы было удобно. Разрабам meson-а зашло. Мне тоже, например.

    > Ну уж нет, спасибо, я лучше custom_target-ы попишу.

    Ну, пиши, кто ж запрещает-то.

     
     
  • 6.128, sena (ok), 16:27, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну давай, покажи как собрать без этого костыля А то может и нельзя собрать ниче... большой текст свёрнут, показать
     
     
  • 7.132, llolik (ok), 19:01, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну давай, покажи как собрать без этого костыля

    Создаёшь custom_target -> пихаешь туда приложение/набор ключей/INPUT - исходник/OUTPUT -кортеж нагенерированного -> вписываешь CT в зависимость target-а. Всё.
    До этого, правда, не забываешь проверить, установлено-ли у тебя вообще это приложение и прочая тряхомудь с проверками и вспоминанием ключей. Вот это всё, благодаря модулю, ты делаешь ОДНОЙ командой. Если не хочешь делать так - делай, не пользуйся модулем, если ты его так не любишь.

    Таких врапперов написан и для CMake-а дохрена и больше, к слову.

    > g-ir-scanner, gdbus-codegen  и "вот этого всё" это особенности этой конкретной библиотеки.

    Из всего текста ниже понятно, что под GObject/Gtk ты не писал примерно никогда, но мнение имеешь.

    >  И что, они разрабы мезона добавят поддержку моего генератора для моего проекта?

    Будут по популярности сопоставимы с Gtk/Qt - добавят.

    > Чего стараться, придумывать какой-то язык, какие-то универсальные способы для расширения для всех

    Модули и сделали затем, чтобы НЕ пихать их в основной DSL. НЕ надо, НЕ пользуешься.
    К слову, давно-ли ты что-то делал на Qt/Gtk и собирал это CMake-ом? Хотелось-ли тебе пристрелить его авторов? Мне - да.

    > Ну так такие разрабы, раз им такое заходит. Как по мне, студентов за это надо бить по рукам. Очень сильно.

    Вот таких ваших студентов потом на работу и не берёт никто.

     
     
  • 8.133, sena (ok), 20:41, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не верю Было бы всё так просто, никто бы не вкорячивал 2200 строк нечитабельног... текст свёрнут, показать
     
  • 8.144, Аноним (144), 12:47, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Постоянно собираю Qt-шные проекты CMake-ом, пока все живы Недавно делал CMake д... текст свёрнут, показать
     

  • 1.3, Аноним (4), 11:13, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    CMake давно пора заменить нейросетям. И описаниями на естественном языке.
     
     
  • 2.6, Тор (?), 11:18, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу всеми нейросетями заменить точно , что бы одна кнопка и готово. А , ты умный! Тоже так же думаю!
     
  • 2.65, Аноним (-), 16:53, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы понимаете что выполнение задач нейросетями не детерминировано?
     
  • 2.71, Аноним (71), 17:42, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >сделать за*****

    Да?

     
  • 2.86, eugene_martein (ok), 20:51, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для всех хейтеров CMake: если вы считаете, что новый релиз 4.0.0 не изменит ваше негативное мнение, то, вероятно, вы просто не обновили свои навыки разработки со временем. Ну что ж, оставайтесь в прошлом с вашими устаревшими привычками, в то время как другие двигаются вперед, используя современные инструменты для улучшения своей работы. Всегда найдется место для прогресса, даже если для некоторых он кажется чуждым.
     
     
  • 3.90, _ (??), 21:15, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ути-пуся, уже делаются тулы _лучше_ cmake ... и когда их таки доведут до ума ...
    (подставь сюда свой текст. :)
     
     
  • 4.130, eugene_martein (ok), 18:53, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, конечно, всегда есть место для улучшений и конкуренции. Если новые тулы действительно обещают быть лучше, то это замечательно! Но не забывайте, что CMake уже давно зарекомендовал себя как надежный инструмент среди многих разработчиков. Пока ждем, когда эти 'тулы' доведут до ума, CMake продолжает помогать множеству проектов достигать успеха. Конкуренция всегда стимулирует инновации, так что будем следить за развитием событий!
     

  • 1.8, Александр (??), 11:29, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Вырвиглазное ничто этот ваш cmake, но в мире C++ стал почему-то почти стандартом
     
     
  • 2.10, Аноним (10), 11:32, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А какая альтернатива? Автокрап?
     
     
  • 3.18, Аноним (18), 12:21, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Bazel уделывает cmake  по всем параметрам
     
     
  • 4.27, Аноним (27), 12:54, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Bazel уделывает cmake  по всем параметрам

    Java - сразу мимо!

     
     
  • 5.38, morphe (?), 13:55, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть реализация на Rust

    https://buck2.build/

     
     
  • 6.55, Аноним (55), 15:31, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё мимей.
     
  • 4.30, Аноним (-), 13:01, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А он умеет собирать Cxx проекты?
     
  • 4.72, Аноним (71), 17:44, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По параметрам жрущести и безопасности бизнеса (чтобы всякие васяны не лезли в проекты своими грязными лапами) точно.
     
  • 4.100, Аноним (100), 04:17, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Bazel уделывает cmake  по всем параметрам

    В смысле, по ненужности чтоли? Жуткий гуглокрап, настолько ужасный что используется только гуглем по сути, обвешаный питоном и жабой, так что при попытке что-то ЭТИМ собрать - качается полинтернета.

     
  • 3.50, Neon (??), 15:16, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Visual Studio проекты))) или на худой конец QtCreator, CodeBlocks))). Наглядно и сердито)))
     
     
  • 4.56, Аноним (55), 15:35, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но QtCreator это IDE и он пользуется для сборки, всё тем же, cmake. Или альтернативно может QBS.
     
  • 4.102, Аноним (102), 04:27, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Наглядно, сердито, но что делать на системах без GUI, таких как CI?
     
  • 2.29, Аноним (27), 13:01, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  Вырвиглазное ничто этот ваш cmake, но в мире C++ стал почему-то почти стандартом

    Очень аккуратное отношение к совместимости с предыдущими.

    Ибо его разрабатывали не скриптовики, жабокодеры или растоманы.

    Вот здесь убирают совместимость с Версией 3.5 (текущая 3.31) и делают версию 4.0.

    Сообщая о поломке совместимости.

     
     
  • 3.64, Аноним (64), 16:43, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему не могут сделать совместимость в версией 1.0?
     
  • 3.91, _ (??), 21:18, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Ибо его разрабатывали не скриптовики, жабокодеры

    А у этих что не так с "аккуратное отношение к совместимости с предыдущими." ?!?!?

    Или ты это про JS?

     
     
  • 4.123, 1 (??), 09:42, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ты настолько молодой, что не помнишь python 2 ?
     
  • 2.81, Аноним (80), 19:50, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сам ты вырвиглазный. Уж всяко лучше Makefile простыней в синтаксисе 70-х годов.
     
  • 2.87, eugene_martein (ok), 20:53, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну конечно, хейтить всегда легче, чем понять и принять изменения. CMake может и не идеален, но он эволюционировал и стал неотъемлемой частью среды разработки C++. Вместо того чтобы тратить энергию на нытье, лучше было бы попробовать изучить и воспользоваться преимуществами, которые он предлагает. В конце концов, лидерство CMake в мире C++ говорит само за себя - возможно, стоит задуматься, почему это произошло, вместо того чтобы просто ругаться на него.
     
     
  • 3.92, _ (??), 21:23, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > стоит задуматься, почему это произошло

    Потому же, почему и сам С++ получился таким же? :-)
    Не - ну я серьёзно бы удивился если бы С++-ники сделали себе красиво :)))

    Не поймите меня правильно: cmake таки работает и с ним всё же лучше чем без него...

     
     
  • 4.131, eugene_martein (ok), 18:54, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, история С++ действительно полна различных нюансов и компромиссов, но в конечном итоге он остается одним из самых мощных и широко используемых языков программирования. Точно так же, как и CMake, который, несмотря на свои недостатки, облегчает сборку проектов и делает жизнь разработчиков проще. Важно уметь видеть плюсы в том, что у нас есть, и стремиться к улучшениям, даже если это иногда требует некоторого терпения и труда. Похоже, что мы все в этом деле - постоянные искатели совершенства!
     

  • 1.11, Аноним (102), 11:35, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой-то странный ченджлог.

    Там намного больше изменений было, когда я в гит заходил.

     
  • 1.12, Аноним (12), 11:47, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Прекращена совместимость с версиями CMake до выпуска 3.5

    соболезнования всем пользователям предыдущих версий

     
     
  • 2.13, Аноним (10), 11:58, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ей уже больше 9 лет, ты о чём вообще?
     
     
  • 3.32, Аноним (27), 13:19, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно о том, что у некоторых проекты на системах где нет версий cmake старше 3.5.

    Но, я думаю. Там даже не версия 3, а скорее всего еще 2.

    Так что тем кому надо и те системы поддерживать теперь будут два набора CMakeLists.txt писать.

     
     
  • 4.33, Аноним (27), 13:20, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > cmake старше 3.5

    младше же, конечно.

     
  • 4.35, sdfm (?), 13:33, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее всего не будут, т.к. вполне можно без специфичных для cmake 3.5 вещей обойтись. Возможно для поддержки cmake 3.5 и cmake 4 одновременно придётся что-то переписать, но очень вряд ли прям потребуется иметь два разных CMakeLists.txt. Там нет каких-то эпичных несовместимостей. В крайнем случае может быть отдельный cmake-файлик с утилитами для 4 и 3.5, но и в таком случае какого-то значимого сопровождения это не потребует.

    В общем страх на пустом месте. На фоне остальных несовместимостей между такими системами вообще ни о чём.

     
  • 4.39, Да ну нахер (?), 14:15, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Портабельные бинарные сборки для Linux и Windows (и не только) здесь: https://github.com/Kitware/CMake/releases/

    Либо то же самое, но упакованное в питонье колесо: https://pypi.org/project/cmake/

    Если вы сами себя выбрали ограничивать своими же собственными правилами, то конечно пишите хоть два проекта, хоть сто двадцать два, главное чтобы счастливы были.

     
     
  • 5.59, Аноним (59), 15:48, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только они для новых систем.

    На старых не запустяться.

     
  • 4.42, Аноним (102), 14:49, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Свежий cmake работает на rhel 6.
     
     
  • 5.60, Аноним (59), 15:49, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А что насчёт Alt?
     
     
  • 6.103, Аноним (102), 04:32, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У вас в продакшене используется старый Альт? А какой? Мастер 2.4?
     
  • 5.106, Аноним (-), 06:33, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Свежий cmake работает на rhel 6.

    В смысле посылает нахрен с отсутствующими build deps? :D

     
  • 3.74, wyry (ok), 18:28, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На самом деле не всё так просто. Для рабочих проектов конечно уже наплевать, а вот для обучающих материалов может стать проблемой, т.к. есть немало актуальной (несмотря на возраст) литературы, проекты которой собираются старыми CMake и тут у новичков в индустрии могут возникнуть проблемы на ровном месте. Хорошо конечно что старые версии легко доступны, но можно было бы просто создать слой совместимости чтобы старые проекты собирались, пусть даже выдаст предупреждение, что всё это давно устарело. C++ way - это про марафон, а не как проекты на Питоне, где у некоторых нейронок с кучей зависимостей срок годности меньше, чем у банки горошка.
     
     
  • 4.75, sdfm (?), 19:02, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В чём cmake 4 не совместим с cmake 3.5, из того, что может быть использовано в обучающих материалах? Там же не весь cmake поменяли, а дропнули поддержку старых политик совместимости, не более. Подавляющее большинство пользователей никаких проблем не найдёт, тем более в учебных материалах.
     

  • 1.15, Аноним (15), 12:02, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Напомню, что это тот самый CMake, в котором для того чтобы тебя поиметь достаточно добавить маленькую точку.
    https://www.opennet.dev/60888
     
     
  • 2.21, Аноним (-), 12:30, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Напомню, что это тот самый CMake, в котором для того чтобы тебя поиметь достаточно добавить маленькую точку.
    > https://www.opennet.dev/60888

    Именно он!
    Его писали люди воспитанные на баше и прочем доисторическом крапе.

     
     
  • 3.93, _ (??), 21:29, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну чтож поделаешь, ведь люди воспитанные на новомодном крапе - вообще ничего напрограммить не могут :)

    Других инженеров у меня для вас нет!(С)ВИС

     
  • 2.26, eugener (ok), 12:53, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    вот тут ты вообще пальцем в небо. Точка сломает компиляцию проверочного кода независимо от системы сборки.
     

  • 1.25, Анониматор (?), 12:48, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Не понимаю этих холиваров. Я в этих системах не разбираюсь совсем, говорю просто дикпику создай мне makefile с такими то м такими опциями и готово, всё работает как я хотел.
     
     
  • 2.31, Аноним (31), 13:04, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Держи нас в курсе, это всем интересно.
     
     
  • 3.40, Анониматор (?), 14:27, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я не про то что интересно или неинтересно. а про то, что в отличии от программирования все эти чатгпт и дипсики умеют спми прекрасно и безошибочно сконфигурировать любую сборочную систему. Тратить на это свою жизнь смысла нет, лучше прокачиват скиллы в программировании.
     
     
  • 4.49, Нуину (?), 15:14, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    я не про то что интересно или неинтересно. а про то, что в отличии от конфигурирования все эти чатгпт и дипсики умеют спми прекрасно и безошибочно программировать любую систему. Тратить на это свою жизнь смысла нет, лучше прокачиват скиллы в ????
     
  • 2.51, Нуину (?), 15:17, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > говорю просто дикпику создай мне makefile с такими то м такими опциями и готово

    Опции указываются в симейклисте, не прочитав его опции не узнать, поэтому и указать что включить, а что нет — нельзя.

     
  • 2.57, Аноним (55), 15:36, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И что он тебе создаёт, скрипт на Bash?
     
  • 2.67, Аноним (-), 17:01, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По ходу вся суть в работе. У сишников весьма мало работы, вот они и сруться за технологии которые знают из-за денег в итоге получаемых на работе. То же касается и растовщиков - более молодой язык, более молодые люди в большинстве знает. А работать долго для богатой синьйорной специальности никто не хочет. А их технологии пересекаются в решении задач, вот и сруться друг с другом за технологии которые знают. Самое прикольное как они это лицемерно выставляют в итоге - всё вовсе не из-за денег, ну потому что прямо так никто написать или сказать нельзя - как бы не вежливо и за такую прямую позицию меньше заплатят или вообще не возьмут. Научились у пиндосов говорить одно, думать другое, да и по поступкам в общем-то показывать другое.
     

  • 1.45, Аноним (45), 14:53, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Прекращена совместимость с версиями CMake до выпуска 3.5

    Ни дня без подвигов. Не прошло и полверсии.

     
     
  • 2.46, Унитаз (?), 14:56, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А какой у тебя подвиг, когда ты накатил?
     
  • 2.61, Аноним (59), 15:51, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Текущая была 3.31.

    Так что было 31-5 = 26 версий.

    И о поломке совместимости они сообщили версией 4.0

     

  • 1.48, Нуину (?), 15:11, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эталон для карго.
     
  • 1.52, Аноним (52), 15:19, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Make хватит практически для всего. Иногда вот попадаются проекты, не очень большие или совсем мелкие, бывает даже из кода там пара файлов, но зато сборочными скриптами там все знатно обмазано.
    Зачем? Автор хотел похвастаться тем что шарит за сборочные системы? Ненужное переусложнение, очередное причем.
    Много раз слышал мнение, что именно Make файлы писать сложно... Но зато имеем ситуацию когда чтобы собрать мелкий проект приходится тащить себе гору сборочного хлама, а если таких проектов несколько, то и хлама такого может быть много и разного, каждый же норовит выделиться и использовать разные билд системы...
    Короче фигня это все, как в том анекдоте про стандарты.
     
     
  • 2.68, Аноним (10), 17:04, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Make хватит практически для всего

    Ага, а потом по ошибкам компиляции угадывай, каких хидеров не хватает. Нет уж, кушайте сами.

     
  • 2.82, Аноним (80), 19:52, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Make хватит практически для всего.

    Угу, особенно под винду и прочие плафтормы, которые не линакс. Сами кушайте свои баш-портянки.

     

  • 1.62, Я (??), 16:34, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    под капотом у cmake куча внутренней кухни, и если захотел собрать чужой проект, в котором полагаются на внутренние определения, включая методы определения пакетов путем парсинга path, при этом cmake релизится с глюками ручного указания путей, то это прямая дорога в адд кроссозависимости внутренних переменных
     
  • 1.78, Аноним (-), 19:11, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    GNU make и язык Си. Это всё что нужно для счастья.
     
     
  • 2.110, n00by (ok), 09:28, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как там грамотно написать такое?

    # Функция всего лишь удаляет суффикс -unstable-v с цифрой из имени файла.
    unvers = $(strip $(foreach v,1 2 3 4 5 6 7 8 9,\
                 $(if $(findstring -v$(v),$(1)),$(subst -unstable-v$(v),,$(1)),)))
    wlproto = $(if $(findstring unstable,$(1)),unstable/$(call unvers,$(1)),stable/$(1))

     
     
  • 3.119, Аноним (119), 01:09, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё один неосилятор ChatGPT)
     
     
  • 4.124, n00by (ok), 10:36, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Но у нового неосилятора и кода нет, а у меня есть. ;)
     
     
  • 5.126, Аноним (144), 12:06, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Но у нового неосилятора и кода нет, а у меня есть. ;)

    Тот самый случай, когда код лучше удалить и не позориться.

     

  • 1.83, Аноним (144), 19:56, 29/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая система описания сборки, позволяет делать типичные вещи интуитивно просто. Но всегда находятся неучи, неосилившие документацию.
     
     
  • 2.99, Нуину (?), 22:25, 29/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Хорошая система описания сборки,

    Настолько хорошая, что есть такое понятие как modern cmake?

     
     
  • 3.107, Аноним (144), 08:02, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Хорошая система описания сборки
    > Настолько хорошая, что есть такое понятие как modern cmake?

    Именно. Разработчики учитывают ошибки и делают систему лучше.

     
  • 2.108, Я (??), 08:32, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    для простых проектов годится. для сложных набор адских костылей. например, где каждый пакет имеет свои установки для минимальной версии cmake или cmake не поддерживает компилятор или приходится использовать костыли из cmake и json (несколько компиляторов llvm, msvc, icx, но унылый cmake очень умный и живёт своей жизнью, игнорируя прямые указания по выбору компилятора, тут уже не обойтись без допкостылей на json).
     
     
  • 3.109, Аноним (144), 09:15, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > для простых проектов годится. для сложных набор адских костылей. например, где каждый
    > пакет имеет свои установки для минимальной версии cmake или cmake не
    > поддерживает компилятор или приходится использовать костыли из cmake и json (несколько
    > компиляторов llvm, msvc, icx, но унылый cmake очень умный и живёт
    > своей жизнью, игнорируя прямые указания по выбору компилятора, тут уже не
    > обойтись без допкостылей на json).

    Тут есть два путя: прочесть документацию или не использовать CMake. Вас кто-то под дулом пистолета заставляет использовать CMake?

     
  • 2.114, Аноним (114), 13:00, 30/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да кошмарная на самом деле (как, впрочем, вообще весь тулинг в C/C++ мире), просто другие ещё хуже, на этом и выезжает.
     
     
  • 3.120, Нуину (?), 02:38, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Да кошмарная на самом деле (как, впрочем, вообще весь тулинг в C/C++
    > мире), просто другие ещё хуже, на этом и выезжает.

    А где хорошо? Гвоздями прибитые монстры для новых язычков? А вот С, С++ (и не только) можно при желании обычным make собрать.

     
     
  • 4.129, Аноним (114), 16:47, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А где хорошо?

    В голанге хороший тулинг, в хашкеле (cabal) тоже ничего.

    >А вот С, С++ (и не только) можно при желании обычным make собрать

    Эм... и что? Фанфэктами делишься просто?

     
     
  • 5.134, Нуину (?), 20:46, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>А где хорошо?
    > В голанге хороший тулинг, в хашкеле (cabal) тоже ничего.

    Чем хорош? Что завязан на одну контору?

    >>А вот С, С++ (и не только) можно при желании обычным make собрать
    > Эм... и что?

    А то, что можно при желании обойтись без всякой мутной хрени достаточно просто. Напомни, сколько кода в cargo или dune окамлевском?

     
     
  • 6.135, Аноним (114), 22:32, 31/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    При желании можно код в блокнот через микрофон насвистывать, и чего? Исходники голангового тулинга открыты, как и сам язык, какая одна контора? При чём тут объём кода в cargo? Ты по методичке что ли шпаришь? :)
     
     
  • 7.137, Нуину (?), 00:56, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > При желании можно код в блокнот через микрофон насвистывать, и чего?

    Понасвистывай.

    > При чём тут объём кода в cargo?

    Притом, что рано или поздно тебе придется туда залезть. Инструменты должны быть простыми, легко собираться, легко читаться и обладать гибкостью. А не быть узкоспециализированными монстрами.

     
     
  • 8.139, Аноним (114), 07:49, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Жёстко ты про CMake ... текст свёрнут, показать
     
  • 7.138, Нуину (?), 00:58, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >  Исходники голангового тулинга открыты, как и сам язык, какая одна контора?

    А ты смешной. Если контора не одна, то кому телеметрия в компиляторе стучит?

     
     
  • 8.140, Аноним (114), 07:59, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Телеметрия стучит занимающейся разработкой этого тулинга конторе, но отсылку над... текст свёрнут, показать
     
     
  • 9.143, Аноним (141), 08:47, 01/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде, по дефолту уже врубали Хотя так то окно Овертона штука такая ... текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру