The OpenNET Project / Index page

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

29.03.2018 16:52  Релиз системы сборки CMake 3.11

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

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

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

  • В генератор сборочных файлов Ninja добавлена поддержка компиляторов TI C/C++;
  • В генераторах для Visual Studio появилась возможность использования условного выражения COMPILE_LANGUAGE при определении значений COMPILE_DEFINITIONS, INCLUDE_DIRECTORIES, COMPILE_OPTIONS и file(GENERATE). В генераторе Xcode поддержка условного выражения COMPILE_LANGUAGE обеспечена для COMPILE_DEFINITIONS и INCLUDE_DIRECTORIES (в COMPILE_OPTIONS и file(GENERATE) уже поддерживалась ранее);
  • Компанды add_library() и и add_executable() теперь могут вызываться без наличия исходных текстов с расчётом, что код будет добавлен позднее при помощи команды target_sources();
  • В команду target_compile_definitions() добавлено свойство INTERFACE_COMPILE_DEFINITIONS, в команду target_compile_features() - INTERFACE_COMPILE_FEATURES, в target_compile_options() - INTERFACE_COMPILE_OPTIONS, в target_include_directories() - INTERFACE_INCLUDE_DIRECTORIES, в target_sources() - INTERFACE_SOURCES, в target_link_libraries() - INTERFACE_LINK_LIBRARIES;
  • В свойстве исходных файлов "COMPILE_DEFINITIONS" добавлена поддержка выражений генератора;
  • Свойство исходных файлов COMPILE_OPTIONS добавлено в список опций, передаваемых компилятору;
  • При использовании свойств AUTOMOC или AUTOUIC, CMake теперь параллельно запускает несколько процессов moc или uic для сокращения времени сборки. Число процессов определяется через переменную CMAKE_AUTOGEN_PARALLEL и свойство AUTOGEN_PARALLEL (по умолчанию выставляются в значения, соответствующие числу CPU).


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Релиз системы сборки CMake 3.10
  3. OpenNews: Релиз системы сборки CMake 3.9
  4. OpenNews: Доступна система сборки Meson 0.42, на которую переходят systemd, GTK+ и GNOME
  5. OpenNews: Доступен сборочный инструментарий Qbs 1.10, развиваемый проектом Qt
  6. OpenNews: Релиз генератора файлов сборки GNU Automake 1.16
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cmake, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 18:49, 29/03/2018 [ответить] [показать ветку] [···]    [к модератору]
  • –5 +/
    ха-ха, рядом новость про QBS!
     
  • 1.2, Аноним (-), 18:56, 29/03/2018 [ответить] [показать ветку] [···]     [к модератору]
  • –2 +/
    да ну нах usr ports devel cmake Makefile LIB_DEPENDS libcurl so ftp curl ... весь текст скрыт [показать]
     
     
  • 2.3, Аноним (-), 19:40, 29/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Пуссиэкзешники должны страдать https packages debian org ru sid cmake Замшелы... весь текст скрыт [показать]
     
     
  • 3.7, Аноним (-), 20:52, 29/03/2018 [^] [ответить]     [к модератору]  
  • +/
    и что вы мне этой ссылкой хотели показать, кроме того что еще и по-английски не ... весь текст скрыт [показать]
     
     
  • 4.8, Аноним (-), 20:58, 29/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > У вас там точно такая же зависимость от libuv (она,кстати, собирается не только autotools, но и cmake. Уп-с... но мы пытаемся собрать cmake!)

    А компилятор без компилятора ты уже собрал?

     
     
  • 5.10, Аноним (-), 21:04, 29/03/2018 [^] [ответить]    [к модератору]  
  • +/
    слив засчитан.
    То есть факт звиздежа про "миниимум зависимостей" (вместо аж двух у automake) опровергнуть не получилось, пришлось приступить к подмене понятий.

     
     
  • 6.11, anonymous (??), 21:49, 29/03/2018 [^] [ответить]    [к модератору]  
  • +3 +/
    Ты эта, runtime от buildtime зависимости отличай и make clean не забывай делать. По runtime cmake не зависит от autotools.
     
     
  • 7.24, Аноним (-), 10:23, 30/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    вам там показали кучу чудовищного уродливого bloatware, от которого зависит Но ... весь текст скрыт [показать]
     
     
  • 8.34, Аноним (-), 13:55, 30/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Теоретически На деле же 8230 Это не ты выше цитату приводил Ну то есть не со... весь текст скрыт [показать]
     
     
  • 9.35, Аноним (-), 16:45, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    ну так что вы хотите Одни неумельцы тащат в продукт поделки других Я ж говор... весь текст скрыт [показать]
     
     
  • 10.40, Аноним (-), 17:52, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Так я ж соглашаюсь не надо эту бяку в рот И в другие физиологические отверстия... весь текст скрыт [показать]
     
     
  • 11.42, Аноним (-), 19:09, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    ну так это и есть способ рассказать automake, что тебе от него нужно а что из э... весь текст скрыт [показать]
     
     
  • 12.45, Аноним (-), 11:03, 31/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Ничего там не перемешивали Просто первый этап генерацию новых и подкладывание ... весь текст скрыт [показать]
     
  • 6.17, Аноним (-), 01:44, 30/03/2018 [^] [ответить]     [к модератору]  
  • +4 +/
    Неплохо у бздунов бомбануло Аноним правда другой был, но сказанул все верно Фа... весь текст скрыт [показать]
     
     
  • 7.20, Ivan_83 (ok), 02:19, 30/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    У пакетов есть как минимум одна проблема они собраны с какими то опциями, и час... весь текст скрыт [показать]
     
     
  • 8.25, Аноним (-), 10:38, 30/03/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    и проблема, и напряг - но когда тебе нужно что-то нестандартное или просто отсут... весь текст скрыт [показать]
     
     
  • 9.30, Аноним (-), 12:28, 30/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Так ты уже собрал свой любимый проприетарный шланг c помощью шланга, питона, нин... весь текст скрыт [показать]
     
     
  • 10.37, Аноним (-), 16:59, 30/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    ты будешь удивлен, но тот что в base system freebsd - собирается без шланга ну,... весь текст скрыт [показать]
     
     
  • 11.43, Аноним (-), 22:58, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    А голый cmake собираем привожу ваш же комментарий usr ports devel cmake Make... весь текст скрыт [показать]
     
     
  • 12.48, Аноним (-), 21:11, 01/04/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    просто опечатка. Там make. Обычный такой bsd make.
     
  • 9.33, Аноним (-), 13:16, 30/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Синтаксис cmake местами, может, и странноват, но зато предельно простой, если не... весь текст скрыт [показать]
     
     
  • 10.39, Аноним (-), 17:11, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    на фоне необходимости уметь собственный код писать переносимо - это такая мелочь... весь текст скрыт [показать]
     
  • 6.32, Аноним (-), 12:47, 30/03/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Дорогой бздун, ты слился на незнании матчасти еще при копипасте частей мейк-файл... весь текст скрыт [показать]
     
     
  • 7.38, Аноним (-), 17:01, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    я рад за вас, что вы выучили массу абсолютно ненужных заклинаний Типикал юзер c... весь текст скрыт [показать]
     
     
  • 8.44, Аноним (-), 23:01, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Т е типикал бздun маны своей же билдсистемы в глаза не видел man ports Яснопон... весь текст скрыт [показать]
     
     
  • 9.49, Аноним (-), 21:22, 01/04/2018 [^] [ответить]     [к модератору]  
  • +/
    когда-то видел, запоминать всю эту километровую муру - это для вас, мальчики с ф... весь текст скрыт [показать]
     
  • 3.16, Аноним (-), 00:15, 30/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > https://packages.debian.org/ru/source/sid/cmake
    > adep: python3-sphinx
    > adep: qtbase5-dev

    Ага, ещё лучше.

     
  • 2.5, Аноним (-), 20:48, 29/03/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Обломайся, ему всё равно нужен make А чем собирается make Вот тут полностью со... весь текст скрыт [показать]
     
     
  • 3.6, Аноним (-), 20:50, 29/03/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    > ему всё равно нужен make

    Ах да, извини. gmake, конечно же.


     
  • 3.9, Аноним (-), 21:00, 29/03/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    gmake еще oldschool - там не было принято старательно _удалять_ из дистрибутивно... весь текст скрыт [показать]
     
     
  • 4.12, Аноним (-), 22:21, 29/03/2018 [^] [ответить]     [к модератору]  
  • +/
    Шта Это где это так стало принято Не, я понимаю, что хипстота автокрэпом польз... весь текст скрыт [показать]
     
     
  • 5.26, Аноним (-), 10:44, 30/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    да везде Старательно добавят в gitignore как будто он у них меняется и буду... весь текст скрыт [показать]
     
     
  • 6.28, Аноним (-), 11:22, 30/03/2018 [^] [ответить]     [к модератору]  
  • +/
    То есть пруфа не будет В gitignore его добавляют совершенно правильно В гите ... весь текст скрыт [показать]
     
     
  • 7.29, Аноним (-), 11:24, 30/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > В .gitignore его добавляют совершенно правильно.

    * Да-да, даже в "олдскульном" gmake: https://git.savannah.gnu.org/cgit/make.git/tree/.gitignore#n23

     
  • 4.13, Аноним (-), 22:23, 29/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Это тот, который под винду только msvc можно собрать Кул стори ... весь текст скрыт [показать]
     
  • 2.14, atnt (?), 22:59, 29/03/2018 [^] [ответить]    [к модератору]  
  • +/
    > /usr/ports/devel/libuv/Makefile:USES=           autoreconf libtool pathfix pkgco

    Может быть это проблема порта и должно быть BUILD_DEPENDS?

     
     
  • 3.18, Ivan_83 (ok), 02:13, 30/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Оно и подразумевает что при билде только используется.
     
  • 2.19, Ivan_83 (ok), 02:16, 30/03/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Автотулс остой полный, как по мне.
    Нужно обязательно 100500 файлов насоздавать чтобы удовлетворить сборочную систему.
    С CMake достаточно один файл для простого проекта.

    Что до зависимостей - так надо ещё посмотреть, может автор порта просто не заморачивался и зафигачил по максимуму.

     
     
  • 3.27, Аноним (-), 10:48, 30/03/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Если пытаться что-то из этого выпилить - оно у тебя может и получится, только ра... весь текст скрыт [показать]
     
  • 2.36, debdeb (?), 16:55, 30/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Где вы это нашли? В архиве (cmake-3.11.0.tar.gz) нет ни одного makefile'а. Во время сборки bootstrap - таки да, генерируя makefile, для сборки используется make, но никаких autoconf/autotools. Также не понятно про "самое приятное" - исходники libuv (в этом же архиве) тоже компилятся make'ом (без всяких autoreconf и т.п.)
     
  • 2.46, Аноним (-), 13:52, 31/03/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Ага, gettext, который тянет libxml, который тянет питон ... весь текст скрыт [показать]
     
     
  • 3.47, Аноним (-), 13:57, 31/03/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > Ага, gettext, который тянет libxml, который тянет питон.

    Но его можно отключить, если собирать rhash без поддержки иностранных языков.


     
  • 3.50, Аноним (-), 21:28, 01/04/2018 [^] [ответить]     [к модератору]  
  • +/
    dependency hell сам по себе - это отдельная болячка, хоть и менее чудовищная чем... весь текст скрыт [показать]
     
  • 1.21, anonimm (?), 05:59, 30/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Отличная система сборки, имеет хорошую поддержку в QtCreator и других IDE (говорят, даже VSCode). Крупные проекты уже оценили; не понимаю тех, кто не хочет переходить с autotools или тех, кто предпочитает голый Makefile.
     
  • 1.31, anonymous (??), 12:36, 30/03/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    >Число процессов определяется через переменную CMAKE_AUTOGEN_PARALLEL

    через make -jN сделать не судьба видимо.

     
     
  • 2.41, anonymous (??), 18:09, 30/03/2018 [^] [ответить]    [к модератору]  
  • +/
    AUTOGEN и AUTOMOC работают там, где нет make.
     
     
  • 3.51, Аноним (-), 21:29, 01/04/2018 [^] [ответить]    [к модератору]  
  • +/
    > AUTOGEN и AUTOMOC работают там, где нет make.

    в винде, да?

     

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


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