The OpenNET Project / Index page

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



"Релиз сборочной системы CMake 4.1.0 "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз сборочной системы 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 12-Авг-25, 10:34   +12 +/
В каком интересно месте он "простой языка сценариев"? По-моему он давно примкнул к тем кого должен был заменить
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #4

2. Сообщение от Аноним (2), 12-Авг-25, 10:38   +6 +/
Тоже обратил внимание, что все альтернативы старому-доброму make почему-то сложнее и только продолжают бухнуть. Может конечно возможность выкачивать зависимости с гитхаба напрямую и есть хорошо, но вот эта вечная беготня с «да что перестроить уже, чтобы ты готовую либу всё же увидел» и жонглированием трудночитаемыми конфигами напрягает.
А сколько дыр через все эти навороченные системы сборки пролезает...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3, #5, #11, #13

3. Сообщение от IMBird (ok), 12-Авг-25, 10:39   +6 +/
Крепитесь: всё чаще попадаются C/C++ проекты со сборочными скриптами на питоне.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #7, #8, #14

4. Сообщение от Аноним (7), 12-Авг-25, 10:41   –1 +/
А где ты там сложности вообще увидел? target_link_libraries не осилил?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #34

5. Сообщение от Аноним (7), 12-Авг-25, 10:43   +/
>все альтернативы старому-доброму make

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #12, #16, #33, #36, #50

6. Сообщение от Жироватт (ok), 12-Авг-25, 10:43   +3 +/
Интересно, как скоро
а) язык конфигурирования сборочной системы СМаке оформится как отдельный, полноценнный Тьюринг-полный язык,
б) для которого нужен будет свой язык конфигурирования сборки?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #79

7. Сообщение от Аноним (7), 12-Авг-25, 10:46   +/
Так питон идеальный язык для быстрого написания скриптов. Разве не так? И да, meson открой для себя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #10, #15

8. Сообщение от Аноним (2), 12-Авг-25, 10:46   +1 +/
А почему не на расте?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #24

10. Сообщение от Аноним (2), 12-Авг-25, 10:48   +1 +/
На мезоне сидят гтк, вяленд, системд и оригинальный ксорг, что как бы намекает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #59

11. Сообщение от Аноним (12), 12-Авг-25, 10:53   +/
> Тоже обратил внимание, что все альтернативы старому-доброму make

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #78

12. Сообщение от Аноним (12), 12-Авг-25, 11:03   +4 +/
Да он CMake и не пользуется.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #26

13. Сообщение от Аноним (13), 12-Авг-25, 11:04   –1 +/
А не что тот факт, что cmake - это генератор Makefile'ов, т.е. аналог autotools. Makefile, cгенерированный cmake'ом, затем внезапно запускается в обычном make.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #18

14. Сообщение от анонд (?), 12-Авг-25, 11:14   +/
и Lua (xmake с xrepo в китайских проектах)
Питон это Meson или Conan
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #62

15. Сообщение от анонд (?), 12-Авг-25, 11:15   +/
Версии сборочных системы не всегда совместимы как тотже Conan (1.x vs 2.x) в отличие от CMake
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

16. Сообщение от анонд (?), 12-Авг-25, 11:16   +1 +/
CMake использует Ninja (когда доступно)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #27, #42

18. Сообщение от анонд (?), 12-Авг-25, 11:17   +2 +/
CMake поддерживает несколько генераторов. Ninja намного производительнее чем Make
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #29

19. Сообщение от анонд (?), 12-Авг-25, 11:18   +2 +/
Все используют CMake, но писать на этом языке никто не хочет
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #43

21. Сообщение от Аноним (21), 12-Авг-25, 11:30   +1 +/
так CMake уже Тьюринг-полный и скрипты можно запускать не в режиме сборки, а в режиме интерпретации через ключ -P
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

