LINUX.ORG.RU

CMake с чего начать?


0

0

Посоветуйте с чего начать изучение CMake? На офф сайте инфы много, но она как-то не систематизирована. Например так и не въехал как при генерации Makrfile CMake пониемает какой исходник от каких заголовков в проекте зависит, если вообще такие зависимости учитываются...

Re: CMake с чего начать?

Сначала код писать научись, да, да имено код, имено писать....

ОМГ кто их понаражал?

erfea ★★★★★ ()

Re: CMake с чего начать?

> Например так и не въехал как при генерации Makrfile CMake пониемает какой исходник от каких заголовков в проекте зависит

А есть такая система сборки, которая понимает? Можно пример?

anonymous ()

Re: CMake с чего начать?

Читай введение в синтаксис цмейка, потом man cmake.

Зависимости? Очевидно же, man gcc на предмет -M.

l5k ()

Re: CMake с чего начать?

Лучше не начинай. Лучше НОРМАЛЬНО (да! да! да! именно "НОРМАЛЬНО") разберись с autotools. Для начала. А уж потом решай -- надо тебе или нет CMake...

Да. И код уж будь ласка научись писать. Грамотно...

the_Shadow ()
Ответ на: Re: CMake с чего начать? от anotheranonymous

Re: CMake с чего начать?

Ну да... Вы бы, друг мой, это рассказали бы это кому-нибудь из виндарасов... А то я могу тайну открыть -- при использовании троицы команд вида "configure; make; make install-strip", Вы именно этим заплесневелым куском говна и пользуетесь... Даже если Вы ровным счётом них об этом не знаете...

the_Shadow ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

>А то я могу тайну открыть
КАКОЙ ТЫ УМНЫЙ Я НЕ ЗНАЛ!!!111

>Вы именно этим заплесневелым куском говна и пользуетесь...

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

anotheranonymous ()

Re: CMake с чего начать?

>Например так и не въехал как при генерации >Makrfile CMake пониемает какой исходник от >каких заголовков в проекте зависит, если >вообще такие зависимости учитываются

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

http://www.cmake.org/Wiki/CMake_FAQ#CMake_dependency_scanner

fghj ★★★★★ ()
Ответ на: Re: CMake с чего начать? от anotheranonymous

Re: CMake с чего начать?

>КАКОЙ ТЫ УМНЫЙ Я НЕ ЗНАЛ!!!111

Нда... Я рождён чтобы сделать тебя счастливым... =)))))))

> Вот именно этого я и не хочу,

Поразительно. Кто бы спрашивал...

> а особенно разбираться в чужих автотулзах,

Внимание, вопрос -- а что с ними не так, что там особо сложного?

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

Странно. Постоянно пользуюсь. И в своих и в чужих проектах. Проблем не вижу.

the_Shadow ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

Какой смысл сейчас делать новый проект на этом говне мамонта под названием autotools? Какие плюсы по сравнению с cmake ?

Reset ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

Могу только предположить, что для конфигуряния автотулами не надо иметь ничего, кроме POSIX shell. С либтулом уже хуже, да...

Ни наю, я после долгих и мучительных раздумий для себя сделал выбор в пользу cmake. Автотулы кажуться расширяемее, но ну этот black magic с m4 куда-нибудь. Устал он меня. 8))

kemm ()
Ответ на: Re: CMake с чего начать? от anonymous

Re: CMake с чего начать?

% rpm -q --requires cmake | grep c++
libstdc++.so.6
libstdc++.so.6(CXXABI_1.3)
libstdc++.so.6(GLIBCXX_3.4)
libstdc++.so.6(GLIBCXX_3.4.9)
% ls -lh /usr/lib/libstdc++.so.6.0.10
-rwxr-xr-x 1 root root 944K Nov  5  2008 /usr/lib/libstdc++.so.6.0.10

Это таки критично?

Я хоть и убеждённый крестофоб, но достаточно лицемерен, чтобы использовать довольно таки удобный cmake.

l5k ()
Ответ на: Re: CMake с чего начать? от l5k

Re: CMake с чего начать?

Дело не в том, что cmake себе требует, а в том, что любая софтина будет требовать cmake.

kemm ()
Ответ на: Re: CMake с чего начать? от kemm

