URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 110932
[ Назад ]

Исходное сообщение
"Релиз системы сборки CMake 3.8"

Отправлено opennews , 12-Апр-17 09:46 
Состоялся (https://blog.kitware.com/cmake-ups-support-for-popular-progr.../) релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.8 (http://www.cmake.org/), выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код  CMake написан на языке C++  и распространяется под лицензией BSD.

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

Основные улучшения (https://cmake.org/cmake/help/v3.8/release/3.8.html#new-features):


-  Добавлена поддержка сборки проектов на языке 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" добавлена поддержка выражений генератора.


URL: https://blog.kitware.com/cmake-ups-support-for-popular-progr.../
Новость: http://www.opennet.me/opennews/art.shtml?num=46363


Содержание

Сообщения в этом обсуждении
"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 09:46 
Полезная инфа по CMake:

https://github.com/toeb/moderncmake

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 11:02 
>https://github.com/toeb/moderncmake/blob/master/sample03/CMa...
>https://github.com/toeb/moderncmake/blob/master/sample03/ext...

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 11:19 
https://github.com/toeb/moderncmake/raw/master/Modern%2...

"Релиз системы сборки CMake 3.8"
Отправлено Andrey Mitrofanov , 12-Апр-17 11:42 
> https://github.com/toeb/moderncmake/raw/master/Modern%2...

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 10:38 
> "Compile Features" теперь учитывает особенности стандарта C++ 17, но набор мета-флагов "cxx_std_17" для него пока остаётся пустым;

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 11:44 
> Какое дело системе сборки до специфичных флагов компилятора?

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 12:03 
>

Если не дошло, то разъясню: специфичные флаги компилятору --- прерогатива автора. И должны указываться автором. Для передачи флагов CMAKE_C_FLAGS вполне достаточно. Не дело сборочной системы совать [специфичные] флаги по своему усмотрению, а именно эту попытку я и подозреваю.


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 12:25 
Это так, если вы хотите затачивать ваши сценарии подо все компиляторы на свете. А кто-то просто хочет сказать "включить C++14", а система сборки должна сама понять, что нужно подсунуть конкретному компилятору, чтобы выполнить это требование.

"Релиз системы сборки CMake 3.8"
Отправлено Andrey Mitrofanov , 12-Апр-17 13:12 
> Это так, если вы хотите затачивать ваши сценарии подо все компиляторы на
> должна сама понять, что нужно подсунуть конкретному компилятору, чтобы выполнить это

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


"Релиз системы сборки CMake 3.8"
Отправлено BlackRaven86 , 12-Апр-17 13:21 
Кто говорил?
Когда-то был нужен, сейчас его заменил CMake.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 13:44 
> Когда-то был нужен, сейчас его заменил CMake.

Это точно ;) --- cmake реализует идеи аналогичные autotools и порождает проблемы, аналогичные проблемам autotools.

Он пока не добрался до уровня крапа вроде libtool; и авторы, использующие CMake нечасто тащат такое чудесное чудо как glib. Собственно, пока это и уменьшает проблемность.


"Релиз системы сборки CMake 3.8"
Отправлено ваноним , 12-Апр-17 14:16 
да ваще, жуть! а месье знает что-нибудь лучше? или может сам сделал что-нибудь лучше?

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 14:21 
> да ваще, жуть! а месье знает что-нибудь лучше? или может сам сделал что-нибудь лучше?

Да.


"Релиз системы сборки CMake 3.8"
Отправлено BlackRaven86 , 12-Апр-17 15:08 
Примеры в студию.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 18:32 
> Примеры в студию.

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


"Релиз системы сборки CMake 3.8"
Отправлено BlackRaven86 , 12-Апр-17 18:47 
А это и не важно. Вы утверждаете, что знаете или сделали лучше. Предоставьте доказательства.

"Релиз системы сборки CMake 3.8"
Отправлено ... , 13-Апр-17 12:16 
Meson

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 13-Апр-17 14:02 
Спасибо за ссылку, но здесь я сильно расхожусь с авторами meson уже на уровне целеполагания.

"Релиз системы сборки CMake 3.8"
Отправлено 35е63ку , 14-Апр-17 00:51 
>>> Meson is also available in the Python Package Index and can be installed with pip3 install meson.

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 14-Апр-17 16:13 

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

Странно, я собирал готовый пакет на тридцатник.
Стольник - это если включить тесты, ИДЕ, доки. Я понимаю, что "С:\" по ссылке уже намекает, но это ж из какого места должны расти руки, чтобы раздуть все это до 780МБ?


"Релиз системы сборки CMake 3.8"
Отправлено 35е63ку , 20-Апр-17 02:55 
>> На помойку ибо не взлетит. Кросплатформленная система сборки не должна зависеть от
>> этого http://i.imgur.com/W5Nx6qg.png
> Странно, я собирал готовый пакет на тридцатник.
> Стольник - это если включить тесты, ИДЕ, доки. Я понимаю, что "С:\"
> по ссылке уже намекает, но это ж из какого места должны
> расти руки, чтобы раздуть все это до 780МБ?

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


"Релиз системы сборки CMake 3.8"
Отправлено ваноним , 16-Апр-17 21:29 
Поставьте себе уже человеческую ОСь.
ЗЫ
* 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

"Релиз системы сборки CMake 3.8"
Отправлено 35е63ку , 20-Апр-17 02:55 
>[оверквотинг удален]
>          Total files :
> 5133
>          Total size  
> : 80.20 MiB
>  * dev-lang/python-3.6.1
>          Total files :
> 6907
>          Total size  
> : 101.17 MiB
>Cross-platform


"Релиз системы сборки CMake 3.8"
Отправлено ваноним , 16-Апр-17 21:30 
чем эта поделка принципиально лучше cmake?

"Релиз системы сборки CMake 3.8"
Отправлено adolfus , 27-Апр-17 15:00 
И она автоматом подключит для винд гoвнoпpиложeние "K" про "безопасные строки".

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 13:03 
> специфичные флаги компилятору --- прерогатива автора

Как расшифровывается буковка C в слове cmake, ты, видимо, не в курсе?
Автор не знает заранее, каким компилятором будет собираться код, и какие специфичные флаги этот компилятор понимает. Подставить эти флаги — дело как раз системы сборки. И делает она это, разумеется, не по своему усмотрению, а на основании значения переменной CMAKE_CXX_STANDARD и/или CMAKE_CXX_STANDARD_REQUIRED, которую устанавливает как раз таки автор.


"Релиз системы сборки CMake 3.8"
Отправлено BlackRaven86 , 12-Апр-17 12:57 
Как включить в кроссплатформенном проекте поддержку C++14, например?

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 13:12 
> CMake примечателен предоставлением простого языка сценариев

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


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 13:18 
У autotools-то всё зашибок с синтаксисом, ага. Чудесные макросы, чудесный выхлоп Makefile, - всё замечательно!

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 15:06 
на БАСИК похож же)

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 16:17 
M4 чувак!!! Застрелиться.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 17:55 
Анон который не смог в M4 - не анон.

1337


"Релиз системы сборки CMake 3.8"
Отправлено ваноним , 21-Апр-17 20:40 
Не анон тот, кто смог М4 и... ему понравилось.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 16:27 
Hint: прежде чем выбирать какой-то инструмент, ознакомься с _этим_ инструментом, а не с конкурирующим.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 18:35 
лучше посмотри на Ninja

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 13-Апр-17 04:19 
лучше посмотри на цмейк, паря. https://cmake.org/cmake/help/latest/manual/cmake-generators....

The cmake(1) command-line tool --help output lists available generators on the current platform.
...
Ninja
...


"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 18:44 
Кто-нибудь знает область применения $‹IF:cond,true-value,false-value ›? Не совсем понятно, для чего это сделано.

"Релиз системы сборки CMake 3.8"
Отправлено Аноним , 12-Апр-17 21:35 
Вероятно, для передачи значений сторонним системам сборки и прочим программам, в которых булевый тип имеет представление значений не такое как cmake

True/False
1/0
Enable/Disable