1CMake 3.5 Release Notes 2*********************** 3 4.. only:: html 5 6 .. contents:: 7 8Changes made since CMake 3.4 include the following. 9 10New Features 11============ 12 13GUI 14--- 15 16* The :manual:`cmake-gui(1)` gained options to control warnings about 17 deprecated functionality. 18 19* The :manual:`cmake-gui(1)` learned an option to set the toolset 20 to be used with VS IDE and Xcode generators, much like the 21 existing ``-T`` option to :manual:`cmake(1)`. 22 23* The :manual:`cmake-gui(1)` gained a Regular Expression Explorer which 24 may be used to create and evaluate regular expressions in real-time. 25 The explorer window is available via the ``Tools`` menu. 26 27Command-Line 28------------ 29 30* The ``-Wdev`` and ``-Wno-dev`` :manual:`cmake(1)` options now also enable 31 and suppress the deprecated warnings output by default. 32 33* The suppression of developer warnings as errors can now be controlled with 34 the new ``-Werror=dev`` and ``-Wno-error=dev`` :manual:`cmake(1)` options. 35 36* The :manual:`cmake(1)` ``-E`` command-line tools ``copy``, 37 ``copy_if_different``, ``copy_directory``, and ``make_directory`` 38 learned to support multiple input files or directories. 39 40Commands 41-------- 42 43* The :command:`cmake_parse_arguments` command is now implemented natively. 44 The :module:`CMakeParseArguments` module remains as an empty placeholder 45 for compatibility. 46 47* The :command:`install(DIRECTORY)` command learned to support 48 :manual:`generator expressions <cmake-generator-expressions(7)>` 49 in the list of directories. 50 51Variables 52--------- 53 54* The :variable:`CMAKE_ERROR_DEPRECATED` variable can now be set using the 55 ``-Werror=deprecated`` and ``-Wno-error=deprecated`` :manual:`cmake(1)` 56 options. 57 58* The :variable:`CMAKE_WARN_DEPRECATED` variable can now be set using the 59 ``-Wdeprecated`` and ``-Wno-deprecated`` :manual:`cmake(1)` options. 60 61Properties 62---------- 63 64* The :prop_tgt:`VS_GLOBAL_<variable>` target property is now implemented 65 for VS 2010 and above. Previously it worked only in VS 2008 and below. 66 67Modules 68------- 69 70* The :module:`ExternalProject` module learned a new ``GIT_REMOTE_NAME`` 71 option to control the ``git clone --origin`` value. 72 73* The :module:`FindBoost` module now provides imported targets 74 such as ``Boost::boost`` and ``Boost::filesystem``. 75 76* The :module:`FindFLEX` module ``FLEX_TARGET`` macro learned a 77 new ``DEFINES_FILE`` option to specify a custom output header 78 to be generated. 79 80* The :module:`FindGTest` module now provides imported targets. 81 82* The :module:`FindGTK2` module, when ``GTK2_USE_IMPORTED_TARGETS`` is 83 enabled, now sets ``GTK2_LIBRARIES`` to contain the list of imported 84 targets instead of the paths to the libraries. Moreover it now sets 85 a new ``GTK2_TARGETS`` variable containing all the targets imported. 86 87* The :module:`FindOpenMP` module learned to support Clang. 88 89* The :module:`FindOpenSSL` module gained a new 90 ``OPENSSL_MSVC_STATIC_RT`` option to search for libraries using 91 the MSVC static runtime. 92 93* The :module:`FindPNG` module now provides imported targets. 94 95* The :module:`FindTIFF` module now provides imported targets. 96 97* A :module:`FindXalanC` module was introduced to find the 98 Apache Xalan-C++ XSL transform processing library. 99 100* The :module:`FindXercesC` module now provides imported targets. 101 102Platforms 103--------- 104 105* Support was added for the ARM Compiler (arm.com) with compiler id ``ARMCC``. 106 107* A new platform file for cross-compiling in the Cray Linux Environment to 108 target compute nodes was added. See 109 :ref:`Cross Compiling for the Cray Linux Environment <Cray Cross-Compile>` 110 for usage details. 111 112* The :manual:`Compile Features <cmake-compile-features(7)>` functionality 113 is now aware of features supported by Clang compilers on Windows (MinGW). 114 115* When building for embedded Apple platforms like iOS CMake learned to build and 116 install combined targets which contain both a device and a simulator build. 117 This behavior can be enabled by setting the :prop_tgt:`IOS_INSTALL_COMBINED` 118 target property. 119 120CPack 121----- 122 123* The :cpack_gen:`CPack DragNDrop Generator` learned new variable to 124 specify AppleScript file run to customize appearance of ``DragNDrop`` 125 installer folder, including background image setting using supplied 126 PNG or multi-resolution TIFF file. 127 See the :variable:`CPACK_DMG_DS_STORE_SETUP_SCRIPT` and 128 :variable:`CPACK_DMG_BACKGROUND_IMAGE` variables. 129 130* The :cpack_gen:`CPack DEB Generator` learned to set the optional config 131 file ``Source`` field using a monolithic or per-component variable. 132 See :variable:`CPACK_DEBIAN_PACKAGE_SOURCE`. 133 134* The :cpack_gen:`CPack DEB Generator` learned to set Package, Section 135 and Priority control fields per-component. 136 See variables :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION` and 137 :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY`. 138 139* The :cpack_gen:`CPack DragNDrop Generator` learned to add 140 multi-lingual SLAs to a DMG which is presented to the user when they try to 141 mount the DMG. See the :variable:`CPACK_DMG_SLA_LANGUAGES` and 142 :variable:`CPACK_DMG_SLA_DIR` variables for details. 143 144* The :cpack_gen:`CPack NSIS Generator` learned new variables to 145 add bitmaps to the installer. 146 See the :variable:`CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP` 147 and :variable:`CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP` variables. 148 149* The :cpack_gen:`CPack RPM Generator` learned to set Name and Group 150 control fields per-component. 151 See :variable:`CPACK_RPM_<component>_PACKAGE_NAME` 152 and :variable:`CPACK_RPM_<component>_PACKAGE_GROUP`. 153 154Other 155----- 156 157* Warnings about deprecated functionality are now enabled by default. 158 They may be suppressed with ``-Wno-deprecated`` or by setting the 159 :variable:`CMAKE_WARN_DEPRECATED` variable to false. 160 161Deprecated and Removed Features 162=============================== 163 164* The :manual:`cmake(1)` ``-E time`` command now properly passes arguments 165 with spaces or special characters through to the child process. This 166 may break scripts that worked around the bug with their own extra 167 quoting or escaping. 168 169* The :generator:`Xcode` generator was fixed to escape backslashes in 170 strings consistently with other generators. Projects that previously 171 worked around the inconsistecy with an extra level of backslashes 172 conditioned on the Xcode generator must be updated to remove the 173 workaround for CMake 3.5 and greater. 174 175Other Changes 176============= 177 178* The :generator:`Visual Studio 14 2015` generator learned to map the 179 ``/debug:fastlink`` linker flag to the ``.vcxproj`` file property. 180 181* The :module:`FindGTK2` module now configures the ``GTK2::sigc++`` imported 182 target to enable c++11 on its dependents when using sigc++ 2.5.1 or higher. 183 184* The precompiled Windows binary provided on ``cmake.org`` is now a 185 ``.msi`` package instead of an installer executable. One may need 186 to manually uninstall CMake versions lower than 3.5 before installing 187 the new package. 188