The OpenNET Project / Index page

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

07.07.2016 21:05  Выпуск системы сборки CMake 3.6

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

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

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

  • В генератор файлов сборки для Visual Studio 14 2015 добавлена поддержка инструментария Clang/C2 (используется опция "-T v140_clang_3_7");
  • В команду list() добавлена подкоманда FILTER для фильтрации списка элементов по маске, заданной при помощи регулярного выражения;
  • Добавлена переменная CMAKE_TRY_COMPILE_TARGET_TYPE для информирования команды try_compile() о необходимости сборки статической библиотеки вместо исполняемого файла, что может оказаться полезным для систем кросс-компиляции, которые не могут связывать исполняемые файлы без отдельных флагов или скриптов;
  • Добавлена поддержка свойства {язык}_CLANG_TIDY и переменной CMAKE_{язык}_CLANG_TIDY для указания генератору makefile и генератору Ninja-файлов о необходимости запуска clang-tidy вместе с компилятором для языков C/С++;
  • В модуль ExternalProject добавлена опция "GIT_SHALLOW 1" для создания shallow-клона репозитория и добавлена поддержка рекурсивной инициализации субмодулей Git;
  • В модуль InstallRequiredSystemLibraries добавлена опция CMAKE_INSTALL_UCRT_LIBRARIES для применения локального развёртывания универсальных CRT-библиотек Windows при помощи Visual Studio 2015;
  • Функциональность Compile Features теперь учитывается возможности, поддерживаемые в компиляторах Intel C++ версий с 12.1 по 16.0 на платформах UNIX;
  • Объявлены устаревшими модуль CMakeForceCompiler и генератор сборочных файлов для Visual Studio 7 .NET 2003. Прекращена поддержка генератора для Visual Studio 7 и Visual Studio 6.


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Выпуск системы сборки CMake 3.5
  3. OpenNews: Разработчики из компании Google открыли код системы сборки Ninja
  4. OpenNews: Компания Google представила первый выпуск открытой системы сборки Bazel
  5. OpenNews: Twitter представил первый значительный выпуск системы сборки Pants
  6. OpenNews: Выпуск системы сборки GNU Make 4.2
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cmake, make
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, ANDREY KOSTELTSEV, 23:52, 07/07/2016 [ответить] [смотреть все]
  • +2 +/
    А авторы хотябы в этом релизе догадались, что такое --libdir, --bindir, --sbindir ли может хотябы разобрались в отличиях --prefix и DESTDIR ?
     
     
  • 2.3, BlackRaven86, 00:00, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Сто лет уже как есть https cmake org cmake help v3 6 module GNUInstallDirs htm... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.8, ANDREY KOSTELTSEV, 00:39, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Покажите мне хотябы один проект, использующий CMake в котором задание этих перем... весь текст скрыт [показать]
     
     
  • 4.14, BlackRaven86, 01:36, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Любой проект, который использует GNUInstallDirs У меня такие есть и все работае... весь текст скрыт [показать]
     
     
  • 5.17, ANDREY KOSTELTSEV, 01:42, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Вы наверное их делаете сами Вы назовите конкретный пакет Ведь ни один из переч... весь текст скрыт [показать]
     
     
  • 6.22, Аноним, 05:45, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Подтверждаю Это работает везде Это у вас самого проблемы на вашем локалхосте, ... весь текст скрыт [показать]
     
  • 6.37, BlackRaven86, 14:22, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Например https github com search l cmake q include 28GNUInstallDirs 29 ref se... весь текст скрыт [показать]
     
  • 4.24, Ilya Indigo, 07:50, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    eiskaltdcpp-qt подойдёт А так куча других могу привести code n eiskaltdcpp ... весь текст скрыт [показать]
     
     
  • 5.27, anonymous, 08:45, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    make -j4 PREFIX usr QMAKE qmake-qt5 LRELEASE lrelease-qt5 не кактит, да ... весь текст скрыт [показать]
     
     
  • 6.29, Аноним, 09:09, 08/07/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    У человека просто cmake головного мозга, или по простому каша в голове.
     
  • 6.30, Ilya Indigo, 09:36, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Нет, не катит PREFIX не изменяется ... весь текст скрыт [показать]
     
     
  • 7.34, ANDREY KOSTELTSEV, 10:37, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Разумеется, что такое переменные окружения, авторы CMake сначала тоже не знали, ... весь текст скрыт [показать]
     
     
  • 8.41, dhamp, 16:24, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Авторы СMake дали возможность читать ENV переменные, то что это большинство не и... весь текст скрыт [показать]
     
  • 7.45, anonymous, 08:58, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Ну, не знаю, что Вы там курите make -f x mk dummy echo internal internal ... весь текст скрыт [показать]
     
  • 5.33, ANDREY KOSTELTSEV, 10:32, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Не подойдет, в нем QUI с использованием qmake собирается А Qmake, как я говорил... весь текст скрыт [показать]
     
     
  • 6.38, BlackRaven86, 14:24, 08/07/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Толсто ... весь текст скрыт [показать]
     
  • 6.40, dhamp, 16:11, 08/07/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    В eiskaltdcpp Qt UI собирается с помощью qmake Видать я, как один из авторов, н... весь текст скрыт [показать]
     
  • 6.43, rico, 19:08, 08/07/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Андрюша, ну тебя сегодня утерли в треде И гугл ты не осилил и CMake И про qmak... весь текст скрыт [показать]
     
     
  • 7.47, ANDREY KOSTELTSEV, 17:36, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Люди просто не собирали чужие пакеты в таких количествах кросс-компиляторами для... весь текст скрыт [показать]
     
     
  • 8.49, rico, 20:42, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Несомненно, на non PC переменные окружения видимо по-другому окружают ... весь текст скрыт [показать]
     
  • 1.2, ANDREY KOSTELTSEV, 23:56, 07/07/2016 [ответить] [смотреть все]  
  • +/
    Несчастные пользователи CMake вынуждены добавлять собственные переменные типа LLVM_LIBDIR_SUFFIX или ASSIMP_LIB_INSTALL_DIR.

    И еще вопрос. Когда наконец CMake начнет правильно понимать CCACHE(1)?

     
     
  • 2.23, andy, 06:13, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Почему Вы эти вопросы задаете на opennet.ru, а не
    в багтрекере проекта?
     
     
  • 3.31, ANDREY KOSTELTSEV, 09:46, 08/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Задаю, разумеется, и в проектах Баги завожу Только проблема в том, что ошибки ... весь текст скрыт [показать]
     
  • 2.42, dhamp, 16:25, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    И в чём же он не правильно его понимает ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, ANDREY KOSTELTSEV, 17:25, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    http://stackoverflow.com/questions/1815688/how-to-use-ccache-with-cmake
     
     
  • 4.48, dhamp, 18:24, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Описания по ссылке проблем CMake как ни странно нет, а вот у людей желания испол... весь текст скрыт [показать]
     
     
  • 5.50, ANDREY KOSTELTSEV, 23:18, 09/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Ну вот вам пример Для того чтобы использовать ccache в файл CMakeLists txt доба... весь текст скрыт [показать]
     
     
  • 6.51, dhamp, 17:31, 10/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Видимо я всегда делал что-то не так, если мне нужен был ccache Всего то вызывал... весь текст скрыт [показать]
     
     
  • 7.52, ANDREY KOSTELTSEV, 02:20, 11/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Вы молодец конечно Символические ссылки - это один из способов использовать cca... весь текст скрыт [показать]
     
  • 1.4, Андрей, 00:08, 08/07/2016 [ответить] [смотреть все]  
  • +/
    Вот есть некоторые активно развиваемые проекты, которые мне бы хотелось, чтобы не появлялись. От этого, конечно, не исчезает проблема, для решения которой они появляются. Но хотелось бы, чтобы кто-то другой с другим подходом создал бы такой проект.
     
     
  • 2.6, Аноним, 00:37, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Запомни, дружок: это называется неосиляторством.
     
     
  • 3.28, Андрей, 08:52, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Проблема cmake не для себя использовать, а то, что в отличие от тех же autotools... весь текст скрыт [показать]
     
     
  • 4.32, ANDREY KOSTELTSEV, 09:51, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Вы абсолютно правы Проекты с autoconf, в основном, копируют друг друга и, если ... весь текст скрыт [показать]
     
  • 2.7, Аноним, 00:38, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вон, автотулзы были. Лучше бы вообще не было.
     
     
  • 3.12, ANDREY KOSTELTSEV, 01:04, 08/07/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Однако новейшие проекты все-таки используют autoconf Например, авторы Wayland н... весь текст скрыт [показать]
     
     
  • 4.44, Guest, 01:52, 09/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Андрей, а как вы считает gradle сможет заменить CMake Там ведь тоже планируется... весь текст скрыт [показать]
     
     
  • 5.53, ANDREY KOSTELTSEV, 02:43, 11/07/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    НЕТ Он ничем не лучше Jam Вы знаете, если бы в MS Windows смогли обеспечить бы... весь текст скрыт [показать]
     
  • 3.15, BlackRaven86, 01:38, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Отнюдь Для своего времени было неплохо, а сейчас есть тот же CMake Со временем... весь текст скрыт [показать]
     
  • 3.36, Аноним, 13:40, 08/07/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    I saw a book entitled Die GNU Autotools and I thought My feelings exactly T... весь текст скрыт [показать]
     
  • 2.10, ANDREY KOSTELTSEV, 00:52, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    CMake активно поддерживается людьми, которые не хотят самостоятельно вызывать ко... весь текст скрыт [показать] [показать ветку]
     
  • 2.25, АнонимХ, 07:55, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Выход - сидеть и бухать Если ты еще не видел, так делает большинство населения ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, robux, 08:21, 08/07/2016 [^] [ответить] [смотреть все]  
  • +/
    Ты их ОЧЕНЬ СИЛЬНО переоцениваешь За аналитикой синтетика у них не следует Обы... весь текст скрыт [показать]
     
  • 1.5, vitalikp, 00:37, 08/07/2016 [ответить] [смотреть все]  
  • +1 +/
    Единственное, что напрягает в cmake это верхний регистр символов.
    Понятное дело, что можно писать в нижнем, но когда читаешь документацию или задаешь параметры сборки(или еще что-нибудь) это немного отвлекает. Хотя в целом терпимо.
    Если сравнивать с Autotools, то разобраться с нуля конечно легче на cmake.
    В Autotools больше возможностей, но осваивать его значительно труднее.
    Даже написать простенький конфиг не подсматривая на другой проект будет довольно сложно.
    В тоже время в cmake есть некоторые не очевидные вещи, которые трудно понять как настроить. Я бы сказал местами cmake не очевидный или немного заумный. В детали не хочу вдаваться, но кто пользуется поймет.
    Хочется некоторой простоты, которой нету ни в cmake, ни в Autotools.
     
     
  • 2.9, ANDREY KOSTELTSEV, 00:48, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Начинать надо с простого https www gnu org software pth pth-manual html autoc... весь текст скрыт [показать] [показать ветку]
     
  • 2.39, glebiao, 14:53, 08/07/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >Единственное, что напрягает в cmake это верхний регистр символов

    Ты воитину, крут! И терпелив! :)

    >Хочется некоторой простоты, которой нету ни в cmake, ни в Autotools.

    http://scons.org

     
  • 1.54, Алексей, 13:12, 02/01/2017 [ответить] [смотреть все]  
  • +/
    Подскажите, на каких форумах можно найти народ хорошо разбирающийся в cmake?
     
     
  • 2.55, Ilya Indigo, 16:12, 03/01/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Подскажите, на каких форумах можно найти народ хорошо разбирающийся в cmake?

    Начните с https://ru.stackoverflow.com и https://stackoverflow.com

     

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


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