CMake 3.5.0-rc3 is now ready!

February 18, 2016

I am proud to announce the third CMake 3.5 release candidate.

Sources and binaries are available at:
https://cmake.org/download/

Documentation is available at:
https://cmake.org/cmake/help/v3.5

Release notes appear below and are also published at
https://cmake.org/cmake/help/v3.5/release/3.5.html

Some of the more significant features of CMake 3.5 are:

  • 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.
  • The “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 “cmake(1)”.
  • Find modules for Boost, FLEX, GTest, GTK2, PNG, TIFF, and XercesC
    now provide imported targets.
  • The “FindOpenMP” module learned to support Clang.
  • 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 Features” functionality is now aware of features
    supported by Clang compilers on Windows (MinGW).
  • Support was added for the ARM Compiler (arm.com) with compiler id
    “ARMCC”.
  • 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_COMBINED” target property.
  • The “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 “CPACK_DMG_DS_STORE_SETUP_SCRIPT” and
    “CPACK_DMG_BACKGROUND_IMAGE” variables.

Deprecated and Removed Features:

  • The “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 ownextra quoting or escaping.
  • The “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.

 

CMake 3.5 Release Notes
***********************

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 "-T" option
  to "cmake(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 the "Tools" menu.


Command-Line
------------

* The "-Wdev" and "-Wno-dev" "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"
  "cmake(1)" options.

* The "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 "cmake_parse_arguments()" command is now implemented natively.
  The "CMakeParseArguments" module remains as an empty placeholder for
  compatibility.

* The "install(DIRECTORY)" command learned to support "generator
  expressions" in the list of directories.


Variables
---------

* The "CMAKE_ERROR_DEPRECATED" variable can now be set using the
  "-Werror=deprecated" and "-Wno-error=deprecated" "cmake(1)" options.

* The "CMAKE_WARN_DEPRECATED" variable can now be set using the
  "-Wdeprecated" and "-Wno-deprecated" "cmake(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 "ExternalProject" module learned a new "GIT_REMOTE_NAME"
  option to control the "git clone --origin" value.

* The "FindBoost" module now provides imported targets such as
  "Boost::boost" and "Boost::filesystem".

* The "FindFLEX" module "FLEX_TARGET" macro learned a new
  "DEFINES_FILE" option to specify a custom output header to be
  generated.

* The "FindGTest" module now provides imported targets.

* The "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 "FindOpenMP" module learned to support Clang.

* The "FindOpenSSL" module gained a new "OPENSSL_MSVC_STATIC_RT"
  option to search for libraries using the MSVC static runtime.

* The "FindPNG" module now provides imported targets.

* The "FindTIFF" module now provides imported targets.

* A "FindXalanC" module was introduced to find the Apache Xalan-C++
  XSL transform processing library.

* The "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 Cross Compiling
  for the Cray Linux Environment for usage details.

* The "Compile Features" 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
  "IOS_INSTALL_COMBINED" target property.


CPack
-----

* The "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 "CPACK_DMG_DS_STORE_SETUP_SCRIPT" and
  "CPACK_DMG_BACKGROUND_IMAGE" variables.

* The "CPackDeb" module learned to set the optional config file
  "Source" field using a monolithic or per-component variable. See
  "CPACK_DEBIAN_PACKAGE_SOURCE".

* The "CPackDeb" module learned to set Package, Section and Priority
  control fields per-component. See variables
  "CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION" and
  "CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY".

* The "CPack DragNDrop generator" learned to add multi-lingual SLAs
  to a DMG which is presented to the user when they try to mount the
  DMG. See the "CPACK_DMG_SLA_LANGUAGES" and "CPACK_DMG_SLA_DIR"
  variables for details.

* The "CPackNSIS" module learned new variables to add bitmaps to the
  installer.  See the "CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP" and
  "CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP" variables.

* The "CPackRPM" module learned to set Name and Group control fields
  per-component. See "CPACK_RPM_<component>_PACKAGE_NAME" and
  "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 "CMAKE_WARN_DEPRECATED" variable to false.


Deprecated and Removed Features
===============================

* The "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 "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 "Visual Studio 14 2015" generator learned to map the
  "/debug:fastlink" linker flag to the ".vcxproj" file property.

* The "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.

----------------------------------------------------------------------------
Changes made since CMake 3.5.0-rc2:

Brad King (7):
      Help: Add release note about Xcode escaping fix (#15969)
      cmake-gui: Fix cmState initialization when changing generators (#15959)
      CMakeForceCompiler: De-deprecate until more use cases have alternatives
      Help: Clarify install(TARGETS) INCLUDES DESTINATION option
      Fix export of STATIC library PRIVATE non-target dependencies
      FindCUDA: Fix regression under Visual Studio generators
      CMake 3.5.0-rc3

Dimitar Yordanov (1):
      cmake_parse_arguments: Restore ;-list argument flattening

Leave a Reply