[CMake] [ANNOUNCE] CMake 3.6.0-rc4 now ready for testing!

Hendrik Sattler post at hendrik-sattler.de
Wed Jun 29 17:05:38 EDT 2016



Am 29. Juni 2016 21:30:40 MESZ, schrieb Robert Maynard <robert.maynard at kitware.com>:
>I am proud to announce the fourth CMake 3.6 release candidate.
>
>Sources and binaries are available at:
>  https://cmake.org/download/
>
>Documentation is available at:
>  https://cmake.org/cmake/help/v3.6
>
>Release notes appear below and are also published at
>  https://cmake.org/cmake/help/v3.6/release/3.6.html
>
>Some of the more significant features of CMake 3.6 are:
>
>* The "Visual Studio 14 2015" generator learned to support the
>  Clang/C2 toolsets, e.g. with the "-T v140_clang_3_7" option. This
>  feature is experimental.
>
>* The "list()" command gained a "FILTER" sub-command to filter list
>  elements by regular expression.

This would also be very handy for generator expressions, similar to JOIN.

>* A "CMAKE_TRY_COMPILE_TARGET_TYPE" variable was added to optionally
>  tell the "try_compile()" command to build a static library instead
>  of an executable.  This is useful for cross-compiling toolchains
>  that cannot link binaries without custom flags or scripts.
>
>* A "<LANG>_CLANG_TIDY" target property and supporting
>  "CMAKE_<LANG>_CLANG_TIDY" variable were introduced to tell the
>  Makefile Generators and the "Ninja" generator to run "clang-tidy"
>  along with the compiler for "C" and "CXX" languages.
>
>* The "ExternalProject" module leared the "GIT_SHALLOW 1" option to
>  perform a shallow clone of a Git repository.
>
>* The "ExternalProject" module learned to initialize Git submodules
>  recursively and also to initialize new submodules on updates.  Use
>  the "GIT_SUBMODULES" option to restrict which submodules are
>  initalized and updated.
>
>* The "InstallRequiredSystemLibraries" module learned a new
>  "CMAKE_INSTALL_UCRT_LIBRARIES" option to enable app-local deployment
>  of the Windows Universal CRT libraries with Visual Studio 2015.
 
Maybe the help should note that this is only needed when targeting WindowsXP.

>* The "Compile Features" functionality is now aware of features
>  supported by Intel C++ compilers versions 12.1 through 16.0 on UNIX
>  platforms.
>
>Deprecated and Removed Features
>===============================
>
>* The "CMakeForceCompiler" module and its macros are now deprecated.
>  See module documentation for an explanation.
>
>* The "Visual Studio 7 .NET 2003" generator is now deprecated and
>  will be removed in a future version of CMake.
>
>* The "Visual Studio 7" generator (for VS .NET 2002) has been
>  removed. It had been deprecated since CMake 3.3.
>
>* The "Visual Studio 6" generator has been removed. It had been
>  deprecated since CMake 3.3.
>
>
>
>CMake 3.6 Release Notes
>***********************
>
>Changes made since CMake 3.5 include the following.
>
>
>New Features
>============
>
>
>Generators
>----------
>
>* The "Ninja" generator learned to produce phony targets of the form
>  "sub/dir/all" to drive the build of a subdirectory. This is
>  equivalent to "cd sub/dir; make all" with Makefile Generators.
>
>* The "Ninja" generator now includes system header files in build
>  dependencies to ensure correct re-builds when system packages are
>  updated.
>
>* The "Visual Studio 14 2015" generator learned to support the
>  Clang/C2 toolsets, e.g. with the "-T v140_clang_3_7" option. This
>  feature is experimental.
>
>
>Commands
>--------
>
>* The "add_custom_command()" and "add_custom_target()" commands
>  learned how to use the "CROSSCOMPILING_EMULATOR" executable target
>  property.
>
>* The "install()" command learned a new "EXCLUDE_FROM_ALL" option to
>  leave installation rules out of the default installation.
>
>* The "list()" command gained a "FILTER" sub-command to filter list
>  elements by regular expression.
>
>* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands gained
>  support for the "%s" placeholder.  This is the number of seconds
>  since the UNIX Epoch.
>
>
>Variables
>---------
>
>* A "CMAKE_DEPENDS_IN_PROJECT_ONLY" variable was introduced to tell
>  Makefile Generators to limit dependency scanning only to files in
>  the project source and build trees.
>
>* A new "CMAKE_HOST_SOLARIS" variable was introduced to indicate
>  when CMake is running on an Oracle Solaris host.
>
>* A "CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES" variable was added
>  for use by toolchain files to specify system include directories to
>  be appended to all compiler command lines.
>
>* The "CMAKE_<LANG>_STANDARD_LIBRARIES" variable is now documented.
>  It is intended for use by toolchain files to specify system
>  libraries to be added to all linker command lines.
>
>* A "CMAKE_NINJA_OUTPUT_PATH_PREFIX" variable was introduced to tell
>  the "Ninja" generator to configure the generated "build.ninja" file
>  for use as a "subninja".
>
>* A "CMAKE_TRY_COMPILE_PLATFORM_VARIABLES" variable was added for
>  use by toolchain files to specify platform-specific variables that
>  must be propagated by the "try_compile()" command into test
>  projects.

