The OpenNET Project / Index page

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

21.11.2018 10:37  Релиз системы сборки CMake 3.13

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

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

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

  • В команду cmake добавлены опции "-S source_dir" и "-B build_dir" для определения путей к каталогу с исходными текстами и каталогу для сборки;
  • Добавлены новые команды "target_link_directories()" и "target_link_options()" для определения каталогов, опций и местоположения библиотек, используемых в операциях компоновки;
  • Команда "target_link_libraries()" теперь может использоваться вне текущего каталога;
  • В команду "install(TARGETS)" добавлена поддержка установки целевых файлов, созданных вне текущего каталога;
  • В генератор "Green Hills MULTI" добавлена возможность выбора платформы, архитектуры и инструментария;
  • В генераторы для Visual Studio 2010 и более новых версий добавлена опция "INTERPROCEDURAL_OPTIMIZATION" и связанный с ней модуль "CheckIPOSupported" для управления применением межпроцедурных оптимизаций. Добавлены свойства "VS_DEBUGGER_COMMAND_ARGUMENTS" и "VS_DEBUGGER_ENVIRONMENT" для определения аргументов командной строки и переменных окружения для управления отладочными режимами в генераторах для Visual Studio;
  • На платформе Windows обеспечена возможность использования команды "cmake -E create_symlink";
  • В команде "option()" теперь учитывается наличие нормальных переменных с тем же именем (они теперь не переопределяются в кэше и настройках);
  • В команде "target_sources()" обработка относительных путей к исходным текстам теперь производится относительно текущего каталога с исходными текстами;
  • Добавлено правило "CMP0076", определяющее требования к обеспечению обратной совместимости в случаях, когда необходимо сохранение старого поведения.


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Проект Qt прекращает разработку сборочной системы Qbs в пользу CMake
  3. OpenNews: Релиз системы сборки CMake 3.12
  4. OpenNews: Выпуск системы сборки GNU Make 4.2
  5. OpenNews: Разработчик языка XL опубликовал новую сборочную систему build
  6. OpenNews: Доступна система сборки Meson 0.42, на которую переходят systemd, GTK+ и GNOME
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cmake, make, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (1), 11:37, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +35 +/
    Сначала программы собирали командой запускающей компилятор.
    Потом стали использовать скрипты на баше - с собственным, полным по Тюрингу языком. Баш запускал компилятор.
    Потом появилась утилита make, с собственным полным по Тюрингу языком. Make запускает баш, который запускает компилятор.

    Потом стали использовать ./configure файлы на баше(хотя поадались и на перле) которые создавали Makefile, которая запускала баш, который запускал компилятор.

    CMAKE с собственным полным по Тюрингу языком, который генерит Makefile, который запускает баш, который запускал компилятор.

    Вершину этого я видел в процессе сборки нативных приложений под Андроид, где Gradle, с собственным полным по Тюрингу языком, запускает Cmake, который генерит Makefile, которай запускала баш, который запускал компилятор.

    Хотя погодите, специалисты рекомендуют использовать системы автоматической сборки, типа BuildCity, которая на основании скрипта на котлине, что то там про Тюринга, запускает Gradle, который ...

     
     
  • 2.2, 1 (??), 11:49, 21/11/2018 [^] [ответить]    [к модератору]
  • +3 +/
    Ну дык "Любую проблему можно решить, добавив ещё один уровень абстракции"
     
     
  • 3.4, Аноним (1), 11:52, 21/11/2018 [^] [ответить]    [к модератору]
  • +3 +/
    А проблему "Слишком много уровней абстракции"?

     
     
  • 4.6, Andrey Mitrofanov (?), 12:11, 21/11/2018 [^] [ответить]    [к модератору]
  • +4 +/
    > А проблему "Слишком много уровней абстракции"?

    Рассматриваем как "проблема? значит, уровней абстракции недостаточно." и применяем решение из п.1 !
    </прогрессивненько же>

     
     
  • 5.9, Аноним (1), 12:24, 21/11/2018 [^] [ответить]    [к модератору]
  • +6 +/
    Поэтому приложение facebook на телефоне состоит из 18 000 классов и более 3 000 000 методов.

    Это вызывает проблемы на старых телефонах, так как размер стека вызовов больше фиксированных 5 мегабайт.
    https://jaxenter.com/facebooks-completely-insane-dalvik-hack-105776.html

    Это приложение которое показывает картинки и текст.

     
  • 4.15, КО (?), 13:09, 21/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    В легкую, только добавлять надо не один уровень абстракции, а увеличивать их на порядок.
    После того как это заработает, старый вариант уже не "слишком много". :)
     
  • 4.34, user (??), 18:03, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Это не проблема, это решение. Нужно же как-то продавать поддержку.
     
  • 2.7, Аноним (7), 12:22, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Судя по вашим терадам не осилили даже инструментарий сборки
     
     
  • 3.10, Аноним (10), 12:28, 21/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Во-первых, https ru wiktionary org wiki D1 82 D0 B8 D1 80 D0 B0 D0 B4 D0 B0 К... весь текст скрыт [показать]
     
     
  • 4.16, Аноним (16), 13:11, 21/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    А вот и спеллчекер подъехал
     
     
  • 5.35, Аноним (35), 18:58, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Вам повезло. Обращайтесь, пока не уехал.
     
  • 3.11, Аноним (1), 12:28, 21/11/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    Решение должно быть лучше чем проблема, иначе это лечение холеры при помощи чумы.
    У CMAKE спецификация больше и сложнее чем K&R C. Даже не трогая модули.
     
     
  • 4.32, user (??), 17:59, 21/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    IMHO CMAKE заточен под генерацию из IDE, а не под написание вручную.
     
     
  • 5.44, Аноним (44), 23:21, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Оставь своё имхо при себе. Для генерации xml и json есть. А тут практически свой язык https://cmake.org/cmake/help/v3.0/manual/cmake-language.7.html#syntax
     
  • 2.13, Акакжев (?), 12:38, 21/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Мало просто собрать, надо собрать в deb или rpm пакет.
     
     
  • 3.14, Аноним (1), 12:44, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Или в flatpack, а может в Appimage, еще Docker контейнер не желаете?
     
     
  • 4.17, Акакжев (?), 13:14, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Тьюринг однажды проснулся и не понял, Тьюринг ли он, или машина, которую придумал Тьюринг.
     
     
  • 5.21, Аноним (1), 13:43, 21/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Он видеокарта! Nvidia Turing
     
     
  • 6.37, Аноним (37), 19:47, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Однажды видеокарта проснулась и так родился Скайнет.
     
     
  • 7.54, Акакжев (?), 15:08, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Однажды видеокарта проснулась и так родился Скайнет.

    Отныне в тренде Skyfall SSC-X-9

     
  • 3.46, Аноним (44), 00:19, 22/11/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Там для него давно уже макросов напилили. Одной строчкой делается.
     
     
  • 4.49, Акакжев (?), 08:09, 22/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Угу Потому debian -- это отдельный каталог в дереве исходников Плюс к тому, об... весь текст скрыт [показать]
     
  • 2.18, Аноним (18), 13:14, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    ещё bazel вспомни
     
  • 2.20, Аноним (20), 13:25, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Ага Когда надо не только скомпилировать, а еще, например, из DSL код сгенериров... весь текст скрыт [показать]
     
  • 2.23, Аноним (23), 13:46, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    так это же вы сами виноваты, что наплодили всяких make, nmake, ninja, msbuild - ... весь текст скрыт [показать]
     
     
  • 3.48, немезидеЦ (?), 07:48, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > То ли дело одна платформочка, один Turbo Pascal, ничего лишнего, какие скрипты.

    Уже есть Fpcmake во FreePascal - так что, там тоже не избежали этого.

     
  • 3.51, Аноним (51), 12:26, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Ага, msbuild - точно "мы" наплодили ;)
     
  • 2.24, твой лучший друг (?), 14:29, 21/11/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Грамотный заброс, но, помнится, у гугля была сборка андроид-сдк чисто на GNU Mak... весь текст скрыт [показать]
     
  • 2.45, all_glory_to_the_hypnotoad (ok), 23:59, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Мало ли что где полно по Тьюрингу, это совершенно бесполезное свойство Шел, нап... весь текст скрыт [показать]
     
  • 2.47, vstconsulting (ok), 01:50, 22/11/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Яйцо в утке, утка в зайце, заяц в шоке...
    Хотя я не лучше: tox -> make -> setuptools (python). Вот думаю сейчас - может всё в одном tox'е реализовать?
     
  • 2.52, Школьник (ok), 13:25, 22/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    >Make запускает баш, который запускает компилятор.

    Что за бред я читаю? Вы хоть раз htop запускали во время сборки?

     
     
  • 3.61, Michael Shigorin (ok), 01:41, 25/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Рецепты выполняются при помощи $(SHELL), если что.
    А запускать полезней pstree(1).
     
     
  • 4.63, Школьник (ok), 15:43, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Рецепты выполняются при помощи $(SHELL), если что.
    > А запускать полезней pstree(1).

    Спасибо. Век живи, век учись, блин :-)

     
     
  • 5.64, Michael Shigorin (ok), 17:28, 26/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Спасибо. Век живи, век учись, блин :-)

    Тогда ещё пару полезняшек на те же темы, вдруг пригодятся:

    - на http://cmcrossroads.com есть немало интересных штук по make, скажем, вот эту я применил в mkimage-profiles для трассировки цепочки целей: http://cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make

    - не все руткиты, которые троянят ps(1), заморачиваются pstree(1) ;-)

     
  • 1.3, Аноним (1), 11:49, 21/11/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –5 +/
    Вот за что уважаю Rust, так это за то, что вместе с языком идет достаточная сист... весь текст скрыт [показать]
     
     
  • 2.5, Аноним (1), 12:03, 21/11/2018 [^] [ответить]     [к модератору]  
  • +4 +/
    И более 9000 версий систем сборки Программирую под Адрющу Стандартная ситуеви... весь текст скрыт [показать]
     
     
  • 3.8, Аноним (7), 12:24, 21/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Потому что неыиг локально билдить
     
     
  • 4.12, Аноним (10), 12:33, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    "Так же, как все! В облаках, в облаках! Так же, как все!"
     
  • 2.19, Аноним (19), 13:19, 21/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Ок, давайте соберем servo на расте ну, ладно, допустим What a f Короче любо... весь текст скрыт [показать]
     
  • 2.26, X4asd (ok), 14:36, 21/11/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    вот за что разочаровался в Rust -- за то что вместе с ним идёт система сборки Ca... весь текст скрыт [показать]
     
     
  • 3.28, Аноним (1), 15:17, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    rustc - голый компилятор Используется с любой системой сборки, хоть в Makefile-... весь текст скрыт [показать]
     
  • 3.40, Аноним (40), 22:42, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Это как раз очень хорошо Лучше иметь одну систему сборки и один пакетный менедж... весь текст скрыт [показать]
     
     
  • 4.50, Акакжев (?), 08:12, 22/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Если
    > программистов в карго что-то не устраивает, то пусть фиксят карго, а
    > не разводят зоопарк.

    А если фиксы не примут, пусть делают форк :)

     
     
  • 5.57, Аноним (40), 00:48, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Да, 2 почти неотличимых форка не выживут, останется только 1.
    Доказано OpenWRT.
     
     
  • 6.59, Акакжев (?), 06:44, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Да, 2 почти неотличимых форка не выживут, останется только 1.
    > Доказано OpenWRT.

    Бритва Оккама же.

     
  • 2.33, user (??), 18:01, 21/11/2018 [^] [ответить]    [к модератору]  
  • +5 +/
    Не доверяю системам сборки, которые сами что-то скачивают.
     
  • 1.22, Юзер (??), 13:43, 21/11/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –3 +/
    Гонево У этого CMake over9000 зависимостей, вплоть до распоследней LibC В итог... весь текст скрыт [показать]
     
     
  • 2.29, kravich (ok), 15:19, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    del
     
  • 2.39, Аноним (39), 21:39, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > У этого CMake over9000 зависимостей, вплоть до распоследней LibC

    Я спрашивал у разрабов. Бинарные сборки, доступные на сайте, собирают в Debian 6 с Glibc 2.11

     
  • 1.25, FedeX (ok), 14:35, 21/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Судя по комментам все ненавидят CMake, но избавиться от него не могут. Народ, я с вами!
     
     
  • 2.27, X4asd (ok), 14:43, 21/11/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    > Судя по комментам все ненавидят CMake, но избавиться от него не могут. Народ, я с вами!

    ну потому что форум про Linux.

    а CMake ну уж совсем не похож на Linux-программы. ни синтаксисом ключей. ни уважением к традициям pkg-config ..

    ды и вообще CMake щаз пользуется популярностью в MS Windows и OS X -- в хипсторских C++ программах (не путать с православным C). а на GNU/Linux оно не так уж и популярно, как впрочем и сам C++.

    победная эстафета в GNU/Linux перехватывается сейчас Meson Build .. ну а CMake продолжает набирать популярность в MS Windows и OS X.

     
     
  • 3.30, Аноним (44), 16:07, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    >ни уважением к традициям pkg-config

    Он там всегда поддерживался. Ты о чём вообще?

     
     
  • 4.36, Аноним (36), 19:04, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > Он там всегда поддерживался. Ты о чём вообще?

    не без проблем

     
     
  • 5.43, Аноним (44), 23:18, 21/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Каких?
     
  • 3.31, yet another anonymous (?), 17:43, 21/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > ... Meson Build ...

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

     
  • 3.41, Аноним (40), 22:58, 21/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Python 3 Ninja Итого чтобы собрать программу на 1 килобайт надо скачать... весь текст скрыт [показать]
     
     
  • 4.42, Аноним (40), 23:01, 21/11/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    И ещё собрать ниндзю, сборка которой тянет за собой пистон, если нет рабочей нин... весь текст скрыт [показать]
     
  • 4.53, Аноним (53), 13:34, 22/11/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > поставить Анаконду на 3 гига.

    что мешает вместо анаконды на 3 гига поставить чистый CPython на 20 мегабайт?

     
  • 1.56, Ложечка (?), 20:09, 22/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Книжку кто-то читал? https://crascit.com/professional-cmake/ Стоит своих денег?
     
     
  • 2.58, Аноним (40), 00:52, 23/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >Стоит своих денег?

    Нет.

     
  • 2.60, l2y (?), 21:10, 24/11/2018 [^] [ответить]    [к модератору]  
  • +/
    Стоит. Единственная CMake книга, которая более менее объясняет новичкам основные концепции.

    Ее также можно скачать на либгене.

     
  • 1.62, Ложечка (?), 11:37, 25/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >Ее также можно скачать на либгене.

    (bow)

     

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


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