URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 137560
[ Назад ]

Исходное сообщение
"Релиз сборочной системы CMake 4.1.0 "

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

Подробнее: https://www.opennet.me/opennews/art.shtml?num=63713


Содержание

Сообщения в этом обсуждении
"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:34 
В каком интересно месте он "простой языка сценариев"? По-моему он давно примкнул к тем кого должен был заменить

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:38 
Тоже обратил внимание, что все альтернативы старому-доброму make почему-то сложнее и только продолжают бухнуть. Может конечно возможность выкачивать зависимости с гитхаба напрямую и есть хорошо, но вот эта вечная беготня с «да что перестроить уже, чтобы ты готовую либу всё же увидел» и жонглированием трудночитаемыми конфигами напрягает.
А сколько дыр через все эти навороченные системы сборки пролезает...

"Релиз сборочной системы CMake 4.1.0 "
Отправлено IMBird , 12-Авг-25 10:39 
Крепитесь: всё чаще попадаются C/C++ проекты со сборочными скриптами на питоне.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:46 
Так питон идеальный язык для быстрого написания скриптов. Разве не так? И да, meson открой для себя.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:48 
На мезоне сидят гтк, вяленд, системд и оригинальный ксорг, что как бы намекает.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено анонд , 12-Авг-25 11:15 
Версии сборочных системы не всегда совместимы как тотже Conan (1.x vs 2.x) в отличие от CMake

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:46 
А почему не на расте?

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:14 
> А почему не на расте?

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


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Советский инженер , 12-Авг-25 13:12 
что там гадать.
toml & rust (build.rs)

"Релиз сборочной системы CMake 4.1.0 "
Отправлено анонд , 12-Авг-25 11:14 
и Lua (xmake с xrepo в китайских проектах)
Питон это Meson или Conan

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:43 
>все альтернативы старому-доброму make

Я тебе маленький секрет открою. На выходе cmake генерится старый добрый Makefile.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 11:03 
Да он CMake и не пользуется.

И наверняка вообще имеет условное отношение к разработке на C или C++, ибо собирать сколь-нибудь большой проект на этих языках при помощи голого make - это чистый мазохизм. Коллеги тебе этого тупо не дадут сделать.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:45 
Эти коллеги в вкусно-и-точка скоро работать уйдут, т.к. иишка всех лоускилов выкидывает уже с рынка. Я вот стартап пилю и там только Make, т.к. это мегаудобно все вспомогательные действия держать в 1 месте а не плодить кучу мелких скриптов. И действия - любые, а не только предусмотренные авторами смаке. И качать зависимости можно хоть с гитхуба хоть откуда прозрачным способом и билдить их какой угодно сторонней системой сборки, просто сделав соответсвующий таргет. При этом собственно сборка всех с/с++ файлов проекта - 7 строк.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:00 
> Эти коллеги в вкусно-и-точка скоро работать уйдут
> Я вот стартап пилю

Ну, то есть, на мороз пока выкинули только тебя. 😂 Стартап, лол...

> все вспомогательные действия держать в 1 месте а не плодить кучу мелких скриптов

И весь исходный код тоже в одном файле, надеюсь? 😂 Хотя, когда у тебя хэллоуворлд - это не проблема, так ведь?

> И действия - любые, а не только предусмотренные авторами смаке

А, ну понятно: еще один эксперт, который CMake в глаза не видел, рассказывает об его ограничениях. 🤦

> И качать зависимости можно хоть с гитхуба хоть откуда прозрачным способом и билдить их какой угодно сторонней системой сборки, просто сделав соответсвующий таргет. При этом собственно сборка всех с/с++ файлов проекта - 7 строк.

Ты не поверишь, но в CMake тоже так 🤯. Только вот работать оно будет на всех системах (даже Винде), а не только в юниксовом окружении.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:13 
Ну каг бе стратап зарабатывает уже неплохо, есть некоторый штат сотрудников, а я за CTO. Я заранее подготовился, а кого-то вот ждёт неприятный сюрприз. Кусочки кода, которые узко смотрящие кодеры могут писать, давно уже нейронка делает.

> эксперт, который CMake в глаза не видел

15 лет в IT за деньги, а так ещё больше.

> даже Винде

А мне не надо чтобы на венде работало (но там вообще-то есть линукс окружение и собрать можно если не лоускил или хотя бы дипсик осилил).


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:24 
> есть некоторый штат сотрудников, а я за CTO

Ты уж определись, СТО ты или кодер-писатель make. 😂

> 15 лет в IT за деньги, а так ещё больше

Жаль, что не на позиции разработчика. 😂 А то в любом серьезном проекте ты за ручное написание make получил бы по шапке уже в первый месяц. 🤣

> А мне не надо чтобы на венде работало