22. Сообщение от Аноним (22), 12-Авг-25, 12:08   +1 +/
Беда почти всех яп - чтобы собрать программу, надо выучить ещё один язык. Хорошо, что я сборщики себе на сях свои пишу.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23, #32, #47

23. Сообщение от Аноним (23), 12-Авг-25, 12:14   –1 +/
что мешает писать все в одном файле? :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #25

24. Сообщение от Аноним (24), 12-Авг-25, 12:14   +/
> А почему не на расте?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #30

25. Сообщение от Аноним (-), 12-Авг-25, 12:42   –1 +/
Нужно умещать весь код в один экран, как это делает создатель языка K.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #38

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

28. Сообщение от Аноним (12), 12-Авг-25, 13:00   +1 +/
> Эти коллеги в вкусно-и-точка скоро работать уйдут
> Я вот стартап пилю

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #31

29. Сообщение от Аноним (26), 12-Авг-25, 13:06   –3 +/
> Ninja намного производительнее чем Make

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #35, #39

30. Сообщение от Советский инженер (ok), 12-Авг-25, 13:12   +/
что там гадать.
toml & rust (build.rs)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

31. Сообщение от Аноним (26), 12-Авг-25, 13:13   –1 +/
Ну каг бе стратап зарабатывает уже неплохо, есть некоторый штат сотрудников, а я за CTO. Я заранее подготовился, а кого-то вот ждёт неприятный сюрприз. Кусочки кода, которые узко смотрящие кодеры могут писать, давно уже нейронка делает.

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

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

> даже Винде

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #37

32. Сообщение от trolleybus (?), 12-Авг-25, 13:14   +/
Rust с build.rs нервно курит в сторонке... Хотя, о чем это я. Для экспертов опеннета раст - не язык.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #51

33. Сообщение от Советский инженер (ok), 12-Авг-25, 13:17   +2 +/
я тебе маленький секрет открою.
СMake никогда не был альтернативой make.
СMake стартанул как альтернатива autotools.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

34. Сообщение от Аноним (34), 12-Авг-25, 13:19   +2 +/
В прошлый раз тут советовали писать тесты для оператора if, потому что по меркам CMake это сложная логика с проблемным легаси ("The if command was written very early in CMake's history..."), которое решили не чинить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #41

35. Сообщение от Советский инженер (ok), 12-Авг-25, 13:20   +4 +/
> ... команды из compile_commands.json

🤣🤣🤣

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

36. Сообщение от Аноним (36), 12-Авг-25, 13:21   +/
Согласен

cmake ./
make

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

37. Сообщение от Аноним (12), 12-Авг-25, 13:24   +1 +/
> есть некоторый штат сотрудников, а я за CTO

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #44, #69

38. Сообщение от Аноним (23), 12-Авг-25, 13:25   +1 +/
забыл совсем, у вас там скрол не работает в терминале :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

39. Сообщение от Аноним (12), 12-Авг-25, 13:30   +2 +/
>> Ninja намного производительнее чем Make
> Это миф. Ninja просто запускает подготовленные кем-то (basel например) команды из compile_commands.json.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #40

40. Сообщение от Аноним (26), 12-Авг-25, 13:41   –1 +/
Чатик мне запилил так-то рабочий скрипт для конвертации мезон либ в тупо папку в проекте с исходниками парсингом compile_commands.json, так что я в курсе, как это работает. Makefile в отличие от cmake не требует указывать каждый C/C++ файл (тот так может но криво и ломается так сборка постоянно, поэтому у смачников сизифов труд по добавлению каждого с файла в смаке). Т.к. мне не нужно иметь кучу раздутых so всё собирается статически с едиными флагами в компактный бинарь.
И да, я использую генерацию кода - и что вы мне сделаете) Раздутый штат кодеров больше компаниям не нужон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #48

41. Сообщение от Аноним (7), 12-Авг-25, 13:43   +/
Не знаю, кто там тебе и чего советовал, но проект на cmake накинуть можно за пару минут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

