[CMake] [ANNOUNCE] CMake 3.7.0-rc3 now ready for testing!
    Robert Maynard 
    robert.maynard at kitware.com
       
    Fri Nov  4 15:37:33 EDT 2016
    
    
  
I am proud to announce the third CMake 3.7 release candidate.
  https://cmake.org/download/
Documentation is available at:
  https://cmake.org/cmake/help/v3.7
Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.7/release/3.7.html
Some of the more significant changes in CMake 3.7 are:
* CMake now supports Cross Compiling for Android with simple
  toolchain files.
* The "Ninja" generator learned to conditionally support Fortran
  when using a "ninja" tool that has the necessary features. See
  generator documentation for details.
* The "if()" command gained new boolean comparison operations
  "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL",
  "VERSION_LESS_EQUAL", and "VERSION_GREATER_EQUAL".
* The "try_compile()" command source file signature now honors
  configuration-specific flags (e.g. "CMAKE_<LANG>_FLAGS_DEBUG") in
  the generated test project.  Previously only the default such flags
  for the current toolchain were used.  See policy "CMP0066".
* "Toolchain files" may now set "CMAKE_EXE_LINKER_FLAGS_INIT",
  "CMAKE_SHARED_LINKER_FLAGS_INIT", and
  "CMAKE_MODULE_LINKER_FLAGS_INIT" variables to initialize the
  "CMAKE_EXE_LINKER_FLAGS", "CMAKE_SHARED_LINKER_FLAGS", and
  "CMAKE_MODULE_LINKER_FLAGS" cache entries the first time a language
  is enabled in a build tree.
* CTest now supports test fixtures through the new "FIXTURES_SETUP",
  "FIXTURES_CLEANUP" and "FIXTURES_REQUIRED" test properties. When
  using regular expressions or "--rerun-failed" to limit the tests to
  be run, a fixture's setup and cleanup tests will automatically be
  added to the execution set if any test requires that fixture.
* We no longer provide Linux i386 binaries for download from
  "cmake.org" for new versions of CMake.
* Vim support files "cmake-indent.vim", "cmake-syntax.vim", and
  "cmake-help.vim" have been removed in favor of the files now
  provided from the vim-cmake-syntax project.
* Support for building CMake itself with some compilers was dropped:
  * Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above
  * MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64
  CMake still supports generating build systems for other projects
  using these compilers.
CMake 3.7 Release Notes
***********************
Changes made since CMake 3.6 include the following.
New Features
============
Platforms
---------
* CMake now supports Cross Compiling for Android with simple
  toolchain files.
* The Clang compiler is now supported on AIX.
Generators
----------
* The "Ninja" generator learned to conditionally support Fortran
  when using a "ninja" tool that has the necessary features. See
  generator documentation for details.
* The "Ninja" generator learned to produce phony targets of the form
  "sub/dir/{test,install,package}" to drive the build of a
  subdirectory installation, test or packaging target. This is
  equivalent to "cd sub/dir; make {test,install,package}" with
  Makefile Generators.
* The "Visual Studio 15" generator was added.  This is experimental
  and based on Preview 4 because this version of VS has not been
  released.
* Visual Studio Generators for VS 2010 and above learned to place
  ".natvis" source files into VS project files properly.
* The "Xcode" generator's rudimentary Swift language support learned
  to honor a new "CMAKE_Swift_LANGUAGE_VERSION" variable to tell Xcode
  what version of Swift is used by the source.
* The "CodeLite" generator gained a new "CMAKE_CODELITE_USE_TARGETS"
  option to change project creation from projects to targets.
Commands
--------
* The "add_custom_command()" command gained a new "DEPFILE" option
  that works with the "Ninja" generator to provide implicit dependency
  information to the build tool.
* The "cmake_parse_arguments()" command gained a new "PARSE_ARGV"
  mode to read arguments directly from "ARGC" and "ARGV#" variables
  inside a "function()" body.
* The "export()" command gained an "ANDROID_MK" option to generate
  "Android.mk" files referencing CMake-built libraries as prebuilts
  for the Android NDK build system.
* The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained
  "HTTPHEADER <HTTP-header>" and "USERPWD <username>:<password>"
  options.
* The "find_library()" and "find_package()" commands learned to
  search in "lib32/" directories when the build targets a 32-bit
  architecture.  See the "FIND_LIBRARY_USE_LIB32_PATHS" global
  property.
* The "find_package()" command gained the possibility of sorting
  compatible libraries by "NAME" or by "NATURAL" sorting by setting
  the two new variables "CMAKE_FIND_PACKAGE_SORT_ORDER" and
  "CMAKE_FIND_PACKAGE_SORT_DIRECTION".
* The "if()" command gained new boolean comparison operations
  "LESS_EQUAL", "GREATER_EQUAL", "STRLESS_EQUAL", "STRGREATER_EQUAL",
  "VERSION_LESS_EQUAL", and "VERSION_GREATER_EQUAL".
* The "install()" command gained an "EXPORT_ANDROID_MK" subcommand
  to install "Android.mk" files referencing installed libraries as
  prebuilts for the Android NDK build system.
* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands gained
  support for the "%a" and "%b" placeholders. These are the
  abbreviated weekday and month names.
* The "try_compile()" command source file signature now honors
  configuration-specific flags (e.g. "CMAKE_<LANG>_FLAGS_DEBUG") in
  the generated test project.  Previously only the default such flags
  for the current toolchain were used.  See policy "CMP0066".
Variables
---------
* Variable "CMAKE_FIND_PACKAGE_SORT_ORDER" was added to control the
  sorting mode of the "find_package()" command.
* Variable "CMAKE_FIND_PACKAGE_SORT_DIRECTION" was added to control
  the sorting direction the "find_package()" command.
* "Toolchain files" may now set a "CMAKE_<LANG>_FLAGS_INIT" variable
  to initialize the "CMAKE_<LANG>_FLAGS" cache entry the first time a
  language is enabled in a build tree.
* "Toolchain files" may now set "CMAKE_EXE_LINKER_FLAGS_INIT",
  "CMAKE_SHARED_LINKER_FLAGS_INIT", and
  "CMAKE_MODULE_LINKER_FLAGS_INIT" variables to initialize the
  "CMAKE_EXE_LINKER_FLAGS", "CMAKE_SHARED_LINKER_FLAGS", and
  "CMAKE_MODULE_LINKER_FLAGS" cache entries the first time a language
  is enabled in a build tree.
Properties
----------
* On Apple platforms the "BUNDLE_EXTENSION" target property now also
  applies to Frameworks and App Bundles.
* A "BINARY_DIR" directory property was added to get the absolute
  path to the binary directory corresponding to the source directory
  on which the property is read.
* A "BUILDSYSTEM_TARGETS" directory property was added to get the
  list of logical buildsystem target names added by the project in a
  directory.
* A "LINK_WHAT_YOU_USE" target property and supporting
  "CMAKE_LINK_WHAT_YOU_USE" variable were introduced to detect (on
  UNIX) shared libraries that are linked but not needed by running
  "ldd -r -u".
* A "SOURCE_DIR" directory property was added to get the absolute
  path to the source directory associated with a directory.
* A "SUBDIRECTORIES" directory property was added to get the list of
  subdirectories added by a project in a directory.
* A "VS_SDK_REFERENCES" target property was added to tell Visual
  Studio Generators to reference the named SDKs.
* A "VS_TOOL_OVERRIDE" source file property was created to tell
  Visual Studio Generators what tool to use for a source file.
* The "WINDOWS_EXPORT_ALL_SYMBOLS" target property now applies to
  executable targets with the "ENABLE_EXPORTS" property set.
* A "XCODE_FILE_ATTRIBUTES" source file property was added to tell
  the "Xcode" generator to generate custom content in the Xcode
  project attributes for the file.
Modules
-------
* An "AndroidTestUtilities" module was added to manage transfer of
  test data to an Android device.
* The "CheckFortranSourceCompiles" module macro
  "CHECK_Fortran_SOURCE_COMPILES" gained a "SRC_EXT" option to specify
  a custom test Fortran source file extension.
* The "ExternalProject" module gained "HTTP_USERNAME" and
  "HTTP_PASSWORD" options to set http download credentials.
* The "ExternalProject" module gained a "HTTP_HEADER" option to add
  http download headers.
* The "FindBISON" module "BISON_TARGET" macro learned a new
  "REPORT_FILE" option to specify the bison "--report-file=" option.
* The "FindBZip2" module now provides imported targets.
* A "FindICU" module was introduced to find the International
  Components for Unicode (ICU) libraries and programs.
* The "FindMatlab" module learned to find the SIMULINK and MAT components.
* The "FindMatlab" module "matlab_add_mex()" command learned to add
  executables and modules.
* The "FindMatlab" module "matlab_add_unit_test()" command learned
  to support inline Matlab test code.
* The "FindOpenCL" module now provides imported targets.
* The "FindOpenMP" module learned to detect the OpenMP version
  (specification date) from the compiler.
* A "FindVulkan" module was added.
* The "GenerateExportHeader" module learned a new
  "CUSTOM_CONTENT_FROM_VARIABLE" option to specify a variable
  containing custom content for inclusion in the generated header.
* The "GNUInstallDirs" module gained a new
  "GNUInstallDirs_get_absolute_install_dir()" command.
* The "UseJava" module gained APIs to "export" jar targets for use
  by external CMake projects.  See the "install_jar_exports" and
  "export_jars" functions.
CTest
-----
* CTest now supports test fixtures through the new "FIXTURES_SETUP",
  "FIXTURES_CLEANUP" and "FIXTURES_REQUIRED" test properties. When
  using regular expressions or "--rerun-failed" to limit the tests to
  be run, a fixture's setup and cleanup tests will automatically be
  added to the execution set if any test requires that fixture.
* The "ctest_configure()", "ctest_build()", "ctest_test()",
  "ctest_coverage()", and "ctest_upload()" commands gained a new
  "CAPTURE_CMAKE_ERROR" option to capture any errors that occur as the
  commands run into a variable and avoid affecting the return code of
  the "ctest(1)" process.
