<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>LXF99:CMake - История изменений</title>
		<link>http://wiki2.linuxformat.ru/index.php?title=LXF99:CMake&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Wed, 13 May 2026 22:24:42 GMT</lastBuildDate>
		<item>
			<title>Ewgen: оформление, ошибки, категории</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF99:CMake&amp;diff=12907&amp;oldid=prev</link>
			<description>&lt;p&gt;оформление, ошибки, категории&lt;/p&gt;
&lt;a href=&quot;http://wiki2.linuxformat.ru/index.php?title=LXF99:CMake&amp;amp;diff=12907&amp;amp;oldid=3306&quot;&gt;(Различия между версиями)&lt;/a&gt;</description>
			<pubDate>Sun, 30 Oct 2011 13:26:20 GMT</pubDate>			<dc:creator>Ewgen</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF99:CMake</comments>		</item>
		<item>
			<title>Crazy Rebel: Новая: ==Что за штука CMake?==  Эй, разработчики! Все знают, что ''Make'' – программа путаная и обветшалая; '''Пол Хадсо...</title>
			<link>http://wiki2.linuxformat.ru/index.php?title=LXF99:CMake&amp;diff=3306&amp;oldid=prev</link>
			<description>&lt;p&gt;Новая: ==Что за штука CMake?==  Эй, разработчики! Все знают, что ''Make'' – программа путаная и обветшалая; '''Пол Хадсо...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Что за штука CMake?==&lt;br /&gt;
&lt;br /&gt;
Эй, разработчики! Все знают, что ''Make'' – программа путаная и обветшалая; '''Пол Хадсон''' за ручку сведет нас в счастливую страну ''CMake''!&lt;br /&gt;
&lt;br /&gt;
* ''' ''Make'' — мой архивражина! Ради Бога, скажите: вы ведь избавите меня от нее?'''&lt;br /&gt;
&lt;br /&gt;
Я – нет, а вот команда ''CMake'' собирается! Хотя и это еще не факт, ведь вытеснить ''Make'' пытались неоднократно, но разве только ''Ant'' добилась умеренного успеха. Несомненно, ''Make'' будет с нами еще долгие годы, даже если ''CMake'' победит.&lt;br /&gt;
&lt;br /&gt;
* '''Беда-а-а! Ненавижу ее манеру различать табуляцию и пробелы – ''Make'' до того неудобна, даже для бывалых линуксоидов!'''&lt;br /&gt;
&lt;br /&gt;
Я согласен – и, по-моему, большинство Linux-программистов тоже. Но при всех достоинствах ''CMake'', ''Make'' никуда не денется: уж больно много проектов с ней связано.&lt;br /&gt;
&lt;br /&gt;
* '''Выходит, у ''Cmake'' есть достоинства? Да говорите же!'''&lt;br /&gt;
&lt;br /&gt;
ОК – начнем с начала. «'''С'''» в названии проекта означает «кроссплатформенная» и символизирует отличие от ''Make'': программа не выполняет компиляцию, а лишь создает файлы, необходимые для компиляции на конкретной системе. Предельно упрощая, ''CMake'' – лишь тонкая оболочка вокруг ''Make'', призванная скрыть уродство последней. Главное же достоинство ''CMake'' – переносимость и на OS X, и на Windows: там, где не будет ''Make'', она воспользуется «родным» инструментом другой системы.&lt;br /&gt;
&lt;br /&gt;
* '''Постойте… так ''Make'' все-таки придется оставить?'''&lt;br /&gt;
&lt;br /&gt;
''Make'' или другую эквивалентную программу для сборки ПО. Причем программисты одной команды не обязаны использовать одну и ту же утилиту: работая'с Qt под Linux, вы выберете ''Qmake'', а ваши друзья в Windows предпочтут стандартные средства Visual Studio. Вы можете использовать общие файлы конфигурации ''CMake'', то есть все сделанные вами изменения тут же появятся на всех платформах. Более того, команде ''CMake'' незачем писать подключаемые модули для поддержки разных IDE: ведь все программы останутся при своих «родных» форматах сборки, вмешиваться в которые ''CMake'' не будет.&lt;br /&gt;
&lt;br /&gt;
* '''Значит, даже при победе ''CMake'' будет не обойтись без ''Make''? Ну и где тут особое улучшение?'''&lt;br /&gt;
&lt;br /&gt;
Да, пользоваться ''Make'' придется, но только косвенно – ''CMake'' создаст все необходимые файлы, избавив вас от мучений. При запуске ''CMake'' нужные файлы генерируются и хранятся в директории '''/source''', и обычно вам даже заглядывать туда не надо.&lt;br /&gt;
&lt;br /&gt;
* '''Ладно, одна причина для обновления есть, но этого явно мало. Зачем мне суетиться?'''&lt;br /&gt;
&lt;br /&gt;
Мало причин? Вот вам четыре миллиона строк причин: на ''CMake'' переключается KDE 4. Намаявшись с ''GNU Autotools'', разработчики KDE потратили кучу времени на поиски инструментов-альтернатив и в итоге выбрали ''CMake'' – как наиболее гибкую и модифицируемую. Именно модифицируемость сыграла решающую роль: ведь KDE – громадный проект со специфичными требованиями. Команды KDE и ''CMake'' наладили тесное взаимодействие, ''CMake'' значительно усовершенствовалась, стала еще надежнее и стабильнее, а главное – получила мощнейшую поддержку!&lt;br /&gt;
&lt;br /&gt;
* '''И ''CMake'' справляется с большими проектами?'''&lt;br /&gt;
&lt;br /&gt;
Разумеется! ''CMake'' прекрасно взаимодействует с ''KDevelop'', и способна собрать любой компонент KDE – от ''kioslave'' до ''Kpart''. Вы получаете неограниченный контроль над системой зависимостей, и я буду очень удивлен, если чем-то окажется нельзя управлять…&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
  |Заголовок=&lt;br /&gt;
  |Содержание=«Самый известный Linux-проект, перешедший на ''CMake'' – настольная издательская система ''Scribus''».&lt;br /&gt;
  |Ширина=200px&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* '''Судя по вашим словам, ''CMake'' используется только в KDE…'''&lt;br /&gt;