Да я и не сомневался. Только вот тем, кому это надо - используют CMake.

> но там вообще-то есть линукс окружение и собрать можно если не лоускил или хотя бы дипсик осилил

Тебе об этом тот самый Дипсик сказал? Спроси его заодно, зачем мне там на Винде "линукс окружение", если проект собирается с msvc.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:58 
> Ты уж определись, СТО ты или кодер-писатель make.

Тут некоторые жалуются мол синтаксис непонятный. Чатик всё напишет если что-то нетривиальное нужно. Лычку мастера мейкфайлов иметь не обязательно, достаточно иметь положительный iq. А так я много чё делаю, RnD всякое, деплой, настройка системы, оптимизация нейросетевых моделек - не только код пишу. Поэтому make как инструмент автоматизации не только лишь сборки - мастхэв.

> если проект собирается с msvc

Кто в здравом уме в 2к25 будет планировать стартап под венду? Либо под мак писать надо, т.к. деньги там, либо веб, котороый на линукс / wasm кругом, либо хардварный стартап с прошивками - там опять же msvc ненужон. Везде Make как родной. Если игру делать - то они все на готовых движках со своими билд системами.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено анонд , 12-Авг-25 11:16 
CMake использует Ninja (когда доступно)

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Советский инженер , 12-Авг-25 13:17 
я тебе маленький секрет открою.
СMake никогда не был альтернативой make.
СMake стартанул как альтернатива autotools.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:21 
Согласен

cmake ./
make


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:31 
Давно уже генерится ninja. Потому что make не умеет не только в конфигурацию проекта, но и в собственно сборку.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:53 
> Тоже обратил внимание, что все альтернативы старому-доброму make

А make когда-то был системой сборки? 😂


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 11:04 
А не что тот факт, что cmake - это генератор Makefile'ов, т.е. аналог autotools. Makefile, cгенерированный cmake'ом, затем внезапно запускается в обычном make.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено анонд , 12-Авг-25 11:17 
CMake поддерживает несколько генераторов. Ninja намного производительнее чем Make

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:06 
> Ninja намного производительнее чем Make

Это миф. Ninja просто запускает подготовленные кем-то (basel например) команды из compile_commands.json.
1. если в makefile просто засунуть список этих команд, без вычисления зависимостей, то отработает за +- то же время, но так люди не делают, т.к. не читаемо.
2. ninja отрабатывает после генератора этого compile_commands.json и если сложить время, то оно будет больше чем у нормального человеческого Makefile из нескольких строчек.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Советский инженер , 12-Авг-25 13:20 
> ... команды из compile_commands.json

🤣🤣🤣


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:30 
>> Ninja намного производительнее чем Make
> Это миф. Ninja просто запускает подготовленные кем-то (basel например) команды из compile_commands.json.

Вот такие вот истории со срывами покровов получаются, когда стартапного СТО познакомить с DeepSeek... 🤦


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:41 
Чатик мне запилил так-то рабочий скрипт для конвертации мезон либ в тупо папку в проекте с исходниками парсингом compile_commands.json, так что я в курсе, как это работает. Makefile в отличие от cmake не требует указывать каждый C/C++ файл (тот так может но криво и ломается так сборка постоянно, поэтому у смачников сизифов труд по добавлению каждого с файла в смаке). Т.к. мне не нужно иметь кучу раздутых so всё собирается статически с едиными флагами в компактный бинарь.
И да, я использую генерацию кода - и что вы мне сделаете) Раздутый штат кодеров больше компаниям не нужон.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:13 
> рабочий скрипт для конвертации мезон либ в тупо папку в проекте с исходниками парсингом compile_commands.json

Попроси чатик объяснит смысл этого набора случайных слов, ибо я лично распарсить его не смог.

> Makefile в отличие от cmake не требует указывать каждый C/C++ фай

CMake тоже не требует. Спроси у своего чатика о CONFIGURE_DEPENDS.

> Т.к. мне не нужно иметь кучу раздутых so всё собирается статически с едиными флагами

Ага, все сторонние либы, да еще и C с C++ вперемешку - с едиными флагами? 😂 Ну сказано же: мастер хэллоуворлдов, реальных кодовых баз в глаза не видавший.

> И да, я использую генерацию кода - и что вы мне сделаете)

Проявим сочувствие. Ну, насколько это возможно к "стартапному СЕО, по совместительству писателю мейкфайлов при помощи DeepSeek" 🤣


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:24 
> я лично распарсить его не смог

Не мудрено для i shaped специалиста по смаке. Поясняю - берётся мезон либа, указываются нужные флаги, мезон генерит compile_commands, скипт на питоне достаёт оттуда пути к собираемым файлам, фиксит корявые пути к инклудам и кладёт с/с++/h файлы в отдельную папочку внутри Makefile проекта. Всё, больше мезон не нужен.

