The OpenNET Project / Index page

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

Выпуск системы сборки CMake 3.1.0

18.12.2014 17:29

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

Из достоинств CMake можно отметить простой язык сценариев, средства расширения функциональности через модули, минимальное число зависимостей (нет привязки к M4, Perl или Python), поддержка кэширования, наличие средств для кросс-компиляции, поддержка генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличие утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилита cmake-gui для интерактивной настройки параметров сборки.

Основные улучшения:

  • Добавлены генераторы файлов сборки для Visual Studio 14 (2015). В генераторы для Visual Studio 11 (2012) и более новых версий добавлена поддержка платформы Windows Phone и магазина приложений Windows Store. В генераторы для Visual Studio 10 (2010) и более новых версий добавлена поддержка создания проектов для NVIDIA Nsight Tegra Visual Studio Edition;
  • Добавлена команда "target_compile_features", позволяющая заполнить свойство COMPILE_FEATURES для цели сборки по аналогии с другими сборочными переменными. Cmake пользуется данной информацией для того, чтобы убедиться в том, что используемый компилятор способен выполнить сборку цели, и добавить необходимые для сборки флаги для задействования определённых возможностей языка (например, "-std=gnu++11");
  • Упрощён синтаксис переменных ссылок (Variable References) и Escape-последовательностей, который позволил задействовать значительно более быструю их реализацию;
  • Оператор "if" отныне автоматически не разыменовывает имена переменных внутри аргументов, заключенных в кавычки или скобки;
  • В свойство цели "SOURCES" добавлена поддержка выражений генератора, которые могут использованы в командах "add_library" и "add_executable";
  • Добавлена возможность записи и дополнения свойства цели "SOURCES". Для отслеживания исходного источника может использоваться переменная "CMAKE_DEBUG_TARGET_PROPERTIES";
  • В CPack добавлена поддержка lzma-архивов с помощью генераторов "7Z" и "TXZ";
  • В модуль ExternalProject добавлена поддержка архивов, сжатых методом lzma: ".7z", ".tar.xz" и ".txz";
  • В команду ExternalProject_Add из модуля ExternalProject добавлена поддержка опции BUILD_ALWAYS для инициирования сборки внешнего проекта при каждой сборке базового проекта;
  • В команду ctest_coverage() добавлена поддержка файлов покрытия утилиты codecov от Intel;
  • В команду ctest_memcheck() добавлена поддержка "Sanitizer"-режимов: "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer" и "UndefinedBehaviorSanitizer".


  1. Главная ссылка к новости (http://www.cmake.org/pipermail...)
  2. OpenNews: Релиз системы сборки CMake 2.6
  3. OpenNews: Анонсирована система сборки CMake 3.0.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41292-cmake
Ключевые слова: cmake, make
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:11, 19/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ура! Лучшая на данный момент система сборки. Надо будет почитать про новые фичи со времён 2.8
     
     
  • 2.5, Аноним (-), 01:14, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Ура! Лучшая на данный момент система сборки.

    Смотря с чем сравнивать. В целом довольно глючная, на экзотичных ОС/конфигах спотыкается в два счета. Понять на чем запнулось без поллитры невозможно - логгинг зафэйленых проверок крайне поганый. В этом плане даже автотулсы лучше. Хоть они и кусок стремной скриптятины с шибанутыми закидонами.

     
     
  • 3.11, Аноним (-), 14:45, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Экзотичные OS/конфиги это, например, кто? FreeBSD, NetBSD, OpenBSD, Minix, кросс-компиляция с помощью mingw32, кросс-компиляция под gp2x, компиляция микрософтовским cl под wine - это только то с чем я сталкивался, всё работает без запинки. Про понять вы тоже соврамши - логгинг там такой же как у configure, только без мусора из тонн шеллового кода - вот тестовый код, так компилировался, такие ошибки.
    "С чем сравнивать" это вы тоже дали, потому что сравнивать не с чем. Ну разве что с autocrap которые вы охарактеризовали совершенно точно, но несмотря на это они со своей задачей обычно справляются, а если нет их можно (хотя и сложно и всегда неприятно) подхачить. CMake справляется изкоробки гораздо чаще, и исправляется патчем в пару строк который всё равно можно отправить в upstream, если не просто определением переменной. А больше ничего и нет.
     

  • 1.2, Аноним (-), 00:31, 19/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Что за сайт www.opennet.ru.tinymp.com вылез? На опеннете вирусы?
     
     
  • 2.3, EHLO (?), 00:43, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    У меня для тебя две новости: хорошая и плохая.
    Хорошая: на опеннете нет вируса.
     
  • 2.4, Аноним (-), 01:12, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Что за сайт www.opennet.ru.tinymp.com вылез? На опеннете вирусы?

    Это у тебя на твоем маздае вирусы. Или кто-то немного патчит твой траффик.

     
  • 2.6, _KUL (ok), 02:34, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Первое, что нужно установить, после первого открытия браузера https://adblockplus.org/ru/
     
     
  • 3.7, Владимир (??), 07:11, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    первое это NoScript. второе уже Adblock.
     
  • 2.8, Язабан (?), 08:08, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой интересный сайт! По видимому там где-то спрятан интересный скрипт, но site:tinymp.com ничего не знает про него. /script.php /robots.txt /shell.php не найдены. Продолжаю исследования. Я не малолетка.
     
  • 2.12, Аноним (-), 23:33, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    С ведроид-планшета тоже вылезло это чудо, перекинуло в маркет и предложило поставить UC Browser. Раньше такого небыло.
     
  • 2.14, Maxim Chirkov (ok), 09:35, 21/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это в Google AdSense завёлся кривой баннер. Подробнее http://www.opennet.ru/openforum/vsluhforumID3/100956.html#51
     

  • 1.9, Kodir (ok), 12:47, 19/12/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Не совсем понятно, зачем делать всякие костыли к существующему под студией MSBuild - вряд ли можно сделать что-то значимое без цепляния проприетарных хуков. Я в том смысле, что мало найдётся популярного многоплатформенного софта, которому нужны вот эти ЦМАКЕ - скорее всего, делают проект сразу под какую-то IDE и потом расширяют сорсы проектами под другие IDE, импортируя туда существующий код.
     
     
  • 2.10, Аноним (-), 13:22, 19/12/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Уважаемый еще не вырос из своей любимой студии и винды и не в курсе про открытую разработку.
     
     
  • 3.13, Yakov Markovitch (?), 23:06, 20/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Уважаемый еще не вырос из своей любимой студии и винды и не
    > в курсе про открытую разработку.

    А про разработку крупных коммерческих многоплатформенных систем даже и не догадывается.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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