CPack
-----
* CPack gained a "productbuild" generator on OS X, configured by the
  "CPackProductBuild" module.
* CPack gained a new "CPACK_PACKAGE_CHECKSUM" variable to enable
  generation of a checksum file for each package file.
* The "CPackDeb" module learned to support long file names when
  archive format is set to GNU tar. See "CPACK_DEBIAN_ARCHIVE_TYPE"
* The "CPackIFW" module gained a new
  "cpack_ifw_add_package_resources()" command to include additional
  resources in the installer binary.
* The "CPackIFW" module "cpack_ifw_configure_component()" and
  "cpack_ifw_configure_component_group()" commands gained a new
  "USER_INTERFACES" option to add a list of additonal pages to the IFW
  installer.
* The "CPackRPM" module learned to generate debuginfo packages on
  demand. See "CPACK_RPM_DEBUGINFO_PACKAGE" and its per component
  version.
* The "CPackRPM" module learned to generate source rpm (SRPM)
  packages on demand. See "CPACK_RPM_PACKAGE_SOURCES",
  "CPACK_RPM_SOURCE_PKG_BUILD_PARAMS" and
  "CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX".
* The CPack NSIS generator now supports
  "CPACK_NSIS_<compName>_INSTALL_DIRECTORY". This can be used to set
  component specific installation directories.
* The CPack WIX generator now supports
  "CPACK_WIX_SKIP_PROGRAM_FOLDER" to allow specification of a custom
  absolute installation prefix outside of the ProgramFiles folders.
* The CPack WIX generator now supports
  "CPACK_COMPONENT_<compName>_DISABLED". This can be used to deselect
  a component from being installed by default.
* The CPack WIX generator now supports "CPACK_WIX_PATCH_FILE"
  fragments for Feature elements.
* The CPack WIX generator now supports
  "CPACK_WIX_ROOT_FEATURE_TITLE" and
  "CPACK_WIX_ROOT_FEATURE_DESCRIPTION" to allow the specification of a
  custom title and description for the root feature element.
Other
-----
* "cmake(1)" gained a "-E capabilities" option to provide a machine-
  readable (JSON) description of the capabilities of the cmake tool
  (available generators, etc.).
* A new "cmake-server(7)" mode was added to provide semantic
  information about a CMake-generated buildsystem to clients through a
  JSON protocol.  Currently all protocols are experimental and subject
  to change.
* The "cmake(1)" command learned a "--trace-source=<file>" option.
* "ccmake(1)" learned to support vim-like navigation bindings.
* "cmake-gui(1)" gained a button to open the generated project file
  for Visual Studio Generators and the "Xcode" generator.
Deprecated and Removed Features
===============================
* We no longer provide Linux i386 binaries for download from
  "cmake.org" for new versions of CMake.
* Vim support files "cmake-indent.vim", "cmake-syntax.vim", and
  "cmake-help.vim" have been removed in favor of the files now
  provided from the vim-cmake-syntax project.
* Support for building CMake itself with some compilers was dropped:
  * Visual Studio 7.1 and 2005 -- superseded by VS 2008 and above
  * MinGW.org mingw32 -- superseded by MSYS2 mingw32 and mingw64
  CMake still supports generating build systems for other projects
  using these compilers.
Other Changes
=============
* The Fortran dependency scanner learned to support the syntax of
  Fortran Submodules.
* Vim support files "indent/cmake.vim" and "syntax/cmake.vim" from
  the vim-cmake-syntax project are now distributed with CMake.
----------------------------------------------------------------------------
Changes made since CMake 3.7.0-rc2:
Alex Turbov (3):
      CPackDeb: fix copy-n-paste typos in documentation
      CPackDeb: Fix incorrect variable name in documentation
      CPackRPM: Fix incorrect variable name in documentation
Alexis Murzeau (1):
      Ninja: Use binary dir for `$subdir/all` targets
Brad King (9):
      Android: Fix support for armeabi with c++_static
      Android: Add missing link flags for device executables
      Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically
      Android: Link position-independent executables with proper flags
      Intel: Fix compiler extension flags on Windows
      cmake-server: Change message wrapper to avoid ambiguity with content
      Features: Record features for Intel C++ 17 on UNIX
      FindHDF5: Restore pre-3.6 behavior of finding only C by default
      CMake 3.7.0-rc3
Francesco Romano (1):
      FindMatlab: Add support for Matlab 2016b (9.1)
Gregor Jasny (2):
      Revert "Xcode: Convert maybe unversioned OSX sysroot into
      versioned SDK path"
      Darwin: Remove deployment target version check
Konstantin Podsvirov (1):
      CPackIFW: Update search to find QtIFW distributed with QtSDK
Marcus D. Hanwell (1):
      Help: Update example Qt 5 find_package call to use COMPONENTS
Matthew Woehlke (1):
      FindMatlab: Fix typo in matlab_add_unit_test implementation
Thiago M. de C. Marques (1):
      Help: Update example Qt 5 find_package call to add missing component
Tobias Hunger (3):
      Help: Fix cmake-server documentation
      cmake-server: Better error reporting during handshake
      server-mode: Handle generator toolset and platform in handshake
    
    
More information about the CMake
mailing list