CMake 3.5 Release Notes¶
Contents
Changes made since CMake 3.4 include the following.
New Features¶
GUI¶
- The cmake-gui(1)gained options to control warnings about deprecated functionality.
- The cmake-gui(1)learned an option to set the toolset to be used with VS IDE and Xcode generators, much like the existing-Toption tocmake(1).
- The cmake-gui(1)gained a Regular Expression Explorer which may be used to create and evaluate regular expressions in real-time. The explorer window is available via theToolsmenu.
Command-Line¶
- The -Wdevand-Wno-devcmake(1)options now also enable and suppress the deprecated warnings output by default.
- The suppression of developer warnings as errors can now be controlled with
the new -Werror=devand-Wno-error=devcmake(1)options.
- The cmake(1)-Ecommand-line toolscopy,copy_if_different,copy_directory, andmake_directorylearned to support multiple input files or directories.
Commands¶
- The cmake_parse_arguments()command is now implemented natively. TheCMakeParseArgumentsmodule remains as an empty placeholder for compatibility.
- The install(DIRECTORY)command learned to supportgenerator expressionsin the list of directories.
Variables¶
- The CMAKE_ERROR_DEPRECATEDvariable can now be set using the-Werror=deprecatedand-Wno-error=deprecatedcmake(1)options.
- The CMAKE_WARN_DEPRECATEDvariable can now be set using the-Wdeprecatedand-Wno-deprecatedcmake(1)options.
Properties¶
- The VS_GLOBAL_<variable>target property is now implemented for VS 2010 and above. Previously it worked only in VS 2008 and below.
Modules¶
- The ExternalProjectmodule learned a newGIT_REMOTE_NAMEoption to control thegit clone --originvalue.
- The FindBoostmodule now provides imported targets such asBoost::boostandBoost::filesystem.
- The FindFLEXmoduleFLEX_TARGETmacro learned a newDEFINES_FILEoption to specify a custom output header to be generated.
- The FindGTestmodule now provides imported targets.
- The FindGTK2module, whenGTK2_USE_IMPORTED_TARGETSis enabled, now setsGTK2_LIBRARIESto contain the list of imported targets instead of the paths to the libraries. Moreover it now sets a newGTK2_TARGETSvariable containing all the targets imported.
- The FindOpenMPmodule learned to support Clang.
- The FindOpenSSLmodule gained a newOPENSSL_MSVC_STATIC_RToption to search for libraries using the MSVC static runtime.
- The FindPNGmodule now provides imported targets.
- The FindTIFFmodule now provides imported targets.
- A FindXalanCmodule was introduced to find the Apache Xalan-C++ XSL transform processing library.
- The FindXercesCmodule now provides imported targets.
Platforms¶
- Support was added for the ARM Compiler (arm.com) with compiler id ARMCC.
- A new platform file for cross-compiling in the Cray Linux Environment to target compute nodes was added. See Cross Compiling for the Cray Linux Environment for usage details.
- The Compile Featuresfunctionality is now aware of features supported by Clang compilers on Windows (MinGW).
- When building for embedded Apple platforms like iOS CMake learned to build and
install combined targets which contain both a device and a simulator build.
This behavior can be enabled by setting the IOS_INSTALL_COMBINEDtarget property.
CPack¶
- The CPack DragNDrop Generatorlearned new variable to specify AppleScript file run to customize appearance ofDragNDropinstaller folder, including background image setting using supplied PNG or multi-resolution TIFF file. See theCPACK_DMG_DS_STORE_SETUP_SCRIPTandCPACK_DMG_BACKGROUND_IMAGEvariables.
- The CPack DEB Generatorlearned to set the optional config fileSourcefield using a monolithic or per-component variable. SeeCPACK_DEBIAN_PACKAGE_SOURCE.
- The CPack DEB Generatorlearned to set Package, Section and Priority control fields per-component. See variablesCPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTIONandCPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY.
- The CPack DragNDrop Generatorlearned to add multi-lingual SLAs to a DMG which is presented to the user when they try to mount the DMG. See theCPACK_DMG_SLA_LANGUAGESandCPACK_DMG_SLA_DIRvariables for details.
- The CPack NSIS Generatorlearned new variables to add bitmaps to the installer. See theCPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAPandCPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAPvariables.
- The CPack RPM Generatorlearned to set Name and Group control fields per-component. SeeCPACK_RPM_<component>_PACKAGE_NAMEandCPACK_RPM_<component>_PACKAGE_GROUP.
Other¶
- Warnings about deprecated functionality are now enabled by default.
They may be suppressed with -Wno-deprecatedor by setting theCMAKE_WARN_DEPRECATEDvariable to false.
Deprecated and Removed Features¶
- The cmake(1)-E timecommand now properly passes arguments with spaces or special characters through to the child process. This may break scripts that worked around the bug with their own extra quoting or escaping.
- The Xcodegenerator was fixed to escape backslashes in strings consistently with other generators. Projects that previously worked around the inconsistecy with an extra level of backslashes conditioned on the Xcode generator must be updated to remove the workaround for CMake 3.5 and greater.
Other Changes¶
- The Visual Studio 14 2015generator learned to map the/debug:fastlinklinker flag to the.vcxprojfile property.
- The FindGTK2module now configures theGTK2::sigc++imported target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher.
- The precompiled Windows binary provided on cmake.orgis now a.msipackage instead of an installer executable. One may need to manually uninstall CMake versions lower than 3.5 before installing the new package.