42. Сообщение от Аноним (7), 12-Авг-25, 13:44   +1 +/
>в основных проектах
>нырять в эту чертовщину и чинить

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #58

43. Сообщение от Аноним (7), 12-Авг-25, 13:48   +/
Я тебя может удивлю, но пользователи cmake даже не используют. Только мейнтейнеры и изредка программисты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

44. Сообщение от Аноним (26), 12-Авг-25, 13:58   +/
> Ты уж определись, СТО ты или кодер-писатель make.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #70

45. Сообщение от Аноним (45), 12-Авг-25, 14:02   +/
Кто-нибудь пробовал системы сборки meson или bazel?
Ответить | Правка | Наверх | Cообщить модератору

46. Сообщение от Аноним (45), 12-Авг-25, 14:08   +/
Зависимости cmake весят больше программы в несколько раз. Прикольно, че.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #52, #56

47. Сообщение от Аноним (47), 12-Авг-25, 14:10   +/
а в чем проблема писать так чтобы одного языка хватало?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #81

48. Сообщение от Аноним (12), 12-Авг-25, 14:13   +/
> рабочий скрипт для конвертации мезон либ в тупо папку в проекте с исходниками парсингом compile_commands.json

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #49

49. Сообщение от Аноним (26), 12-Авг-25, 14:24   –2 +/
> я лично распарсить его не смог

Не мудрено для 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 / что угодно компилируемое.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #53, #65

50. Сообщение от Аноним (50), 12-Авг-25, 14:31   +/
Давно уже генерится ninja. Потому что make не умеет не только в конфигурацию проекта, но и в собственно сборку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #61

51. Сообщение от Аноним (50), 12-Авг-25, 14:34   +/
build.rs нужен в одном крейте из ста. Для обычной сборки обычного проекта на rust (с зависимостями, естественно) вообще ни строчки сборочной системы написать не надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

52. Сообщение от нах. (?), 12-Авг-25, 14:42   +/
смешнее то что куча из них (к счастью, не все - обязательные) давно сами без cmake не собираются.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #54, #57

53. Сообщение от Аноним (12), 12-Авг-25, 14:52   +/
> Поясняю - берётся мезон либа, указываются нужные флаги, мезон генерит compile_commands, скипт на питоне достаёт оттуда пути к собираемым файлам, фиксит корявые пути к инклудам и кладёт с/с++/h файлы в отдельную папочку внутри Makefile проекта. Всё, больше мезон не нужен.

Т.е. из человеческого, поддерживаемого Meson файла ты сделал write-only портянку make на выброс, с прибитыми гвоздями инклюдами и по пути угрохав даже *внутренние для либы* флаги компиляции? 😂

Не, ну это гениально! Вот оно - последствие влияния нейронок на неокрепшие умы вайтишников. Вайб-кодерам хоть простительно - они в код не смотрят, а тут...

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

"Прикинь 😧" у тебя будет, когда ты прекратишь сочинять находу и действительно попробуешь таким подходом скомпилировать что-то больше своего хэллоуворлда. И в тот же самый момент до тебя дойдет, зачем нужны билд-системы. даже в пределах одного окружения.

> I$(dir $<) -MD -c $< -o $@
> И всё!

Апхапхах! "И все!" А эти все глупцы десятилетиями Автомейки с Симейками зачем-то придумывают. Узрите, несчастные, как стартапный СТО заменил все ваши поделия одним заклинанием make!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #67

54. Сообщение от Аноним (54), 12-Авг-25, 15:06   +1 +/
Ну GCC вот тоже без GCC не собирается, и что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #60, #64, #77

56. Сообщение от НеФанат (?), 12-Авг-25, 15:08   +/
Используй для таких программ обычный make
Смотри: https://www.opennet.me/openforum/vsluhforumID3/137560.html#49
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

57. Сообщение от Аноним (45), 12-Авг-25, 15:15   +/
"Это какой-то позор..." (с)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

