LINUX.ORG.RU

CMake 3.28

 , , , ,

CMake 3.28

1

3

6 декабря состоялся выпуск 3.28 кроссплатформенной системы сборки CMake, написанной на языке C++ и распространяемой по лицензии BSD-3.

Список основных изменений:

  • улучшена поддержка модулей C++20 в генераторах Ninja и Visual Studio (VS 2022 и новее). Подробности в cmake-cxxmodules(7);
  • код языка HIP для GPU NVIDIA теперь может быть скомпилирован компилятором nvcc (NVIDIA CUDA Compiler). Подробности в описании переменной CMAKE_HIP_PLATFORM;
  • удалена команда exec_program(), признанная устаревшей в CMake 3.0. Вместо неё следует использовать execute_process();
  • сгенерированные файлы в целях, использующих наборы файлов, теперь по умолчанию считаются приватными. Генерируемые публичные заголовочные файлы должны быть указаны с помощью наборов файлов. Это позволяет создавать более эффективные графы сборки для Ninja. Подробности в политике CMP0154;
  • команды find_library(), find_path() и find_file() больше не ищут в префиксах установки, полученных из переменной окружения PATH. Это поведение было добавлено в CMake 3.3 для поддержки сред разработки MSYS и MinGW («MSYSTEM») в Windows и могло искать нежелательные префиксы, которые случайно оказались в PATH по каким-либо причинам.
  • добавлена поддержка директорий .xcframework для платформ Apple.

>>> Полный список изменений

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от archie

Но это все равно не объясняет, почему большинство завязалось на CMake.

Очевидно потому что альтернативы тогда не было. Я писал примерно тогда 2001 сборку средненького проекта на чистом make. Проект поддерживал сборку на виндосе и линуксе, кросскомпиляцию на несколько платформ, я даже слепил генерацию проектных файлов для вижуал студио и кодекомпозера от техас инструментс (и даже частично импорт из них обратно). И это всё работало, конечно, но… Это было больше похоже на магию для других разработчиков в этом же проекте. Слишком сложно для понимания. CMake облегчает и упрощает многие стандартные задачи своими многочисленными готовыми встроенными командами.

Потом какое-то время работал с tmake и qmake, но те были слишком привязаны к Qt.

Разумеется CMake крив и имеет серьёзные врождённые уродства. Например у него похоже есть большие проблемы со сгенерированным кодом, это отлично видно например по тому, что поддержка препроцессинга Qt в нём реализована отчасти прямо в исходниках.

Но простые ежедневные задачи он позволяет решать простым удобным способом. Это его неоспоримое преимущество. А за счёт популярности он стал стандартом де-факто, что позволяет найти готовы рецепты для большинства распространённых проблем.

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

sena ★★
()
Последнее исправление: sena (всего исправлений: 3)
Ответ на: комментарий от sena

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

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

anonmyous
()
Ответ на: комментарий от anonmyous

Он давно уже взлетел

Сыроват, на мой взгляд, документация куцая, для массового применения непригоден.

Всё ещё жив за счёт гугла, судя по всему. В свободном плавании - не жилец.

sena ★★
()
Последнее исправление: sena (всего исправлений: 1)
Ответ на: комментарий от sena

Всё ещё жив за счёт гугла, судя по всему. В свободном плавании

  • не жилец.

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

anonmyous
()
Ответ на: комментарий от anonmyous

Повторяю: он в корпоративном сегменте жилее всех жильцов.

Ну так я же и не спорю, разве гугл не корпоративный сегмент? Я так и говорю, что за счёт гугла жив. И будет жить пока гугл его двигает. Но может они его и доделают когда-нибудь. Основа-то хорошая. Допилить думаю можно.

sena ★★
()
Последнее исправление: sena (всего исправлений: 1)
Ответ на: комментарий от sena

Ну так я же и не спорю, разве гугл не корпоративный сегмент? Я так и говорю, что за счёт гугла жив.

Это, по вашему, логика? При чём тут гугл, если его используют конторы от мировых гигантов, до яндекса с касперским?

Основа-то хорошая. Допилить думаю можно.

Сэр, заканчивайте с этим. :) Вы будете нетфликсу рассказывать, что его можно допилить, и тогда, пожалуй, пользуйтесь? Нет, они вашего разрешения на это не просят, и ваше мнение про его допил их тоже не интересует. По тому, что просто пользуются. А вне корпоративного сегмента он и не собирается выходить.

anonmyous
()
Ответ на: комментарий от anonmyous

При чём тут гугл, если его используют конторы от мировых гигантов, до яндекса с касперским?

Потому что его в гугле разработали. В нём и используется.

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

Вы будете нетфликсу рассказывать, что его можно допилить, и тогда, пожалуй, пользуйтесь?

Нетфликс это который сериалы клепает? А как он его допилит и зачем? И вообще, нафига нетфликсу система сборки?

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

sena ★★
()
Последнее исправление: sena (всего исправлений: 2)
Ответ на: комментарий от sena

Не, я имею в виду авторов базеля, которые в гугле сидят. Если допилят, то шансы есть. Не допилят, так он там и будет дальше вариться, по корпорациям…

Да я даже не хочу в таком ключе с вами ничего всерьёз обсуждать и давать ссылки. Сначала вернитесь в адекват. Нафига им для вас его допиливать, и слушать от вас про то, какие у него шансы тогда будут, если его и так уже куча корпораций использует?

А жаль, в принципе задумка-то неплохая. Мог бы выйти в люди.

Ему фиолетово на ваше мнение. К тому же, вы, похоже, просто потролить решили.

anonmyous
()
Ответ на: комментарий от anonmyous

Да я даже не хочу в таком ключе с вами ничего всерьёз обсуждать и давать ссылки. Сначала вернитесь в адекват. Нафига им для вас его допиливать, и слушать от вас про то, какие у него шансы тогда будут, если его и так уже куча корпораций использует?

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

Как по мне это удобно, когда разработчики которых ты нанимаешь, уже знают основной инструмент для сборки, который используется внутри конторы. А уж захотят в гугле допиливать или нет, это их дело.

Ещё как вариант, может быть, кто-то форкнет и доведёт до ума.

Ему фиолетово на ваше мнение.

Да я как бы и не навязываюсь.

sena ★★
()
Последнее исправление: sena (всего исправлений: 1)
Ответ на: комментарий от sena

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

Пробовал. Он оставил у меня ощущение очень приятного по синтаксису и вместе с тем сырого продукта.

вместо сообщений об ошибках программа лупит какие-то непонятные стектрейсы. При этом я почти не сомневаюсь, что просто недописал в файл проекта какое-то нужное ключевое слово, но какое — я должен догадаться сам.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Пробовал. Он оставил у меня ощущение очень приятного по синтаксису и вместе с тем сырого продукта.

Точно! У меня тоже. Такое впечатление что бросили не доделав.

sena ★★
()
Последнее исправление: sena (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.