The OpenNET Project / Index page

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

Анонсирована система сборки CMake 3.0.0

11.06.2014 17:24

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

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

Основные изменения:

  • Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков;
  • Язык сценариев расширен поддержкой новых элементов синтаксиса, заимствованных из Lua: #[[комментарий]] и [=[аргумент]=], для которых содержимое внутри скобок воспринимается как есть, без замены переменных и обработки символов экранирования. Например, можно указать message("начало строки\\n" #[[комментарий]] "продолжение строки") или message([=[переменная ${variable}]=]);
  • Переименованы генераторы файлов сборки для Visual Studio 10 (2010) и более новых выпусков: вместо "Visual Studio 10" следует использовать "Visual Studio 10 2010", "Visual Studio 11" - "Visual Studio 11 2012", "Visual Studio 12" - "Visual Studio 12 2013". Поддержка старых имён генераторов оставлена для обеспечения совместимости;
  • Новый расширенный генератор "CodeLite", предназначенный для генерации файлов проектов CodeLite и пригодный для использования с генераторами Makefile или Ninja;
  • Новый расширенный генератор "Kate", предназначенный для генерации файлов проектов Kate и пригодный для использования с генераторами Makefile или Ninja;
  • В команду "add_library()" добавлена поддержка нового типа библиотек "INTERFACE", которые не содержат правил сборки, но могут определять требования по использованию, что, например, применимо для создания заголовочных библиотек, уточняющих ссылочные зависимости с другими библиотеками;
  • В команду "export()" добавлен новый режим "EXPORT", который получает список целей для экспорта из экспортного набора, настроенного через опцию "EXPORT" команды "install(TARGETS)". Добавленная возможность позволяет упростить экспорт из сборочного дерева тех же самых целей, которые экспортированы из установочного дерева;
  • В команду "project()" добавлена обработка переменных с номером версии, выставляемых на основании новой опции "VERSION";
  • Запрещено использование давно устаревших команд в новом коде: "subdir_depends()", "use_mangled_mesa()", "load_command()", "output_required_files()", "export_library_dependencies()", "utility_source()", "variable_requires()", "build_name()";
  • Изменён подход к нумерации версий CMake, вместо первых трёх цифр для обозначения уровня функциональных изменений теперь будут использоваться первые две цифры, третья цифра будет увеличиваться для корректирующих выпусков.


  1. Главная ссылка к новости (http://www.cmake.org/pipermail...)
  2. OpenNews: Выпуск сборочного инструментария qbs 1.2.0, развиваемого проектом Qt
  3. OpenNews: Разработчики из компании Google открыли код системы сборки Ninja
  4. OpenNews: Вышла система сборки Apache Ant 1.9.0
  5. OpenNews: Разработчики SUSE выпустили систему распределённой сборки Icecream 1.0.0
  6. OpenNews: Для GNOME-приложений представлена новая экспериментальная система сборки BuilDj
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/39983-cmake
Ключевые слова: cmake, make
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 18:28, 11/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Переименованы генераторы файлов сборки для Visual Studio 10 (2010) и более новых выпусков: вместо "Visual Studio 10" следует использовать "Visual Studio 10 2010", "Visual Studio 11" - "Visual Studio 11 2012", "Visual Studio 12" - "Visual Studio 12 2013". Поддержка старых имён генераторов оставлена для обеспечения совместимости;

    За такие названия генераторов хочется сделать разработчикам CMake больно — длинные, с пробелами и буквами в обоих регистрах; набирать подобное в консоли та ещё "радость".

     
     
  • 2.3, Аноним (-), 18:46, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да уж, то ли дело QBS!
     
     
  • 3.17, Аноним (-), 21:23, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Да уж, то ли дело QBS!

    Вот не надо на QBS наезжать. По сравнению с qmake это большой прорыв, хотя, конечно, при наличии cmake не понятно нафига оно нужно.

     
     
  • 4.35, Аноним (-), 13:31, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Перечитал, понял что прозвучало как сарказм. На самом деле как раз наоборот)
    Я уже почти полсотни проектов на него перевел, причем еще собираю все 3rdparty-либы им, кроме буста)
     
     
  • 5.39, qqqq (ok), 14:52, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >>почти полсотни проектов на него перевел

    А можно где-то глянуть на это, для расширения кругозора ?

     
     
  • 6.40, Влаидмир (?), 15:26, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, сами проекты нет, но если желаете, то можете найти меня по нику mapron, я могу поделиться примерами скриптов, модулей, интеграции со студией, о подводных камнях и прочем.

    А так лучшая иллюстрация конечно - qbs скрипты в дереве Qt Creator.

     
  • 2.4, Константавр (ok), 19:15, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами а потом сделать
    >Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков

    Для пущей полезности и важности.

     
     
  • 3.12, анонко (?), 20:33, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами
    > а потом сделать
    >>Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков
    > Для пущей полезности и важности.

    всё верно только это делает не только опенсорс

     
     
  • 4.25, rshadow (ok), 04:12, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы даже сказал что проприетарщики делают чаще. Новый продукт _должны_ покупать.
     
     
  • 5.41, Аноним (-), 15:39, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Я бы даже сказал что проприетарщики делают чаще. Новый продукт _должны_ покупать.

    ...поэтому MS выпустив всякое гомнецо типа win8 и wp8 потом дудит в пиар-рупоры, подминает всяких нокл, устраивает аферы с предустановкой и что там еще. Ведь покупать _должны_. А если не покупают - надо толкать продукт в глотку поршнем! Хоть это и полулегально, особенно в случае монополии, но бабло побеждает зло.

     
  • 3.18, dhamp (?), 21:49, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Да, в этом вся суть опенсорса, сначала попереименовать всё "более правильными" именами а потом сделать
    >>Удалены компоненты для обеспечения совместимости со сценариями сборки, написанными для CMake 2.3 и более ранних выпусков
    >Для пущей полезности и важности.

    последний релиз в ветке 2.3.x(2.3.4) был 17 марта 2006, действительно чего-то коммерческая компания(Kitware, Inc) решила дропнуть поддержку, пускай поддерживают до бесконесности.

     
  • 3.33, crypt (ok), 10:08, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в опенсорсе разные проекты есть. а вот несовместимость cmake между версиями - эт да, задалбывает при сборке.
     
     
  • 4.57, Аноним (-), 12:37, 13/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > в опенсорсе разные проекты есть. а вот несовместимость cmake между версиями -
    > эт да, задалбывает при сборке.

    Про декларацию минимальной требуемой версии, которая автоматически настраивает policy — не, не слышали?

     

  • 1.5, Аноним (-), 19:29, 11/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Моя самая любимая программа.
     
     
  • 2.8, chinarulezzz (ok), 20:03, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Моя самая любимая программа.

    смешно))

     
     
  • 3.52, Michael Shigorin (ok), 21:25, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>Моя самая любимая программа.
    > смешно))

    "ай лайк ту шмяк ит, шмяк ит" -- это уже не смешно!

     
  • 2.14, Аноним (-), 20:52, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    И в качестве браузера? :)

     

  • 1.6, iZEN (ok), 19:40, 11/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    CMake — лучший сборщик на FreeBSD.
     
     
  • 2.7, A.Stahl (ok), 19:58, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А ВЛ-80 лучший электровоз на Марсе.
     
  • 2.9, Аноним (-), 20:13, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ужс... мне жаль тебя
    https://www.google.com/search?rls=en&q=cmake+suck&ie=utf-8&oe=utf-8&channel=su
     
     
  • 3.11, iZEN (ok), 20:32, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > ужс... мне жаль тебя

    http://demotivators.to/media/posters/3381/804244_mne-vas-zhal.jpg

     
     
  • 4.23, Аноним (-), 23:48, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "...в каментах... интеллектуал..."
    Да, мля... Именно интеллектуалы и делают такие демотиваторы. С грубыми грамматическими ошибками.
     
     
  • 5.42, Аноним (-), 15:41, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вы специально 2 раза повторили, для iZEN и прочих "интеллектуалов" с IQ=50, до которых с 1 раза не доходит?
     
     
  • 6.56, iZEN (ok), 01:56, 13/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ерохвост.
     
  • 2.16, Аноним (-), 21:22, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > CMake — лучший сборщик на FreeBSD.

    FreeBSD твоя тут совершенно не при чём.
    CMake - просто лучшая на данный момент сборочная система.

     
  • 2.46, Аноним (-), 16:23, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > CMake — лучший сборщик на FreeBSD.

    Изя, как ты мог? Он же на плюсах! А как же жабские среды? :)

     

  • 1.10, Аноним (-), 20:23, 11/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Но, блин, почему даже небольшие проекты использующие CMake очень долго компилируются?
     
     
  • 2.15, Аноним (-), 21:20, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Может потому что содержат много исходного кода?
     
     
  • 3.19, chinarulezzz (ok), 21:59, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • –12 +/
    > Может потому что содержат много исходного кода?

    потому что Си без пол-литра не разобрать, компиляторы медленные. Еще препроцессор, и с безопасностью туго, приходится инструменты всякие дополнительно разрабатывать (вплоть до монстров типа valgrind) и писать тучи манов "как безопасно кодить на С/C++".

    Если АНБ и ввёл троянского коня - так это в самой основе мышления программистов: костыль под названием Сишечка.

     
     
  • 4.20, Аноним (-), 22:34, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > потому что Си без пол-литра не разобрать, компиляторы медленные. Еще препроцессор,

    Как раз си компилируется быстро. Вот плюсы уже другое дело.

    > и с безопасностью туго, приходится инструменты всякие дополнительно разрабатывать

    "Бешеному дитяти ножа в руки не давати".

    > (вплоть до монстров типа valgrind)

    Монстр типа valgrind разложит по полочкам и найдет даже небольшую утечку памяти с полоборота. А у других ЯПов сравнимого инструментария просто НЕТ. Поэтому если там вдруг случаются утечки - начинается полный кластерфак.

    > и писать тучи манов "как безопасно кодить на С/C++".

    "Дypaк и огурцом порежется". Примеры всяких moinmoin и т.п. прекрасно иллюстрируют этот тезис.

    > костыль под названием Сишечка.

    Как же ты пользуешься костыльными операционками? Срочно перепиши их все на яваскрипте и бидоне, мегапрограммист хренов.

     
     
  • 5.21, chinarulezzz (ok), 23:14, 11/06/2014 [^] [^^] [^^^] [ответить]  
  • –9 +/
    вижу, компилирую бывает либы для си в сравнении с пакалём - меееедленно ножом ... большой текст свёрнут, показать
     
     
  • 6.26, Аноним (-), 07:13, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >достаточно новый код писать на легких, быстрых и понятных языках, созданными человеками для человеков, благо такие есть.

    Огласите весь список

     
     
  • 7.36, chinarulezzz (ok), 14:33, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>достаточно новый код писать на легких, быстрых и понятных языках, созданными человеками для человеков, благо такие есть.
    > Огласите весь список

    oberon(2)
    modula(2,3)
    go.

     
     
  • 8.44, Аноним (-), 16:15, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ИЧСХ пока не видно операционок на всем этом В смысле, не PoC вида ежи тоже мог... текст свёрнут, показать
     
     
  • 9.48, chinarulezzz (ok), 16:47, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    на одном есть это про Си и безопасность смотря для кого, но да, проектов уровн... текст свёрнут, показать
     
  • 8.53, Michael Shigorin (ok), 21:28, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Мог пропустить и, кажется, именно Вас уже спрашивал -- много ли кода на них напи... текст свёрнут, показать
     
     
  • 9.54, chinarulezzz (ok), 00:43, 13/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    я много кода читаю и читать эти языки го - так себе - интуитивно даже понятн... текст свёрнут, показать
     
  • 6.29, Ordu (ok), 09:10, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > вижу, компилирую бывает либы для си. в сравнении с пакалём - меееедленно.

    Ну это естественно. Ведь в чём не меряй скорость компиляции -- хоть в строках/сек, хоть в мегабайтах/сек -- в выигрыше окажется паскаль, как содержащий больше синтаксического мусора, который не приводит к генерации кода.

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

    Почти все паскалисты вообще не пишут кода. А тех, кто всё же что-то пишет, хочется взять и больно избить. Уже, хотя бы, за мозговыносящий pascal-mode в emacs. Нет мода хуже, чем pascal-mode, и Николаус пророк его.

     
     
  • 7.31, цирроз (ok), 10:01, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Почти все паскалисты вообще не пишут кода

    Они пишут код в школе

     
     
  • 8.45, Аноним (-), 16:16, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для школы паскаль хорош - зануден и приучает к порядку Но почему-то взрослому ч... текст свёрнут, показать
     
     
  • 9.50, цирроз (ok), 18:21, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Стереотипность мышления бабушек, сударь Плюс, как правило, катастрофическое отс... текст свёрнут, показать
     
  • 7.37, chinarulezzz (ok), 14:34, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > мозговыносящий pascal-mode в emacs. Нет мода хуже, чем pascal-mode,

    fpc поддерживается?

     
  • 6.43, Аноним (-), 16:13, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Странно И чего это никто не пишет либы на паскале И операционки не пишут Дитя... большой текст свёрнут, показать
     
     
  • 7.47, chinarulezzz (ok), 16:42, 12/06/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    да, си крутой потому что на нём пишут)) чувак, мы говорим о разном. проехали)
     
  • 7.59, Аноним (59), 08:55, 16/06/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Забавно приписывать плюсы компилятора и оптимизатора языку программирования.
     

  • 1.24, kravich (ok), 03:56, 12/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Новый расширенный генератор "CodeLite"

    гуд

     
  • 1.27, Аноним (-), 07:46, 12/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ура !
     
  • 1.28, Pulfer (ok), 08:31, 12/06/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Пока ещё сложно судить, сколько проблем переход на новую версию вызовет, но как минимум hedgewars с ним перестал собираться.
     

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



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

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