58. Сообщение от Аноним (12), 12-Авг-25, 15:15   +1 +/
> Наверное тут надо команду разработи менять, а не cmake.

Упонминание в комментарии "uses 'SDL3'" говорит о том, что "комнда" состоит лишь из него самого, пишущего для себя игрушки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

59. Сообщение от ryoken (ok), 12-Авг-25, 15:16   +/
У мну в генте по-моему все эти сборочные системы есть. Точно видел cmake, meson, ninja ,%SUBJ% и может еще кого-то. Но особо внимания не обращал, т.к. после запуска  emerge @world обычно иду спать :).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

60. Сообщение от Аноним (12), 12-Авг-25, 15:17   +/
А это очень неудобный вопрос!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #63

61. Сообщение от Аноним (61), 12-Авг-25, 15:18   +/
Мне make не нравится своими тонкостями, которые необходимо помнить. Но вот что бы он в сборку не умел. Я чего то не знаю - получается. Что за проблемы у make со сборкой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

62. Сообщение от IMBird (ok), 12-Авг-25, 15:18   +1 +/
Большое спасибо, я посмотрел и проникся. Даже FPC поддерживает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

63. Сообщение от Аноним (23), 12-Авг-25, 15:28   +/
Там вопрос не сформируется - рекурсия бесконечная.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

64. Сообщение от нах. (?), 12-Авг-25, 15:28   +/
вообще-то до недавнего времени собирался - причем чем-то уровня чуть ли не tinyc. Если даже поломали - ты все еще можешь им собрать 2.7.2 и последовательно доапгрейдиться до какой там тебе нужен для хеловротов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #71, #72

65. Сообщение от нах. (?), 12-Авг-25, 15:33   +/
> build/%.c.o: %.c

ну сразу приехали. Ты просохатил зависимости от .h
Про то что это фу-фу-фу gnu make only уж не будем (этот, хотя бы, все еще собирается в любой  мыслимой и части немыслимых сред, где хотя бы есть posix shell и не очень безнадежно старый gcc)

то есть для одноразовой поделки прокатит, для своего проекта уже непригодно сходу.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #68

66. Сообщение от Аноним (-), 12-Авг-25, 15:36   +/
Автор забыл упомянуть, что CMake - это инструмент для тех, кто программирует на C++.
Ответить | Правка | Наверх | Cообщить модератору

67. Сообщение от Аноним (67), 12-Авг-25, 15:50   +/
> Т.е. из человеческого, поддерживаемого Meson файла

Наоборот же мезон мне поддерживать не нужно а либу нужно было допилить поэтому удобнее всё в единой системе сборки держать. Пересобирать либу снаружи проекта через мезон и дольше и неудобнее чем используя инкрементальную пересборку Make проекта.

> прибитыми гвоздями инклюдами

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

> write-only портянку make на выброс

7 строк всего для сборки C/C++, переиспользую из проекта в проект. Типичная мезон/смаке портянка куда больше т.к. в смаке каждый исходный файл проекта перечисляют.

> стартапный СТО

Сам-то чего добился ?)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

68. Сообщение от Аноним (67), 12-Авг-25, 15:53   +/
Нет они учтены в -include $(patsubst %.cpp,build/%.d,$(SRC_CPP)) $(patsubst %.c,build/%.d,$(SRC_C))

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #85

69. Сообщение от Аноним (70), 12-Авг-25, 15:55   +/
>за ручное написание make получил бы по шапке уже в первый месяц

А разве уже не достаточно?
cmake
cmake --build
cmake --install

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

70. Сообщение от Аноним (70), 12-Авг-25, 15:55   +/
>Если игру делать - то они все на готовых движках со своими билд системами.

Не знаю, у меня что сборка исходников, что уровней, что моделей, всё в батниках с компиляторами.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

