Представлен (http://www.cmake.org/pipermail/cmake/2014-December/059418.html) релиз кроссплатформенного открытого генератора сценариев сборки CMake 3.1.0 (http://www.cmake.org/), выступающего в качестве альтернативы Autotools и используемого в таких проектах, как KDE, LLVM/Clang, MySQL, MariaDB, ReactOS и Blender. Код CMake написан на языке C++ и распространяется под лицензией BSD.Из достоинств CMake можно отметить простой язык сценариев, средства расширения функциональности через модули, минимальное число зависимостей (нет привязки к M4, Perl или Python), поддержка кэширования, наличие средств для кросс-компиляции, поддержка генерации файлов сборки для широкого спектра систем сборки и компиляторов, наличие утилит ctest и cpack для определения сценариев тестирования и сборки пакетов, утилита cmake-gui для интерактивной настройки параметров сборки.
Основные улучшения (http://www.cmake.org/cmake/help/v3.1/release/3.1.0.html#new-...):
- Добавлены генераторы файлов сборки для Visual Studio 14 (2015). В генераторы для Visual Studio 11 (2012) и более новых версий добавлена поддержка платформы Windows Phone и магазина приложений Windows Store. В генераторы для Visual Studio 10 (2010) и более новых версий добавлена поддержка создания проектов для NVIDIA Nsight Tegra Visual Studio Edition;
- Добавлена команда "target_compile_features (http://www.cmake.org/cmake/help/v3.1/command/target_compile_...)", позволяющая заполнить свойство COMPILE_FEATURES для цели сборки по аналогии с другими сборочными переменными. Cmake пользуется данной информацией для того, чтобы убедиться в том, что используемый компилятор способен выполнить сборку цели, и добавить необходимые для сборки флаги для задействования определённых возможностей языка (например, "-std=gnu++11");
- Упрощён синтаксис переменных ссылок (Variable References (http://www.cmake.org/cmake/help/v3.1/manual/cmake-language.7...)) и Escape-последовательностей (http://www.cmake.org/cmake/help/v3.1/manual/cmake-language.7...), который позволил задействовать значительно более быструю их реализацию;
- Оператор "if" отныне автоматически не разыменовывает имена переменных внутри аргументов, заключенных в кавычки или скобки;
- В свойство цели "SOURCES" добавлена поддержка выражений генератора (http://www.cmake.org/cmake/help/v3.1/manual/cmake-generator-...(7)), которые могут использованы в командах "add_library" и
"add_executable";
- Добавлена возможность записи и дополнения свойства цели "SOURCES". Для отслеживания исходного источника может использоваться переменная "CMAKE_DEBUG_TARGET_PROPERTIES";
- В CPack добавлена поддержка lzma-архивов с помощью генераторов "7Z" и "TXZ";- В модуль ExternalProject добавлена поддержка архивов, сжатых методом lzma: ".7z", ".tar.xz" и ".txz";- В команду ExternalProject_Add из модуля ExternalProject добавлена поддержка опции BUILD_ALWAYS для инициирования сборки внешнего проекта при каждой сборке базового проекта;
- В команду ctest_coverage() добавлена поддержка файлов покрытия утилиты codecov от Intel;- В команду ctest_memcheck() добавлена поддержка "Sanitizer"-режимов: "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer" и "UndefinedBehaviorSanitizer".
URL: http://www.cmake.org/pipermail/cmake/2014-December/059418.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=41292