The OpenNET Project / Index page

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

12.04.2017 09:16  Релиз системы сборки CMake 3.8

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

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

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

  • Добавлена поддержка сборки проектов на языке CUDA через генераторы Makefile и Ninja для Linux, macOS и Windows;
  • Добавлена поддержка сборки проектов на языке C# через генератор сценариев сборки для Visual Studio;
  • В средствах для настройки параметров компилятора (Compile Features) реализована возможность определения мета-флагов, которые изменяют режим работы компилятора в привязке к специфичным языковым стандартам, например, "cxx_std_11" для C++ 11;
  • "Compile Features" теперь учитывает особенности стандарта C++ 17, но набор мета-флагов "cxx_std_17" для него пока остаётся пустым;
  • В "Compile Features" добавлена поддержка особенностей компиляторов Intel C++ версий с 12.1 по 17.0 для UNIX и Windows;
  • В генераторы сценариев сборки для Visual Studio 2013+ в блок "CMAKE_GENERATOR_TOOLSET" добавлена поддержка опции "host=x64" для указания использования 64-разрядного инструментария на 64-разрядных системах;
  • В генераторах для Visual Studio обеспечен импорт в генерируемый проект файлов MSBuild через передачу в target_link_libraries() файлов с расширением .targets;
  • В команду try_compile() добавлена опция для выбора языкового стандарта, который будет использоваться в генерируемом тестовом проекте. В try_compile() также теперь учитывается переменная окружения CMAKE_CXX_STANDARD;
  • Добавлено свойство "BUILD_RPATH" и связанная с ним переменная "CMAKE_BUILD_RPATH", позволяющие указать собственный путь RPATH для сохранения исполняемых файлов в процессе сборки;
  • Добавлено новое выражение генератора "$‹IF:cond,true-value,false-value ›", возвращающее значение "true-value", если условие "cond" истинно (1) или "false-value" - ложно (0);
  • В свойство "COMPILE_FLAGS" добавлена поддержка выражений генератора.


  1. Главная ссылка к новости (https://blog.kitware.com/cmake...)
  2. OpenNews: Выпуск системы сборки CMake 3.7
  3. OpenNews: Разработчики из компании Google открыли код системы сборки Ninja
  4. OpenNews: Компания Google представила первый выпуск открытой системы сборки Bazel
  5. OpenNews: Twitter представил первый значительный выпуск системы сборки Pants
  6. OpenNews: Выпуск системы сборки GNU Make 4.2
Лицензия: CC-BY
Тип: Программы
Ключевые слова: cmake, make, build
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 09:46, 12/04/2017 [ответить] [показать ветку] [···]    [к модератору]
  • +1 +/
    Полезная инфа по CMake:

    https://github.com/toeb/moderncmake

    https://www.slideshare.net/DanielPfeifer1/cmake-48475415

     
     
  • 2.3, Аноним (-), 11:02, 12/04/2017 [^] [ответить]    [к модератору]
  • –2 +/
    >https://github.com/toeb/moderncmake/blob/master/sample03/CMakeLists.txt
    >https://github.com/toeb/moderncmake/blob/master/sample03/external/Readme.md

    Ясно, понятно.

     
     
  • 3.4, Аноним (-), 11:19, 12/04/2017 [^] [ответить]    [к модератору]
  • –1 +/
    https://github.com/toeb/moderncmake/raw/master/Modern%20CMake.pdf
     
     
  • 4.5, Andrey Mitrofanov (?), 11:42, 12/04/2017 [^] [ответить]    [к модератору]
  • –2 +/
    > https://github.com/toeb/moderncmake/raw/master/Modern%20CMake.pdf

    У модного паренька нет правильной ссылки/хостилки http://thetoeb.de/2016/08/30/modern-cmake-presentation/ с человечим Content-Type: application/pdf или как там, а не даунлоадом или веб-ещё-0 ги-хаба или гу-дока?  ...."Ясно, понятно."

     
  • 1.2, Аноним (-), 10:38, 12/04/2017 [ответить] [показать ветку] [···]    [к модератору]
  • –7 +/
    > "Compile Features" теперь учитывает особенности стандарта C++ 17, но набор мета-флагов "cxx_std_17" для него пока остаётся пустым;

    Какое дело системе сборки до специфичных флагов компилятора?

     
     
  • 2.6, Аноним (-), 11:44, 12/04/2017 [^] [ответить]    [к модератору]  
  • +7 +/
    > Какое дело системе сборки до специфичных флагов компилятора?

    Ты не поверишь -- система сборки генерирует мэйкфайлы, которые будут вызывать компиляторы со специфичными флагами.

     
     
  • 3.7, Аноним (-), 12:03, 12/04/2017 [^] [ответить]     [к модератору]  
  • –4 +/
    Если не дошло, то разъясню специфичные флаги компилятору --- прерогатива автора... весь текст скрыт [показать]
     
     
  • 4.8, Аноним (-), 12:25, 12/04/2017 [^] [ответить]     [к модератору]  
  • +2 +/
    Это так, если вы хотите затачивать ваши сценарии подо все компиляторы на свете ... весь текст скрыт [показать]
     
     
  • 5.11, Andrey Mitrofanov (?), 13:12, 12/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    > Это так, если вы хотите затачивать ваши сценарии подо все компиляторы на
    > должна сама понять, что нужно подсунуть конкретному компилятору, чтобы выполнить это

    Автокрэп не нужон, говорили https://xkcd.com/927/ они...

     
     
  • 6.14, BlackRaven86 (ok), 13:21, 12/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Кто говорил?
    Когда-то был нужен, сейчас его заменил CMake.
     
     
  • 7.15, Аноним (-), 13:44, 12/04/2017 [^] [ответить]     [к модератору]  
  • –2 +/
    Это точно --- cmake реализует идеи аналогичные autotools и порождает проблемы... весь текст скрыт [показать]
     
     
  • 8.16, ваноним (?), 14:16, 12/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    да ваще, жуть! а месье знает что-нибудь лучше? или может сам сделал что-нибудь лучше?
     
     
  • 9.17, Аноним (-), 14:21, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    > да ваще, жуть! а месье знает что-нибудь лучше? или может сам сделал что-нибудь лучше?

    Да.

     
     
  • 10.19, BlackRaven86 (ok), 15:08, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Примеры в студию.
     
     
  • 11.23, Аноним (-), 18:32, 12/04/2017 [^] [ответить]    [к модератору]  
  • –2 +/
    > Примеры в студию.

    А площадка-то соответствует?

     
     
  • 12.26, BlackRaven86 (ok), 18:47, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    А это и не важно. Вы утверждаете, что знаете или сделали лучше. Предоставьте доказательства.
     
  • 11.29, ... (?), 12:16, 13/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Meson
     
     
  • 12.30, Аноним (-), 14:02, 13/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Спасибо за ссылку, но здесь я сильно расхожусь с авторами meson уже на уровне целеполагания.
     
  • 12.31, 35е63ку (?), 00:51, 14/04/2017 [^] [ответить]    [к модератору]  
  • +/
    >>> Meson is also available in the Python Package Index and can be installed with pip3 install meson.

    На помойку ибо не взлетит. Кросплатформленная система сборки не должна зависеть от этого http://i.imgur.com/W5Nx6qg.png

     
     
  • 13.32, Аноним (-), 16:13, 14/04/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    Странно, я собирал готовый пакет на тридцатник Стольник - это если включить те... весь текст скрыт [показать]
     
     
  • 14.36, 35е63ку (?), 02:55, 20/04/2017 [^] [ответить]    [к модератору]  
  • +/
    >> На помойку ибо не взлетит. Кросплатформленная система сборки не должна зависеть от
    >> этого http://i.imgur.com/W5Nx6qg.png
    > Странно, я собирал готовый пакет на тридцатник.
    > Стольник - это если включить тесты, ИДЕ, доки. Я понимаю, что "С:\"
    > по ссылке уже намекает, но это ж из какого места должны
    > расти руки, чтобы раздуть все это до 780МБ?

    У разработчиков питона нужно спросить.

     
  • 13.34, ваноним (?), 21:29, 16/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Поставьте себе уже человеческую ОСь.
    ЗЫ
    * dev-lang/python-2.7.13
             Total files : 4548
             Total size  : 66.50 MiB
    * dev-lang/python-3.4.6
             Total files : 5133
             Total size  : 80.20 MiB
    * dev-lang/python-3.6.1
             Total files : 6907
             Total size  : 101.17 MiB
     
     
  • 14.37, 35е63ку (?), 02:55, 20/04/2017 [^] [ответить]    [к модератору]  
  • +/
    >[оверквотинг удален]
    >          Total files :
    > 5133
    >          Total size  
    > : 80.20 MiB
    >  * dev-lang/python-3.6.1
    >          Total files :
    > 6907
    >          Total size  
    > : 101.17 MiB
    >Cross-platform

     
  • 12.35, ваноним (?), 21:30, 16/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    чем эта поделка принципиально лучше cmake?
     
  • 5.39, adolfus (ok), 15:00, 27/04/2017 [^] [ответить]    [к модератору]  
  • +/
    И она автоматом подключит для винд гoвнoпpиложeние "K" про "безопасные строки".
     
  • 4.10, Аноним (-), 13:03, 12/04/2017 [^] [ответить]     [к модератору]  
  • +2 +/
    Как расшифровывается буковка C в слове cmake, ты, видимо, не в курсе Автор не з... весь текст скрыт [показать]
     
  • 2.9, BlackRaven86 (ok), 12:57, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Как включить в кроссплатформенном проекте поддержку C++14, например?
     
  • 1.12, Аноним (-), 13:12, 12/04/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    > CMake примечателен предоставлением простого языка сценариев

    Да, язык там знатный. Ознакомившись с ним, выбрал autotools.

     
     
  • 2.13, Аноним (-), 13:18, 12/04/2017 [^] [ответить]    [к модератору]  
  • +3 +/
    У autotools-то всё зашибок с синтаксисом, ага. Чудесные макросы, чудесный выхлоп Makefile, - всё замечательно!
     
  • 2.18, Аноним (-), 15:06, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    на БАСИК похож же)
     
  • 2.20, Аноним (-), 16:17, 12/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    M4 чувак!!! Застрелиться.
     
     
  • 3.22, Аноним (-), 17:55, 12/04/2017 [^] [ответить]    [к модератору]  
  • +2 +/
    Анон который не смог в M4 - не анон.

    1337

     
     
  • 4.38, ваноним (?), 20:40, 21/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Не анон тот, кто смог М4 и... ему понравилось.
     
  • 2.21, Аноним (-), 16:27, 12/04/2017 [^] [ответить]    [к модератору]  
  • –1 +/
    Hint: прежде чем выбирать какой-то инструмент, ознакомься с _этим_ инструментом, а не с конкурирующим.
     
  • 2.24, Аноним (-), 18:35, 12/04/2017 [^] [ответить]    [к модератору]  
  • –3 +/
    лучше посмотри на Ninja
     
     
  • 3.28, Аноним (-), 04:19, 13/04/2017 [^] [ответить]     [к модератору]  
  • –1 +/
    лучше посмотри на цмейк, паря https cmake org cmake help latest manual cmake-... весь текст скрыт [показать]
     
  • 1.25, Аноним (-), 18:44, 12/04/2017 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Кто-нибудь знает область применения $‹IF:cond,true-value,false-value ›? Не совсем понятно, для чего это сделано.
     
     
  • 2.27, Аноним (-), 21:35, 12/04/2017 [^] [ответить]    [к модератору]  
  • +/
    Вероятно, для передачи значений сторонним системам сборки и прочим программам, в которых булевый тип имеет представление значений не такое как cmake

    True/False
    1/0
    Enable/Disable

     

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


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