&lt;br /&gt;
Вовсе нет, но не стану отрицать, что ''CMake'' находитсяв самом начале пути. Другой известный Linux-проект, уже переключившийся на ''CMake'' – ''Scribus''; '''Питер Линнелл''' [Peter Linnell], web-мастер ''Scribus'', сказал: «Установив ''CMake'', я за 10 минут во все вник и встроил файлы ''CMake'' в наш исходный код. Красота!». Кроме KDE и ''Scribus'', ''CMake'' поддерживает ''SWIG'' и ''LaTeX'', а это уже путь к всеобщему признанию.&lt;br /&gt;
&lt;br /&gt;
* '''Трудно ли настроить ''CMake''?'''&lt;br /&gt;
&lt;br /&gt;
Ответ зависит от того, насколько сложной вам казалась ''Make''. Скажем прямо: простой программой ''Make'' не считал никто. Команды ''CMake'' напоминают легкий программный код, пользоваться которым сравнительно несложно, если у вас есть минимальный опыт программирования – хотя бы написание простенького JavaScript. Многое сделано для автоматизации процесса, перевода рутинной работы на задний план, чтобы вместо составления файлов заниматься собственно программированием.&lt;br /&gt;
&lt;br /&gt;
* '''Вы упоминали, что ''CMake'' – кроссплатформенная программа; на каких же платформах она работает в действительности?'''&lt;br /&gt;
&lt;br /&gt;
Известные системы поддерживаются все: Linux, Windows, OS X, Solaris, FreeBSD, HP-UX, IRIX, BeOS и QNX; любая система, «признающая» ''Make'', пригодна для ''CMake''. Куда важнее, что программа совместима с KDevelop, Xcode и Visual Studio, а ведь они-то и интересуют профессиональных программистов! Естественно, поддержка улучшается с каждой новой версией.&lt;br /&gt;
&lt;br /&gt;
* '''А в чем преимущество ''CMake'' по сравнению, скажем, с ''Ant''?'''&lt;br /&gt;
&lt;br /&gt;
''Ant'' – полная, радикальная замена ''Make''. Радикальность здесь и преимущество, и недостаток: если предпочесть ''Ant'', то и ОС, и все остальное ПО должны поддерживать ее. Что касается ОС, то ''Ant'' написана на Java, и проблемы с системой маловероятны.&lt;br /&gt;
&lt;br /&gt;
* '''Подозрительно: «Java» и «нет проблем» в  одном предложении встречаются редко…'''&lt;br /&gt;
&lt;br /&gt;
И то правда, но допустим, что все работает гладко. Реальная проблема ''Ant'' состоит в том, что ее должна поддерживать среда разработки – нужно заботиться об установке нужных модулей расширения вашего ПО, или надеяться на готовую поддержку ''Ant''. Тот факт, что ''CMake'' не отменяет ''Make'' – явное преимущество: ваш инструментарий остается тем же.&lt;br /&gt;
&lt;br /&gt;
* '''И вы обещаете, что мне не придется читать файлы, созданные ''CMake''?'''&lt;br /&gt;
&lt;br /&gt;
Обещаем!&lt;br /&gt;
&lt;br /&gt;
* '''А можно ли при необходимости «подправить»  программу?'''&lt;br /&gt;
&lt;br /&gt;
Программа выпускается под BSD-подобной лицензией, допускающей неограниченное использование, в том числе и в составе коммерческих продуктов (разумеется, при соответствующем оформлении). Изменяйте исходный код на здоровье! Если боязно трогать исходник, расширить программу можно и без этого – она действительно очень гибкая.&lt;br /&gt;
&lt;br /&gt;
* '''ОК, уже хочу попробовать. А если я увязну, куда обратиться за дополнительными сведениями?'''&lt;br /&gt;
&lt;br /&gt;
Сайт онлайн-документации ''CMake'' – http://www.cmake.org/HTML/Documentation.html, но для типичных вопросов предусмотрен http://www.cmake.org/Wiki/CMake_FAQ. Есть прекрасная статья о причинах перехода KDE 4 на ''CMake'': http://lwn.net/Articles/188693.&lt;br /&gt;
&lt;br /&gt;
Если вы завязли здорово, или решили использовать ''CMake'' в серьезной работе, обратитесь к книге Mastering CMake: http://www.kitware.com/products/CMakebook.html. Много информации о ''CMake'' можно найти на CMake wiki (http://www.cmake.org/Wiki/CMake), но мы особо рекомендуем руководство по быстрому ознакомлению (http://www.CMake.org/HTML/Examples.html), учебник CMake/Eclipse (http://www.CMake.org/Wiki/CMake:Eclipse), и азбуку ''Ctest'', инструмента тестирования ''CMake'' (http://www.CMake.org/Wiki/CMake_Testing_With_CTest). Как видите, чтения хватает, но – вспомните эту возню с освоением ''Make'', и вы поймете, что не все так плохо! '''LXF'''&lt;/div&gt;</description>
			<pubDate>Mon, 24 Mar 2008 08:05:39 GMT</pubDate>			<dc:creator>Crazy Rebel</dc:creator>			<comments>http://wiki2.linuxformat.ru/index.php/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:LXF99:CMake</comments>		</item>
	</channel>
</rss>