Re: CMake с чего начать?

> Дело не в том, что cmake себе требует, а в том, что любая софтина будет требовать cmake.

Только для компиляции. Зато архив с исходниками не будет тяжелее на пару сотен кило только из-за того, что внутри autotools в полном снаряжении.

const86 ★★★★★ ()
Ответ на: Re: CMake с чего начать? от const86

Re: CMake с чего начать?

> Зато архив с исходниками не будет тяжелее на пару сотен кило только из-за того, что внутри autotools в полном снаряжении.

Где вы такое видели, что configure.ac + пачка Makefile.am тянут на 200 кило в архиве? 8-[ ]

kemm ()
Ответ на: Re: CMake с чего начать? от kemm

Re: CMake с чего начать?

> Где вы такое видели, что configure.ac + пачка Makefile.am тянут на 200 кило в архиве? 8-[ ]

Где вы видели тарболлы с configure.ac + Makefile.am внутри? Обычно выкладывают архив, созданный make dist, после прогона всех автотулзов. А там один только configure под две сотни кило порой. Зато ему не нужно ничего, кроме шелла...

const86 ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> А плюс то в чём?

Первое что пришло в голову: нормальная поддержка getext

anonymous ()
Ответ на: Re: CMake с чего начать? от l5k

Re: CMake с чего начать?

В исходниках с каждом кдешной программой идет Messages.sh, который извлекает сообщения для последующей работы с gettext, потому как CMake этого не умеет.

anonymous ()
Ответ на: Re: CMake с чего начать? от kemm

Re: CMake с чего начать?

Дык в архиве-то он будет ~20 кило.

Эх... Вот список файлов, сгенеренных автотулзами, с размерами:

761 config.h.in
11419 missing
11870 INSTALL
13663 install-sh
14335 doc/Makefile.in
15537 src/Makefile.in
18615 depcomp
23937 Makefile.in
34539 config.sub
34605 aclocal.m4
46181 config.guess
155214 configure

И размер архива получается 141247 против 35631, если запаковать из репы. И это ещё мелкий проект, никаких наворотов в configure.ac ;)

const86 ★★★★★ ()
Ответ на: Re: CMake с чего начать? от const86

Re: CMake с чего начать?

Странно, мне обычно configure килов на 700 попадаются...

py3k$ ls -lah configure
-rwxr-xr-x 1 odmin odmin 711K 2009-09-22 17:22 configure

Причём если надо что-то внутри поправить то это пипец.

true_admin ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> А еще он не умеет грабить корованы.

Не понял, к чему сарказм? Это не недостаток или что? Можешь еще посмотреть на 2,5К открытых багов в багзилле, выбери себе там по душе.

anonymous ()
Ответ на: Re: CMake с чего начать? от anonymous

Re: CMake с чего начать?

Для меня важнее удобство использования и настоящая кроссплатформенность. С багами не сталкивался, можно подумать в autotools их нет.

Reset ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> Какой смысл сейчас делать новый проект на этом говне мамонта под названием autotools? Какие плюсы по сравнению с cmake ?

Плюс один -- поддерживаемость практически на любой платформе. Оно просто есть. Оно работает. Разобраться весьма несложно.

При таком же (аналогичном) раскладе меня всегда забавляли бодания "CVS vs. SVN". Если изначально команда SVN разрабатывала что-то лучшее чем CVS, то они по определению ничего _нового_ создать не могли. Ну, пара-тройка улучшений, которые могли бы быть оценены разве что крайне узким кругом специалистов.

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

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

the_Shadow ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> С багами не сталкивался, можно подумать в autotools их нет.

Есть. но за годы использования их весьма тщательно замаскировали... =)

the_Shadow ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

Заканчивался 2009ый год... Слоупоки агитировали за autotools && cvs.

> Ну, пара-тройка улучшений, которые могли бы быть оценены разве что крайне узким кругом специалистов.

Прекрасно... Атомарные коммиты, нормальное копирование/перемещение и прочая доступно уму только крайне узкого круга специалистов?

kemm ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

> Разобраться весьма несложно.

вместо одной сущности (cmake) мы имеем туеву хучу всяких непонятных makefile.am, configure.ac, configure.in, config.h .........