71. Сообщение от Аноним (54), 12-Авг-25, 16:00   +/
> Если даже поломали - ты все еще можешь им собрать 2.7.2 и последовательно доапгрейдиться до какой там тебе нужен для хеловротов.

Полагаю, с CMake можно поступить так же.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #84

72. Сообщение от Аноним (12), 12-Авг-25, 16:31   +/
> вообще-то до недавнего времени собирался - причем чем-то уровня чуть ли не tinyc

Лол, какой еще tinyc? 😂 С версии 4.8 (2013 год) GCC написан на C++.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #82

73. Сообщение от nc (ok), 12-Авг-25, 16:39   +/
Для винды пользуюсь штатными *.vcxproj Студии и всё устраивает.
Для линукса пользуюсь штатными *.pro QtCreator'а и всё устраивает.
Все эти сборочные скрипты (make, cmake и т.п., тысячи их)... ни разу в жизни не понадобились, исключая только компиляцию исходников скачанных из инета. И то нередко такое бывает что скачаешь, а оно не компилируется.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #75

75. Сообщение от Аноним (12), 12-Авг-25, 16:59   +/
> Для винды пользуюсь штатными *.vcxproj Студии и всё устраивает.
> Для линукса пользуюсь штатными *.pro QtCreator'а и всё устраивает.

Ну а мог бы один раз под обе платформы написать CMkae файл. Ну и да, под Линуксом и Маком далеко не все проекты юзают QtCreator (именно для сборки).

> Все эти сборочные скрипты (make, cmake и т.п., тысячи их)... ни разу в жизни не понадобились

Это ровно до того момента, когда сборка проекта подразумевает что-то помимо компиляции C++ кода (т.е. когда у проекта кроме исполняемого есть и другие файлы). Вот тут на помощь как раз и приходят CMake и подобные, которые позволяют написать *всю* логику сборки один раз и под все платформы. Да, это логика все равно на опеределенный процент может быть специфичной для платформы, но главное что оставшаяся большая часть не дублируется в двух разных ".sh", ".bat" и т.п., да и сам "скрипт" является частью системы (и процесса) сборки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

77. Сообщение от Аноним (77), 12-Авг-25, 17:12   +/
даже больше, современному gcc нужен питон
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #83

78. Сообщение от _ (??), 12-Авг-25, 17:29   +/
А что - когда то не был? O'Riley :-?
:)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

79. Сообщение от Аноним (79), 12-Авг-25, 17:47   +/
а) уже
б) Bazel. Нормальный высокоуровневый почти-пайтон, который CMake может генерить. Мы используем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

81. Сообщение от _ (??), 12-Авг-25, 17:49   +/
В том что одного не хватает?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

82. Сообщение от нах. (?), 12-Авг-25, 17:51   +/
значит, соберешь сперва 4.7
(Если тебе прям уперлось для твоей болгеносы наираспоследнюю версию компилятора)
это всяко попроще чем пытаться портировать наираспоследний компилятор на ос в которой еще ничего нет потому что нет компилятора.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

83. Сообщение от нах. (?), 12-Авг-25, 17:53   +/
> даже больше, современному gcc нужен питон

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

84. Сообщение от нах. (?), 12-Авг-25, 17:56   +/
>> Если даже поломали - ты все еще можешь им собрать 2.7.2 и последовательно доапгрейдиться до какой там тебе нужен для хеловротов.
> Полагаю, с CMake можно поступить так же.

нет, конечно. Потому что мильен зависимостей и пяток из них сами требуют cmake. Причем гвоздем прибита конкретная наираспоследняя версия (обычно если ее понизить этак на пяток ничего не ломается, но мы про новую ос а не портирование на freebsd7)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

85. Сообщение от нах. (?), 12-Авг-25, 17:58   +/
> Нет они учтены в -include $(patsubst %.cpp,build/%.d

И кто вот это всьо генерить должен - руками каждый .h добавляешь, что-ли?

make dep не просто так был придуман в auto* подходе.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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