1.1, zhenya_k (?), 15:44, 08/11/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> вместо вручную написанных Makefile-ов
А cmake-файлы уже не нужно вручную писать?
| |
|
2.2, Жорж (?), 15:47, 08/11/2012 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это же опенсорц, вы ничего не понимаете.
У нас фраза "мы бросили трахаться с $чем-то" означает "мы начали трахаться с $чем-то другим"
| |
|
3.11, Ytch (?), 00:55, 09/11/2012 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Это же опенсорц, вы ничего не понимаете.
> У нас фраза "мы бросили трахаться с $чем-то" означает "мы начали трахаться с $чем-то другим"
Можно подумать так происходит только в опенсорц.
| |
|
2.3, Аноним (-), 16:13, 08/11/2012 [^] [^^] [^^^] [ответить]
| +/– |
CMake используется для генерации Makefile'ов. Ещё того же могут использоваться autotools (./configure).
| |
2.4, Аноним (-), 16:51, 08/11/2012 [^] [^^] [^^^] [ответить]
| +8 +/– |
CMake файлы на порядок выше уровнем чем Makefile. Как C++ и ассемблер.
- На ручном Makefile сборка более-менее сложного приложения - несколько страниц правил сборки отдельных файлов, вызовов gcc -M для определения зависимостей между исходниками, линковки приложения, установки, адового объёма обвязки для всего этого.
- Многое на make вообще нельзя сделать - например, работающий кросс-платформенный поиск зависимостей, проверки окружения и т.д.
итого они требуют постоянного изменения - при изменении структуры проекта, добавлению новых исходных файлов, добавлению поддержки новых платформ, да ещё и с большой вероятностью не заработают изкоробки у пользователя, потому что у него библиотеки в /usr/local/lib, а не /usr/lib.
На cmake же это делается парой строк:
FIND_PACKAGE(SDL REQUIRED) # хотим библиотеку SDL
ADD_EXECUTABLE(myapp file1.c file2.c file3.c) # собираем приложение
INSTALL(myapp bin) # устанавливаем в PREFIX/bin
и не требует поддержки. Более того, даже список файлов можно сделать генерящимся автоматически. Это автоматически умеет генерацию Makefile (причем и GNU- и BSD-make совместимых), проектов для Visual Studio и (кажись) CodeBlocks и чего угодно, работает без модификаций на всех платформах, позволяет сразу разделить release/debug сборки и т.д. и т.п.
CMake не данный момент - самая совершенная система сборки, и ничего удивительного что они перешли именно на неё.
| |
|
|
|
|
6.14, Аноним (-), 15:14, 09/11/2012 [^] [^^] [^^^] [ответить]
| +/– |
>И чем тогда CMake лучше?
Кроссплатформенностью, один раз написал на cmake и собирай на любой ОС, кроме того, cmake содержит встроенную систему автоматического поиска зависимостей - заголовочных файлов и библиотек.
И прочитай уже матчасть, наконец.
CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt:
Makefile в системах Unix для сборки с помощью make;
файлы projects/workspaces (.dsp/.dsw) в Windows для сборки с помощью Visual C++;
проекты XCode в Mac OS X
| |
|
|
|
|
|
1.7, Аноним (-), 21:15, 08/11/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
жаль только что эти сервера так и не научились до сих пор линковаться друг к другу
| |
|
2.9, YetAnotherOnanym (?), 21:22, 08/11/2012 [^] [^^] [^^^] [ответить]
| +/– |
Verlihub вроде может (впрочем, не знаю, это его родная функциональность или это какой-то скрипт на Lua).
| |
|
3.18, Аноним (-), 20:25, 09/11/2012 [^] [^^] [^^^] [ответить]
| +/– |
скрипт на lua, причем нерабочий, а в настоящее время и неподдерживаемый (verlilink)
| |
|
|
|