The OpenNET Project / Index page

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

19.07.2017 13:43  Релиз системы сборки CMake 3.9

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

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

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

  • В генераторы сборочных сценариев для Visual Studio 2010+ добавлена поддержка сборки проектов на языке CUDA (ранее CUDA поддерживался только генераторами Makefile и Ninja);
  • CMake теперь учитывает особенности стандартов Си/Си++ и связанные с ними мета-функции для компиляторов, вызываемых при указании идентификаторов "Cray", "PGI" и "XL";
  • Представлен модуль "CheckIPOSupported", предназначенный для проверки обеспечения поддержки в инструментарии межпроцедурных оптимизаций (IPO). IPO поддерживаются для компиляторов GCC и Clang;
  • В генераторе для Visual Studio 14 2015 учтены изменения инструментария v140, внесённые в очередном обновлении VS 2015. В частности изменён набор значений для настройки GenerateDebugInformation, используемой при включении отладочного режима (-DEBUG) в компоновщике;
  • В генераторы для Visual Studio 2010+ добавлена поддержка языка "ASM_NASM", включаемая при установке "nasm";
  • В генераторе "Xcode" появилась поддержка Xcode 9 и возможность создания схем сборки для Xcode, активируемая через переменную "CMAKE_XCODE_GENERATE_SCHEME";
  • Команда add_library() с опцией IMPORTED теперь может использоваться для библиотек объектных файлов (Object Libraries). В команду install(TARGETS) добавлена опция OBJECTS” для указания пути для установки библиотек объектных файлов. В команду install(EXPORT) добавлена поддержка экспорта библиотек объектных файлов;
  • Для библиотек объектных файлов реализовано свойство CUDA_PTX_COMPILATION, обеспечивающее компиляцию в файлы .ptx, вместо обычных объектных файлов;
  • Добавлено свойство BUILD_WITH_INSTALL_NAME_DIR и связанная с ним одноимённая переменная для управления включением свойства INSTALL_NAME_DIR для исполняемых файлов в сборочном дереве;
  • Добавлен модуль GoogleTest, предоставляющий средства для использования функции gtest_add_tests(), независимо от модуля FindGTest;
  • Файлы с исходными текстами в зависимых сборках теперь компилируются без ожидания окончания связывания других зависимостей;
  • В команды add_custom_command() и file(GENERATE) добавлена поддержка выражений генератора и свойств TARGET_OBJECTS.

  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Релиз системы сборки CMake 3.8
  3. OpenNews: Компания Yahoo открыла код сборочной платформы Screwdriver
  4. OpenNews: Выпуск сборочного инструментария qbs 1.8, развиваемого проектом Qt
  5. OpenNews: Разработчик языка XL опубликовал новую сборочную систему build
  6. OpenNews: Выпуск системы сборки GNU Make 4.2
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cmake, make, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Iaaa (ok), 13:55, 19/07/2017 [ответить] [показать ветку] [···]    [к модератору]
  • –2 +/
    И снова, как обычно, хана обратной совместимости. Мои скрипты, что отлично бегают под 3.5.1 и 3.8.0-rc3 под 3.9 отваливаются.
     
     
  • 2.2, Крутой аноним (?), 14:16, 19/07/2017 [^] [ответить]    [к модератору]
  • +6 +/
    > И снова, как обычно, хана обратной совместимости.

    ИМХО конечно, но там крутая обратная совместимость.
    Все ломающие изменения делаются через policy,
    отключите/включите policy ломающую ваш код и все.

     
     
  • 3.4, Iaaa (ok), 14:33, 19/07/2017 [^] [ответить]    [к модератору]
  • +/
    спасибо, я посмотрю. оно не горит, конечно, но будет полезно.
     
  • 2.3, anonymous (??), 14:20, 19/07/2017 [^] [ответить]    [к модератору]
  • –2 +/
    Совсем недавно перевёл крупный проект (250+ файлов CMakeLists.txt) с cmake 2.8 на cmake 3.5. В проекте используется кодогенерация, понаписана куча cmake-макросов и функций. При портировании пара затыков была, но в целом переход дался достаточно легко. ЧЯДНТ?
     
     
  • 3.5, Iaaa (ok), 14:34, 19/07/2017 [^] [ответить]    [к модератору]
  • +10 +/
    > ЧЯДНТ?

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

     
     
  • 4.6, hoopoe (ok), 15:00, 19/07/2017 [^] [ответить]    [к модератору]  
  • +9 +/
    да ладно, тут многие так делают :)
     
  • 4.9, anonymous (??), 15:21, 19/07/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    Практически любой инструмент можно использовать так, что в итоге огребёшь неприятностей. Довольно глупо (как минимум, не конструктивно) потом ходить по форумам и рассказывать, что это инструмент во всём виноват.
     
     
  • 5.25, Кто здесь (?), 22:20, 19/07/2017 [^] [ответить]    [к модератору]  
  • +3 +/
    ИМХО, такая обратная связь нужна. Она показывает, что проблемы есть. Потом кто-нибудь сможет нагуглить и потратить на удары головой об стол не 8 часов, а полчаса.
     
  • 4.11, Аноним (-), 16:28, 19/07/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Резал хлеб и порезался, забивал гвоздь и отбил пальцы, ел салат - выбил зуб и пр... весь текст скрыт [показать]
     
     
  • 5.31, Клыкастый (ok), 15:39, 25/07/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    > ел салат - выбил зуб и проколол язык

    Никогда не доверял салатам!

     
  • 3.15, Аноним (-), 18:13, 19/07/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    > ЧЯДНТ

    Например, делаете 250 CMakeLists.txt.

     
  • 3.26, Аноныч (?), 22:28, 19/07/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    > Совсем недавно перевёл крупный проект (250+ файлов...

    Да, крупный проект. Хелловорлд с рюшечками.

     
     
  • 4.29, Аноним (-), 22:00, 21/07/2017 [^] [ответить]    [к модератору]  
  • +/
    OpenCV - это вам не helloworld, но даже там столько модулей не наберётся
     
  • 1.7, Аноним (-), 15:02, 19/07/2017 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Кто пользуется, может будет интересно посмотреть мой проект пакетного менеджера ... весь текст скрыт [показать]
     
     
  • 2.20, Аноним (-), 19:23, 19/07/2017 [^] [ответить]     [к модератору]  
  • +/
    Для Windows в CMake встроена возможность находить зависимости через реестр , со... весь текст скрыт [показать]
     
     
  • 3.24, Egor Pugin (?), 20:36, 19/07/2017 [^] [ответить]    [к модератору]  
  • +/
    Управление зависимостями: автоматическая загрузка, сборка в любых необходимых конфигурациях (зависит от проекта верхнего уровня). Время добавления зависимости минимально.
     
  • 1.8, yekm (ok), 15:14, 19/07/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Кстати вот Boost собрался на cmake, если кто ещё не в курсе. http://boost.2283326.n4.nabble.com/CMake-Announcement-from-Boost-Steering-Com
     
     
  • 2.10, anonymous (??), 15:28, 19/07/2017 [^] [ответить]    [к модератору]  
  • +4 +/
    Прекрасно. Нынешняя система сборки буста - это отдельное направление уличной магии.
     
  • 2.12, kravich (ok), 16:45, 19/07/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    огонь, давно пора
     
  • 2.18, nobody (??), 19:19, 19/07/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    Прям так и "собрался", ага... Многие активные суппортеры высказались против,                         пока не увидят полностью рабочее решение на CMake. Бустовая система сборки - тот ещё кошмар, конечно, но задачи проекта решает пока хорошо.
    Правильно писать: "Boost собрался попробовать cmake". Решения о переходе никто не принимал и не утверждал
     
  • 1.13, Alex (??), 17:10, 19/07/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А может кто подсказать на каких форумах можно найти хорошо знающих людей по cmake? Столкнулся с проблемой линкования внешне собранной либы. На Киберфоруме тишина, на убунтушном форуме тешина)
    Короче печаль
     
     
  • 2.14, Аноним (-), 17:36, 19/07/2017 [^] [ответить]    [к модератору]  
  • +1 +/
    stackoverflow
     
  • 2.21, Аноним (-), 19:47, 19/07/2017 [^] [ответить]    [к модератору]  
  • +/
    заходи на UFO
     
  • 2.22, Аноним (-), 20:13, 19/07/2017 [^] [ответить]     [к модератору]  
  • +/
    не знаю на счет форумов, но вот ссылки, которые я храню как полезные и помогшие ... весь текст скрыт [показать]
     
  • 2.28, Аноним (-), 01:01, 21/07/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Порядок библиотечек поменяй и все взлетит. Это недостаток у gcc или даже линкера
     
     
  • 3.32, Alexey (??), 21:42, 25/07/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Да уже все перебробовал. И разные способы подключения. Вообще не идет. Все время проблема с линковкой и все.
    Даже на форуме за помощь деньги предлагал знатокам,что с сmake давно работает) как то не прошло)
    Если вы его хорошо знаете то давайте, может вы окажете помощь)
     
  • 2.30, д2н (?), 13:35, 22/07/2017 [^] [ответить]    [к модератору]  
  • +/
    #cmake на freenode
     
  • 1.17, Аноним (-), 18:56, 19/07/2017 [ответить] [показать ветку] [···]     [к модератору]  
  • –1 +/
    Кстати Заметил либу cublas в 300-мегабайтном CUDA Toolkit-е Все либы называютс... весь текст скрыт [показать]
     
  • 1.19, nobody (??), 19:23, 19/07/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    > для библиотек объектов

    Долго пытался понять о чём речь... Может корректнее по-русски "Библиотеки объектных файлов"? Вместо кальки с английского "Object Libraries"

     
     
  • 2.27, Аноним (-), 23:58, 19/07/2017 [^] [ответить]     [к модератору]  
  • +1 +/
    171 Библиотека объектных файлов 187 тоже так себе формулировка Все таки обы... весь текст скрыт [показать]
     

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


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