| CMake 3.5 Release Notes | |
| *********************** | |
| .. only:: html | |
| .. contents:: | |
| Changes made since CMake 3.4 include the following. | |
| New Features | |
| ============ | |
| GUI | |
| --- | |
| * The :manual:`cmake-gui(1)` gained options to control warnings about | |
| deprecated functionality. | |
| * The :manual:`cmake-gui(1)` learned an option to set the toolset | |
| to be used with VS IDE and Xcode generators, much like the | |
| existing ``-T`` option to :manual:`cmake(1)`. | |
| * The :manual:`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 the ``Tools`` menu. | |
| Command-Line | |
| ------------ | |
| * The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(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=dev`` and ``-Wno-error=dev`` :manual:`cmake(1)` options. | |
| * The :manual:`cmake(1)` ``-E`` command-line tools ``copy``, | |
| ``copy_if_different``, ``copy_directory``, and ``make_directory`` | |
| learned to support multiple input files or directories. | |
| Commands | |
| -------- | |
| * The :command:`cmake_parse_arguments` command is now implemented natively. | |
| The :module:`CMakeParseArguments` module remains as an empty placeholder | |
| for compatibility. | |
| * The :command:`install(DIRECTORY)` command learned to support | |
| :manual:`generator expressions <cmake-generator-expressions(7)>` | |
| in the list of directories. | |
| Variables | |
| --------- | |
| * The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the | |
| ``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)` | |
| options. | |
| * The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the | |
| ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options. | |
| Properties | |
| ---------- | |
| * The :prop_tgt:`VS_GLOBAL_<variable>` target property is now implemented | |
| for VS 2010 and above. Previously it worked only in VS 2008 and below. | |
| Modules | |
| ------- | |
| * The :module:`ExternalProject` module learned a new ``GIT_REMOTE_NAME`` | |
| option to control the ``git clone --origin`` value. | |
| * The :module:`FindBoost` module now provides imported targets | |
| such as ``Boost::boost`` and ``Boost::filesystem``. | |
| * The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a | |
| new ``DEFINES_FILE`` option to specify a custom output header | |
| to be generated. | |
| * The :module:`FindGTest` module now provides imported targets. | |
| * The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is | |
| enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported | |
| targets instead of the paths to the libraries. Moreover it now sets | |
| a new ``GTK2_TARGETS`` variable containing all the targets imported. | |
| * The :module:`FindOpenMP` module learned to support Clang. | |
| * The :module:`FindOpenSSL` module gained a new | |
| ``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using | |
| the MSVC static runtime. | |
| * The :module:`FindPNG` module now provides imported targets. | |
| * The :module:`FindTIFF` module now provides imported targets. | |
| * A :module:`FindXalanC` module was introduced to find the | |
| Apache Xalan-C++ XSL transform processing library. | |
| * The :module:`FindXercesC` module 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 | |
| :ref:`Cross Compiling for the Cray Linux Environment <Cray Cross-Compile>` | |
| for usage details. | |
| * The :manual:`Compile Features <cmake-compile-features(7)>` functionality | |
| 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 :prop_tgt:`IOS_INSTALL_COMBINED` | |
| target property. | |
| CPack | |
| ----- | |
| * The :module:`CPackDMG` module learned new variable to specify AppleScript | |
| file run to customize appearance of ``DragNDrop`` installer folder, | |
| including background image setting using supplied PNG or multi-resolution | |
| TIFF file. See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and | |
| :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. | |
| * The :module:`CPackDeb` module learned to set the optional config | |
| file ``Source`` field using a monolithic or per-component variable. | |
| See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. | |
| * The :module:`CPackDeb` module learned to set Package, Section | |
| and Priority control fields per-component. | |
| See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and | |
| :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`. | |
| * The :module:`CPack DragNDrop generator <CPackDMG>` learned to add | |
| multi-lingual SLAs to a DMG which is presented to the user when they try to | |
| mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and | |
| :variable:`CPACK_DMG_SLA_DIR` variables for details. | |
| * The :module:`CPackNSIS` module learned new variables to add bitmaps to the | |
| installer. See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP` | |
| and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables. | |
| * The :module:`CPackRPM` module learned to set Name and Group | |
| control fields per-component. | |
| See :variable:`CPACK_RPM_<component>_PACKAGE_NAME` | |
| and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`. | |
| Other | |
| ----- | |
| * Warnings about deprecated functionality are now enabled by default. | |
| They may be suppressed with ``-Wno-deprecated`` or by setting the | |
| :variable:`CMAKE_WARN_DEPRECATED` variable to false. | |
| Deprecated and Removed Features | |
| =============================== | |
| * The :manual:`cmake(1)` ``-E time`` command 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 :generator:`Xcode` generator 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 :generator:`Visual Studio 14 2015` generator learned to map the | |
| ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property. | |
| * The :module:`FindGTK2` module now configures the ``GTK2::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.org`` is now a | |
| ``.msi`` package instead of an installer executable. One may need | |
| to manually uninstall CMake versions lower than 3.5 before installing | |
| the new package. |