> C с C++ вперемешку - с едиными флагами?

Да, прикинь? Проект на C/C++ с едиными флагами (кроме версии стандарта языка разве что, это включено в CC/CXX переменную)

app: $(patsubst %.cpp,build/%.cpp.o,$(SRC_CPP)) $(patsubst %.c,build/%.c.o,$(SRC_C))
    $(CXX) $^ $(LFLAGS) -o app

build/%.c.o: %.c
    $(CC) $(CFLAGS) -I$(dir $<) -MD -c $< -o $@

build/%.cpp.o: %.cpp
    $(CXX) $(CFLAGS) -I$(dir $<) -MD -c $< -o $@

-include $(patsubst %.cpp,build/%.d,$(SRC_CPP)) $(patsubst %.c,build/%.d,$(SRC_C))

И всё! Надо будет - добавлю go / swift / что угодно компилируемое.

> Проявим сочувствие

Учитесь, пока не поздно) Либо правильному промптингу нейронок, либо котлету на булку класть)


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 10:41 
А где ты там сложности вообще увидел? target_link_libraries не осилил?

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:19 
В прошлый раз тут советовали писать тесты для оператора if, потому что по меркам CMake это сложная логика с проблемным легаси ("The if command was written very early in CMake's history..."), которое решили не чинить.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:43 
Не знаю, кто там тебе и чего советовал, но проект на cmake накинуть можно за пару минут.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Жироватт , 12-Авг-25 10:43 
Интересно, как скоро
а) язык конфигурирования сборочной системы СМаке оформится как отдельный, полноценнный Тьюринг-полный язык,
б) для которого нужен будет свой язык конфигурирования сборки?

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 11:30 
так CMake уже Тьюринг-полный и скрипты можно запускать не в режиме сборки, а в режиме интерпретации через ключ -P

"Релиз сборочной системы CMake 4.1.0 "
Отправлено anon57 , 12-Авг-25 11:16 
На работе, в основных проектах, был выбран CMake. Периодически приходиться нырять в эту чертовщину и чинить. Хорошо хоть появились форки CMake с поддержкой отладки.
Для домашних проектов использую premake5. С версии 5-beta6 появился API для управления зависимостями примерно как в CMake. Теперь можно описать как использовать либу, а потом просто воткнуть в проекте uses 'SDL3' и нужные опции прокидываются. Тут если что почитать можно: https://premake.github.io/docs/Usages-and-Uses

Короче CMake не нужен, закапывайте.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:49 
> С версии 5-beta6 появился API для управления зависимостями примерно как в CMake.
> нужные опции прокидываются
> Короче CMake не нужен, закапывайте

То есть недавно в бета-версии premake появилась опция, которая доступна в CMake уже лет 20? Уже бегу закапывать CMake!


"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:44 
>в основных проектах
>нырять в эту чертовщину и чинить

Наверное тут надо команду разработи менять, а не cmake.


"Релиз сборочной системы CMake 4.1.0 "
Отправлено анонд , 12-Авг-25 11:18 
Все используют CMake, но писать на этом языке никто не хочет

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:48 
Я тебя может удивлю, но пользователи cmake даже не используют. Только мейнтейнеры и изредка программисты.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:08 
Беда почти всех яп - чтобы собрать программу, надо выучить ещё один язык. Хорошо, что я сборщики себе на сях свои пишу.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:14 
что мешает писать все в одном файле? :)

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 12:42 
Нужно умещать весь код в один экран, как это делает создатель языка K.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 13:25 
забыл совсем, у вас там скрол не работает в терминале :)

"Релиз сборочной системы CMake 4.1.0 "
Отправлено trolleybus , 12-Авг-25 13:14 
Rust с build.rs нервно курит в сторонке... Хотя, о чем это я. Для экспертов опеннета раст - не язык.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:34 
build.rs нужен в одном крейте из ста. Для обычной сборки обычного проекта на rust (с зависимостями, естественно) вообще ни строчки сборочной системы написать не надо.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:10 
а в чем проблема писать так чтобы одного языка хватало?

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:02 
Кто-нибудь пробовал системы сборки meson или bazel?

"Релиз сборочной системы CMake 4.1.0 "
Отправлено Аноним , 12-Авг-25 14:08 
Зависимости cmake весят больше программы в несколько раз. Прикольно, че.

"Релиз сборочной системы CMake 4.1.0 "
Отправлено нах. , 12-Авг-25 14:42 
смешнее то что куча из них (к счастью, не все - обязательные) давно сами без cmake не собираются.

(поэтому у вас и не будет больше ни одной нормальной ос после линукса и венды)