> Плюс один -- поддерживаемость практически на любой платформе.

на венде работает? нет? в топку!

> Если с autotools уж совсем тяжко, то тогда для облегчения жизни рекомендовал бы рассмотреть "конструктор", который использует их неявным и прозрачным для пользователя способом.

а нахуа? cmake уже есть и файлы проекта там создаются прозрачным способом без всяких конструкторов

Reset ★★★★★ ()
Ответ на: Re: CMake с чего начать? от kemm

Re: CMake с чего начать?

Копирование/перемещение в svn ненормально. А merge и "ветви" это вообще тихий ужас. svn по сравнению с cvs это конечно большой шаг в перед, но рядом с современными системами (mercurial,git) svn и рядом не валялся.

Reset ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> svn по сравнению с cvs это конечно большой шаг в перед

Я именно про это. И про то, что улучшения в svn никому не заметны, якобы.

> но рядом с современными системами (mercurial,git) svn и рядом не валялся.

Похоже на то, да...

kemm ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> мы имеем туеву хучу всяких непонятных

Непонятных кому? И в чём? Мне лично понятных.

> на венде работает? нет? в топку!

Вот то, что на вянде работает, в топку сразу. Ибо для вянды есть "решения" от MS. Которые, хвала Аллаху, пусть там и остаются. Проблема в том, что crt виндовый (как минимум) ни кто не отменял. И, к тому же, набор всякого овна, гордо именуемый Win API (если мы о С/С++). Они наиболее физиологичны что ли. Извините за мед. термин. Жена врач, от неё нахватался.

Ежели возжелается "тела белого", то autotools прекрасно работают под cygwin (отчасти и под mingw). Но оба решения по означенной чуть выше причине в топку. Если мы всё-таки об "оптимальном" софте. Если нет и очень хочется портировать механизм epoll() (например) под вянду, то не вопрос. Оно уже портировано в виде libevent. Но как оно работает в реале лучше уж не спрашивайте. Скажу сразу -- через механизмы Win API. Есть там WSASocket(), через него и работает. Со всеми вытекающими.

Как видите, даже такое "жёсткое" портирование возможно (сам по себе механизм epoll() довольно оригинален, вот откуда замечание о "жёсткости" портирования). Но я вослед за Вами задам вопрос -- "а нахуа"?

> а нахуа? cmake уже есть и файлы проекта там создаются прозрачным способом без всяких конструкторов

Для работы с autotools мне хватает vim'а (чаще gvim'а). Что это доказывает? То, что кому-то хватает, а кому-то нет? Да? Ну и Бог бы с ним...

the_Shadow ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> Копирование/перемещение в svn ненормально. А merge и "ветви" это вообще тихий ужас. svn по сравнению с cvs это конечно большой шаг в перед, но рядом с современными системами (mercurial,git) svn и рядом не валялся.

Если честно, то я вообще-то, то же про тоже. На самом деле, при всей "продвинутости" SVN, радикальных изменений не происходило. С CVS перешёл на git. Полёт нормальный.

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

the_Shadow ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

> Непонятных кому? И в чём? Мне лично понятных.

Некоторые и в машинных кодах могут сразу программировать, но это не значит, что всем надо также делать.

> Вот то, что на вянде работает, в топку сразу ....

Ты что сказать то хотел? Если никогда не принимал участие в кроссплатформенных проектах, то лучше не пиши ничего, чем пиши эту ахинею.

Reset ★★★★★ ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

> Если никогда не принимал участие в кроссплатформенных проектах, то лучше не пиши ничего, чем пиши эту ахинею.

Правда? Ладно. Уговорил... =)

the_Shadow ()
Ответ на: Re: CMake с чего начать? от Reset

Re: CMake с чего начать?

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

Ясен пень! C# это наше новое фсё! =)))

the_Shadow ()
Ответ на: Re: CMake с чего начать? от the_Shadow

Re: CMake с чего начать?

> Ибо для вянды есть "решения" от MS.

Решения точно так же генерятся с помощью CMake. Например, у нас в конторе билды делаются с помощью nmake, а работаем мы в студии. И мэйкфайлы, и проекты генерятся CMake.

Автору: можно еще посмотреть на готовые проекты типа VTK, ITK итд.

JackyTreehorn ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.