Can someone please add an example to the help. The use case for adding this variable is completely left in the dark.
E.g. I tried to make the initial try_compile() to respect my CMAKE_CXX_FLAGS_INIT variable that gets defined in my toolchain file... does nothing. So I really have to use CXXFLAGS environment variable which feels clumsy.
It's that really the only reliable way to define compiler arguments like -mcpu= for all compiler invocations?

>* A "CMAKE_TRY_COMPILE_TARGET_TYPE" variable was added to optionally
>  tell the "try_compile()" command to build a static library instead
>  of an executable.  This is useful for cross-compiling toolchains
>  that cannot link binaries without custom flags or scripts.
>
>
>Properties
>----------
>
>* A "DEPLOYMENT_REMOTE_DIRECTORY" target property was introduced to
>  tell the "Visual Studio 9 2008" and "Visual Studio 8 2005"
>  generators to generate the "remote directory" for WinCE project
>  deployment and debugger settings.
>
>* A "<LANG>_CLANG_TIDY" target property and supporting
>  "CMAKE_<LANG>_CLANG_TIDY" variable were introduced to tell the
>  Makefile Generators and the "Ninja" generator to run "clang-tidy"
>  along with the compiler for "C" and "CXX" languages.
>
>* A "TIMEOUT_AFTER_MATCH" test property was introduced to optionally
>  tell CTest to enforce a secondary timeout after matching certain
>  output from a test.
>
>* A "VS_CONFIGURATION_TYPE" target property was introduced to
>  specify a custom project file type for Visual Studio Generators
>  supporting VS 2010 and above.
>
>* A "VS_STARTUP_PROJECT" directory property was introduced to
>  specify for Visual Studio Generators the default startup project for
>  generated solutions (".sln" files).
>
>
>Modules
>-------
>
>* The "CMakePushCheckState" module now pushes/pops/resets the
>  variable "CMAKE_EXTRA_INCLUDE_FILE" used in "CheckTypeSize".
>
>* The "ExternalProject" module leared the "GIT_SHALLOW 1" option to
>  perform a shallow clone of a Git repository.
>
>* The "ExternalProject" module learned to initialize Git submodules
>  recursively and also to initialize new submodules on updates.  Use
>  the "GIT_SUBMODULES" option to restrict which submodules are
>  initalized and updated.
>
>* The "ExternalProject" module leared the "DOWNLOAD_NO_EXTRACT 1"
>  argument to skip extracting the file that is downloaded (e.g., for
>  self-extracting shell installers or ".msi" files).
>
>* The "ExternalProject" module now uses "TLS_VERIFY" when fetching
>  from git repositories.
>
>* The "FindBLAS" and "FindLAPACK" modules learned to support
>  OpenBLAS.
>
>* The "FindCUDA" module learned to find the "cublas_device" library.
>
>* The "FindGTest" module "gtest_add_tests" function now causes CMake
>  to automatically re-run when test sources change so that they can be
>  re-scanned.
>
>* The "FindLTTngUST" module was introduced to find the LTTng-UST
>  library.
>
>* The "FindPkgConfig" module learned to optionally create imported
>  targets for the libraries it has found.
>
>* The "FindProtobuf" module learned to provide a "Protobuf_VERSION"
>  variable and check the version number requested in a
>  "find_package()" call.
>
>* The "InstallRequiredSystemLibraries" module learned a new
>  "CMAKE_INSTALL_UCRT_LIBRARIES" option to enable app-local deployment
>  of the Windows Universal CRT libraries with Visual Studio 2015.
>
>
>Platforms
>---------
>
>* The Clang compiler is now supported on CYGWIN.
>
>* Support was added for the Bruce C Compiler with compiler id
>  "Bruce".
>
>
>CTest
>-----
>
>* The "ctest_update()" command now looks at the
>  "CTEST_GIT_INIT_SUBMODULES" variable to determine whether submodules
>  should be updated or not before updating.
>
>* The "ctest_update()" command will now synchronize submodules on an
>  update. Updates which add submodules or change a submodule's URL
>  will now be pulled properly.
>
>
>CPack
>-----
>
>* The "CPackDeb" module learned how to handle "$ORIGIN" in
>  "CMAKE_INSTALL_RPATH" when "CPACK_DEBIAN_PACKAGE_SHLIBDEPS" is used
>  for dependency auto detection.
>
>* The "CPackDeb" module learned how to generate "DEBIAN/shlibs"
>  contorl file when package contains shared libraries.
>
>* The "CPackDeb" module learned how to generate "DEBIAN/postinst"
>  and "DEBIAN/postrm" files if the package installs libraries in
>  ldconfig- controlled locations (e.g. "/lib/", "/usr/lib/").
>
>* The "CPackDeb" module learned how to generate dependencies between
>  Debian packages if multi-component setup is used and
>  "CPACK_COMPONENT_<compName>_DEPENDS" variables are set. For backward
>  compatibility this feature is disabled by default. See
>  "CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS".
>
>* The "CPackDeb" module learned how to set custom package file names
>  including how to generate properly-named Debian packages:
>
><PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
>
>  For backward compatibility this feature is disabled by default. See
>  "CPACK_DEBIAN_FILE_NAME" and "CPACK_DEBIAN_<COMPONENT>_FILE_NAME".
>
>* The "CPackDeb" module learned how to set the package release
>  number ("DebianRevisionNumber" in package file name when used in
>  combination with "DEB-DEFAULT" value set by
>  "CPACK_DEBIAN_FILE_NAME").  See "CPACK_DEBIAN_PACKAGE_RELEASE".
>
>* The "CPackDeb" module learned how to set the package architecture
>  per-component.  See "CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE".
>
>* The "CPackDMG" module learned a new option to tell the CPack
>  "DragNDrop" generaor to skip the "/Applications" symlink. See the
>  "CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK" variable.
>
>* The "CPackIFW" module gained a new "cpack_ifw_update_repository()"
>  command to update a QtIFW-specific repository from a remote
>  repository.
>
>* The "CPackRPM" module learned how to set RPM "dist" tag as part of
>  RPM "Release:" tag when enabled (mandatory on some Linux
>  distributions for e.g. on Fedora). See
>  "CPACK_RPM_PACKAGE_RELEASE_DIST".
>
>* The "CPackRPM" module learned how to set default values for owning
>  user/group and file/directory permissions of package content. See
>  "CPACK_RPM_DEFAULT_USER", "CPACK_RPM_DEFAULT_GROUP",
>  "CPACK_RPM_DEFAULT_FILE_PERMISSIONS",
>  "CPACK_RPM_DEFAULT_DIR_PERMISSIONS" and their per component
>  counterparts.
>
>* The "CPackRPM" module learned how to set user defined package file
>  names, how to specify that rpmbuild should decide on file name
>  format as well as handling of multiple rpm packages generated by a
>  single user defined spec file. See "CPACK_RPM_PACKAGE_NAME" and
>  "CPACK_RPM_<component>_PACKAGE_NAME".
>
>* The "CPackRPM" module learned how to correctly handle symlinks
>  that are pointing outside generated packages.
>
>
>Other
>-----
>
>* The "Compile Features" functionality is now aware of features
>  supported by Intel C++ compilers versions 12.1 through 16.0 on UNIX
>  platforms.
>
>
>Deprecated and Removed Features
>===============================
>
>* The "CMakeForceCompiler" module and its macros are now deprecated.
>  See module documentation for an explanation.
>
>* The "find_library()", "find_path()", and "find_file()" commands no
>  longer search in installation prefixes derived from the "PATH"
>  environment variable on non-Windows platforms.  This behavior was
>  added in CMake 3.3 to support Windows hosts but has proven
>  problematic on UNIX hosts. Users that keep some "<prefix>/bin"
>  directories in the "PATH" just for their tools do not necessarily
>  want any supporting "<prefix>/lib" directories searched.  One may
>  set the "CMAKE_PREFIX_PATH" environment variable with a ;-list of
>  prefixes that are to be searched.
>
>* The "Visual Studio 7 .NET 2003" generator is now deprecated and
>  will be removed in a future version of CMake.
>
>* The "Visual Studio 7" generator (for VS .NET 2002) has been
>  removed. It had been deprecated since CMake 3.3.
>
>* The "Visual Studio 6" generator has been removed. It had been
>  deprecated since CMake 3.3.
>
>
>Other Changes
>=============
>
>* The precompiled OS X binary provided on "cmake.org" now requires
>  OS X 10.7 or newer.
>
>* On Linux and FreeBSD platforms, when building CMake itself from
>  source and not using a system-provided libcurl, OpenSSL is now used
>  by default if it is found on the system.  This enables SSL/TLS
>  support for commands supporting network communication via "https",
>  such as "file(DOWNLOAD)", "file(UPLOAD)", and "ctest_submit()".
>
>* The "cmake(1)" "--build" command-line tool now rejects multiple
>  "-- target" options with an error instead of silently ignoring all
>  but the last one.
>
>* "AUTOMOC" now diagnoses name collisions when multiple source files
>  in different directories use "#include <moc_foo.cpp>" with the same
>  name (because the generated "moc_foo.cpp" files would collide).
>
>* The "FindBISON" module "BISON_TARGET" macro now supports special
>  characters by passing the "VERBATIM" option to internal
>  "add_custom_command()" calls.  This may break clients that added
>  escaping manually to work around the bug.
>
>* The "FindFLEX" module "FLEX_TARGET" macro now supports special
>  characters by passing the "VERBATIM" option to internal
>  "add_custom_command()" calls.  This may break clients that added
>  escaping manually to work around the bug.
>
>* The "FindProtobuf" module input and output variables were all
>  renamed from "PROTOBUF_" to "Protobuf_" for consistency with other
>  find modules. Input variables of the old case will be honored if
>  provided, and output variables of the old case are always provided.
>
>* The "CPackRPM" module now supports upper cased component names in
>  per component CPackRPM specific variables. E.g. component named
>  "foo" now expects component specific variable to be
>  "CPACK_RPM_FOO_PACKAGE_NAME" while before it expected
>  "CPACK_RPM_foo_PACKAGE_NAME". Upper cased component name part in
>  variables is compatible with convention used for other CPack
>  variables. For back compatibility old format of variables is still
>  valid and preferred if both versions of variable are set, but the
>  preferred future use is upper cased component names in variables.
>  New variables that will be added to CPackRPM in later versions will
>  only support upper cased component variable format.
>
>----------------------------------------------------------------------------
>Changes made since CMake 3.6.0-rc3:
>
>Bartosz Kosiorek (1):
>      Help: Describe VERSION and SOVERSION meanings for Mach-O binaries
>
>Ben Boeckel (1):
>      ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files
>
>Brad King (2):
>      Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
>      CMake 3.6.0-rc4
>
>Gregor Jasny (1):
>      Help: Cross reference CXX_STANDARD and CXX_EXTENSIONS (#16162)
>
>Robert Maynard (5):
>      FindHDF5: correctly add lang to each component target name.
>      FindHDF5: Handle HDF5 builds with non-suffixed components
>FindHDF5: When component targets not found fallback to compiler
>wrappers
>      FindHDF5: cache the correct path to the high level libraries
>      FindHDF5: create all the *_LIBRARIES when using hdf5-config.cmake
>
>Rolf Eike Beer (1):
>      GetPrerequisites: fix typo in comment

-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.


More information about the CMake mailing list