The OpenNET Project / Index page

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

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

12.11.2016 10:09

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

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

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

  • Поддержка кросскомпилирования для платформы Android;
  • В генератор сценариев для сборочной системы Ninja добавлена поддержка языка Фортран;
  • В команду "if()" добавлена поддержка дополнительных операций сравнения "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL", "VERSION_LESS_EQUAL", и "VERSION_GREATER_EQUAL";
  • В команде "try_compile()" при оценке сигнатуры файла в сгенерированном тестовом проекте теперь учитываются флаги конфигурации, такие как "CMAKE_LANG_FLAGS_DEBUG" (ранее использовались только флаги по умолчанию);
  • Файлы инструментария теперь могут выставлять переменные окружения "CMAKE_EXE_LINKER_FLAGS_INIT", "CMAKE_SHARED_LINKER_FLAGS_INIT" и "CMAKE_MODULE_LINKER_FLAGS_INIT" для инициализации в кэше элементов "CMAKE_EXE_LINKER_FLAGS", "CMAKE_SHARED_LINKER_FLAGS" и "CMAKE_MODULE_LINKER_FLAGS" при первой активации языка;
  • В CTest добавлены свойства "FIXTURES_SETUP", "FIXTURES_CLEANUP" и "FIXTURES_REQUIRED";
  • Прекращено распространение с сайта проекта исполняемых файлов CMake для архитектуры i386 Linux;
  • Из поставки удалены файлы "cmake-indent.vim", "cmake-syntax.vim", и "cmake-help.vim", вместо которых рекомендуется использовать сценарии от проекта vim-cmake-syntax;
  • Прекращена поддержка самосборки CMake на системах с компиляторами Visual Studio 7.1, Visual Studio2005 и MinGW.org mingw32 (следует использовать Visual Studio 2008, MSYS2 mingw32 и mingw64). Поддержка данных компиляторов для формирования сценариев сборки в других проектах сохранена.


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Компания Google представила первый выпуск открытой системы сборки Bazel
  3. OpenNews: Выпуск сборочного инструментария qbs 1.4.0, развиваемого проектом Qt
  4. OpenNews: Первый публичный выпуск сборочного инструментария build2
  5. OpenNews: Разработчики из компании Google открыли код системы сборки Ninja
  6. OpenNews: Выпуск системы сборки GNU Make 4.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45483-cmake
