The OpenNET Project / Index page

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



"Релиз системы сборки CMake 3.12"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз системы сборки CMake 3.12"  +/
Сообщение от opennews (??), 17-Июл-18, 22:28 
Доступен (https://blog.kitware.com/cmake-3-12-0-available-for-download/) релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.12 (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.12/release/3.12.html):


-   Команда target_link_libraries() теперь может использоваться для
библиотек объектных файлов (Object Libraries);

-  В команды file(GLOB) и file(GLOB_RECURSE) добавлен флаг CONFIGURE_DEPENDS, которые позволяет обрабатывать зависимости системы сборки в процессе перебора содержимого каталогов;

-   Средства для настройки параметров компилятора (Compile Features) теперь учитывают особенности стандарта C++ 20, но набор мета-флагов "cxx_std_20" пока остаётся пустым;

-  В генераторы для Visual Studio 2017 в CMAKE_GENERATOR_TOOLSET добавлена поддержка опции "version=14.##" для явного выбора версии инструментария;
-  В режим сборки  (cmake --build) добавлена опция "--parallel [jobs]"  ("-j [jobs]") для определения числа параллельно запускаемых сборочных процессов;

-  Добавлена команда add_compile_definitions() для указания конструкций препроцессора, применяемых для текущего уровня иерархии каталогов;

-  В команды cmake_minimum_required() и cmake_policy(VERSION) добавлена возможность указания диапазонов версий в форме "min...max";

-  В команде find_package() обеспечена поддержка поиска префикса, указанного в параметре или переменной окружения PackageName_ROOT;

-  Добавлены новые выражения генератора "$‹GENEX_EVAL:…›", "$‹TARGET_GENEX_EVAL:target,…›", "$‹TARGET_EXISTS:…›" и "$‹TARGET_NAME_IF_EXISTS:…›";


-  В модулях FindCURL, FindALSA, FindLibXml2 и FindJPEG обеспечена установка флагов импортирования (https://cmake.org/cmake/help/v3.12/prop_tgt/IMPORTED.html);

-  Добавлен модуль FindODBC для поиска библиотеки ODBC (Open Database
    Connectivity);
-  Добавлены модули FindPython, FindPython3 и FindPython2 для  определения наличия окружений для выполнения скриптов на языке Python.

URL: https://blog.kitware.com/cmake-3-12-0-available-for-download/
Новость: https://www.opennet.ru/opennews/art.shtml?num=48979

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (1), 17-Июл-18, 22:28 
FindPython3! Наконец, решится старая проблема с нахождением второго питона при поиске третьей версии из-за того, что другой подкаталог искал вторую версию...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Релиз системы сборки CMake 3.12"  –3 +/
Сообщение от gdsagdfhdfg (?), 18-Июл-18, 00:42 
В мире С/CPP во всем такая же жесть, как и в сборке?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Релиз системы сборки CMake 3.12"  +7 +/
Сообщение от pavard (ok), 18-Июл-18, 02:33 
этот мир не для сказочных принцесс. можешь не красоваться - не оценят.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Релиз системы сборки CMake 3.12"  +1 +/
Сообщение от Аноним (9), 18-Июл-18, 07:26 
Последний раз как я смотрел у С все хорошо с их Makefile-ами, это C++-шники как напридумывают усложнений а потом их ещё сложнее делают и чтобы компилировалось по часу.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

17. "Релиз системы сборки CMake 3.12"  +1 +/
Сообщение от Аноним (17), 18-Июл-18, 12:42 
> В мире С/CPP

Прочитал как "В мире СССР"

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

23. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (23), 18-Июл-18, 19:50 
Держи нас в курсе всех твоих случаев неверного восприятия тех или иных букв
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

6. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (6), 18-Июл-18, 02:35 
> В режим сборки (cmake --build) добавлена опция "--parallel [jobs]" ("-j [jobs]")

Джва года этого ждал. Заколебался выставлять переменную оружения MAKEFLAGS или как она там называется, для того, чтобы собираемые мейком сборки собирались параллельно

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (6), 18-Июл-18, 02:37 
Еще бы прикрутили что-нибудь типа -j auto, чтобы раскрывалось в значение ядер в процессоре, чтобы не приходилось это число рассчитывать внешними скриптами или хардкодить наобум
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Релиз системы сборки CMake 3.12"  +5 +/
Сообщение от Аноним (8), 18-Июл-18, 06:47 
-j `nproc`

не благодари

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Релиз системы сборки CMake 3.12"  –1 +/
Сообщение от др. Аноним (?), 18-Июл-18, 11:45 
> -j `nproc`
> не благодари

За что?


$ nproc
bash: nproc: command not found
$ gnproc
32

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

18. "Релиз системы сборки CMake 3.12"  –1 +/
Сообщение от анон (?), 18-Июл-18, 13:53 
ты перепутал с тильдой через шифт
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

19. "Релиз системы сборки CMake 3.12"  +/
Сообщение от др. Аноним (?), 18-Июл-18, 14:36 
> ты перепутал с тильдой через шифт

Нет.


Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

25. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Michael Shigorinemail (ok), 20-Июл-18, 01:47 
> -j `nproc`
> не благодари

За что благодарить, если вот так и начинает расползаться без нужды довольно-таки новодел, а потом сиди и патчи в любой ситуации на полшага в сторону?

Одни неосиляторы документации костылят свои виндосистемы сборки, другие потом ещё и их обкостыливают, потому что ни -j, ни тем более -l не удосужились сделать ещё вместе с открытием того, что сборки могут быть параллельными...

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Релиз системы сборки CMake 3.12"  –1 +/
Сообщение от Владимирemail (??), 18-Июл-18, 07:58 
Да вроде и до этого работало
cmake --build -- -j 8
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

21. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (21), 18-Июл-18, 18:20 
Где-то у меня с этим были проблемы. Вроде не получалось так использовать кроссплаьформеннон - под виндой msbuild ругался на непонятный параметр.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Релиз системы сборки CMake 3.12"  +/
Сообщение от gergreg (?), 18-Июл-18, 10:10 
sudo apt install ninja-build
cmake <path> -GNinja
ninja
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

20. "Релиз системы сборки CMake 3.12"  +1 +/
Сообщение от Владимирemail (??), 18-Июл-18, 15:26 
И что? человеку нужно по какой-то причине вызывать cmake фронтенд. Он и без ниндзи может точно так же вызывать make -j, разницы-то?
Допустим у человека скрипты, которые в зависимости от конфига собирают ninja/msbuild/xcodebuild. не будет он же в батниках if-ы делать под каждую систему? В каком-то случае cmake --build может быть удобен (другого кейса для этой херни я придумать не могу)
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

11. "Релиз системы сборки CMake 3.12"  +/
Сообщение от anonymous yet another (?), 18-Июл-18, 08:44 
> В команды cmake_minimum_required() и cmake_policy(VERSION) добавлена возможность указания диапазонов версий в форме "min...max";

Как должны быть упорядочены по возрастанию версии 1.2.3 и 2.0.1?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Релиз системы сборки CMake 3.12"  +/
Сообщение от trolleybusemail (?), 18-Июл-18, 11:10 
2 > 1. Все просто (будь там хоть 1.99.98)
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Релиз системы сборки CMake 3.12"  –1 +/
Сообщение от Аноним (15), 18-Июл-18, 12:28 
https://semver.org/
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

16. "Релиз системы сборки CMake 3.12"  +1 +/
Сообщение от yet another anonymous (?), 18-Июл-18, 12:41 
Ничего, что они тщательно обошли сравнение 1.2.3 ~ 2.0.1? Нотация semantic versioning образует слабо упорядоченное множество в котором отношение предшествования определено не для любой пары.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

24. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Аноним (24), 19-Июл-18, 20:32 
Наркоман штоли?

"Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: Major, minor, and patch versions are always compared numerically"

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

22. "Релиз системы сборки CMake 3.12"  +/
Сообщение от Клыкастый (ok), 18-Июл-18, 18:22 
> Добавлен модуль FindODBC для поиска библиотеки ODBC (Open Database Connectivity);

да блин неужели же...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


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