Ключевые слова: cmake, build, make
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:28, 12/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А существует генератор генератора сценариев сборки?
     
     
  • 2.21, devpreview (ok), 23:49, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    qmake
     
  • 2.32, all_glory_to_the_hypnotoad (ok), 17:29, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так это cmake и есть, оно генерирует сценарии для make. Есть ещё генераторы из различных проприетарных форматов в сmake.
     

  • 1.2, Плазма полетела (?), 10:53, 12/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    А кто-нибудь проверял исходный код компиляторов? И чем вообще компилируются компиляторы?
     
     
  • 2.3, Алексей (??), 11:01, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Одним из шагов проверки надежности компилятора является сборка его самим собой. Думаю вопрос закрыт?
     
     
  • 3.4, klalafuda (?), 12:07, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Я взял исходники gcc и собрал их имеющимся бинарным gcc. Само по себе это конечно здорово и увлекательно, но что это говорит с точки зрения надежности компилятора? Помимо того, что я могу собрать gcc версии A gcc-ой верии B.
     
     
  • 4.5, Аноним (-), 13:17, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    После сборки и установки версии B собери версией B ещё раз исходники версии B.
     
  • 4.7, Аноним (-), 15:08, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Я вам скажу по секрету, gcc собирает себя дважды (или даже трижды, уже не помню). Первый раз - вашей локальной версией gcc. Второй раз - собранной версией на первом шаге. Третий раз - собранной на втором шаге, после чего, вроде, проверяется, что вторая и третья версия эквивалентны.
     
     
  • 5.13, Аноним (-), 17:15, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    При сборке г-цы-цы г-ц-цой и при ее кросскомпиляции часто --disable-bootstrap добавляют чтобы собирать только один раз
     
     
  • 6.39, yaa (?), 19:06, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > При сборке г-цы-цы г-ц-цой и при ее кросскомпиляции часто --disable-bootstrap добавляют чтобы собирать только один раз

    Да, только не Абрам, а Мойше, не на скачках, а в преферанс, не в Лондоне, а в Житомире, не 20 тыс., а 20 рублей и не выиграл, а проиграл.

     
  • 4.31, анон (?), 16:58, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что такое надежность компилятора? Он собрал вашу программу или нет? Собственно, о чем переживания?
     
     
  • 5.35, DG94 (ok), 11:38, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Компиляторы тоже люди пишут, и в них могут встречаться различные ошибки, к примеру неверная трансляция определенного участка кода в ассемблер, и получится так что программист вроде все сделал правильно а программа не компилируется. Для предотвращения подобных случаев и существуют автоматические системы тестирования, а сборка компилятора самим собой это одна из традиционных проверок любого компилятора.
     
  • 4.40, Аноним (-), 20:00, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вручную скомпилируй TCC. Затем откомпилируй PCC полученным TCC. Затем откомпилируй GCC полученным PCC. И наслаждайся.
     
  • 3.8, Comdiv (ok), 15:44, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Одним из шагов проверки надежности компилятора является сборка его самим собой.
    > Думаю вопрос закрыт?

    На тьюринговской лекции Кен Томпсон рассказал, как в качестве эксперимента внедрил в исходный код компилятора Си специальный функционал, который внедрял дополнительный код в компилируемые программы в том числе и сам компилятор. После этого он изменил зловредный код таким образом, чтобы его наличие в исполнимом файле не требовало наличия в исходном и поэтому не могло быть обнаружено просмотром исходников.

    Это лишь забавный пример того, что вопрос несколько сложней, чтобы его так просто закрывать.

     
     
  • 4.9, АнонимХ (ok), 15:56, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это, пожалуйста, унесите на винфак. Там студия внедряет сбор телеметрии в твою программу, если специально это не предотвратить. Интегрирует это с нашумевшим общесистемным сбором данных о пользователе
     
     
  • 5.11, Comdiv (ok), 16:28, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Когда в 1983 Кен Томпсон на пару с Деннисом Ритчи получал Тьюринговскую премию за разработку UNIX ни о какой Windows с Visual Studio, как Вы понимаете, речь не шла. Проблема несколько шире.
     
     
  • 6.15, . (?), 20:28, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Они эту премию получили за соооовсем другое! :)
    А та проблема о чём ты пытаешься говорить - есть только на закрытых платформах.
    Да даже и там - мсявок вот за руку поймали :)

    Но безусловно, если булки расслабить то поимеют :)

     
     
  • 7.16, YetAnotherOnanym (ok), 23:28, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > есть только на закрытых платформах

    Доооооо... Хоть сто раз пересобери мир, если в компиляторе изначально была закладка, она все сто раз перекочует в новый компилятор.

     
     
  • 8.19, Аноним (-), 23:41, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Однако ж можно попользоваться Тюрингом против закладок 1 Закладка может оказат... текст свёрнут, показать
     
  • 8.45, Аноним (-), 18:15, 16/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так не пересобирай мир закрытыми компиляторами И да, достаточно много глаз смот... текст свёрнут, показать
     
  • 7.23, Comdiv (ok), 00:56, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Они эту премию получили за соооовсем другое! :)

    Ознакомьтесь:
    http://amturing.acm.org/award_winners/thompson_4588371.cfm

    > With Dennis M. Ritchie, for their development of generic operating systems theory
    > and specifically for the implementation of the UNIX operating system.

     
  • 4.12, deadfood (ok), 16:35, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >внедрил в исходный код компилятора Си

    зачем так сложно? простенький файловый вирус в gcc и всё

     
     
  • 5.20, Аноним (-), 23:43, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > зачем так сложно? простенький файловый вирус в gcc и всё

    И вот собираю я gcc'ом допустим бутлоадер какой, где такого понятия как файл вообще нету. И как это должно работать?

     
     
  • 6.29, Линукс еще не готов (?), 08:50, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если в компилируемом файле нет обращений к файловой системе то не внедрять ничего.
     
  • 4.36, DG94 (ok), 11:53, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть я довольно подозрительный человек, но даже у меня не возникало подозрений к GCC или Clang тем более что код этих проектов открыт и при большом желании можно провести их аудит (насколько это затратно это уже другой вопрос), да и разработчики компиляторов частенько заглядывают под капот проектов конкурентов, а при обнаружении подобных закладок молчать бы они точно не стали.
     
     
  • 5.37, Comdiv (ok), 14:43, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Значит, Вы не такой уж и подозрительный человек. Есть такой конкурс http://underhanded-c.org . В отличии от конкурса обфусцированного кода здесь ценят прилично выглядящий, хорошо написанный код, который делает не совсем то, что можно ожидать. Закладки, оформленные в таком стиле не так просто обнаружить.

    Это не означает, что нечто подобное внедрено в gcc.

     
  • 2.6, gresolio (ok), 13:46, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    "Раскрутка компилятора"
    https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81
     
  • 2.18, Аноним (-), 23:35, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И чем вообще компилируются компиляторы?

    Традиционно - самим собой :)


     

  • 1.10, жабабыдлокодер (ok), 16:12, 12/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    *меланхолично
    ReactOS - это не то, что стоит заносить в достижения... В отличие от KDE или Blender...
     
     
  • 2.14, Аноним (-), 17:18, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > *меланхолично
    > ReactOS - это не то, что стоит заносить в достижения... В отличие
    > от KDE или Blender...

    С такой альтернативной логикой прохождение юнит-тестов надо вообще заносить в регресс

     
     
  • 3.17, Аноним (-), 23:33, 12/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > С такой альтернативной логикой прохождение юнит-тестов надо вообще заносить в регресс

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

    А реактос показал что можно 17 лет страдать хней, запуская ОС на виртуалочке. Совсем как живое, только не работает. Настолько что разработчики азрабатывают этот крап в уютной максималке с вьюжлостудией. Тьфу.

     
     
  • 4.24, онани_ст (?), 01:15, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    но вы допустили ошибку в слове  ректумтос
     
  • 4.26, Аноним (-), 02:34, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какое отношение Ваш полет бреда имеет к CMake?
     
  • 2.25, Вы забыли заполнить поле Name (?), 02:18, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это скрытая реклама.
     
  • 2.41, DG94 (ok), 20:05, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не пойму почему так хейтят ReactOS, ведь вроде его разработка приносит пользу проекту Wine который иногда бывает весьма полезен. Да и вообще если проект разрабатывается значит приносит какие-то профиты, редко что-то убыточное держится исключительно на одном энтузиазме.
     
     
  • 3.42, жабабыдлокодер (ok), 21:50, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Wine НЕ берет ничего из ReactOS.
     
     
  • 4.44, DG94 (ok), 01:14, 15/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ReactOS works with the WINE project to share as much programming effort as possible. ReactOS depends on Wine mainly for user mode DLLs. Where appropriate, patches to Wine are also submitted by the development team, and patch contributors are often directed to Wine if it is felt that the patches would benefit them.
     

  • 1.22, Аноним (-), 23:49, 12/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Как так, про cmake-server в списке основных изменений написать забыли!
     
  • 1.28, Аноним (-), 06:54, 13/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > В команду "if()" добавлена поддержка дополнительных операций сравнения "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL", "VERSION_LESS_EQUAL", и "VERSION_GREATER_EQUAL"

    Синтаксис по прежнему кошмарен.

     
     
  • 2.30, Аноним (-), 10:40, 13/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    -DLOOONGCAT ……………………
     
     
  • 3.38, Аноним (-), 15:46, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    -DLONGCAT_IS_LOOOOOOOOOOOOOOOOOOONG
     

  • 1.46, нет (??), 16:21, 18/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    первый релиз без презрительных каментов о превосходстве над autotools. По крайней мере самое любимое слово адептов 'autocrap' уже не встречается. Надеюсь, сменили область приложения усилий.
     

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



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

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