543
I Use This!
Activity Not Available

News

Analyzed about 1 year ago. based on code collected about 1 year ago.
Posted almost 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.2 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.3 since 3.1.2:   Brad King (3):       Do not call setlocale() globally in CMake applications (#15377)       Add setlocale() calls around use of libarchive APIs (#14934, #15377)       CMake 3.1.3 Nils Gladitz (1):       Makefile: Fix regression in target-bound custom command COMMENT output [Less]
Posted almost 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.2 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.3 since 3.1.2:   Brad King (3):       Do not call setlocale() globally in CMake applications (#15377)       Add setlocale() calls around use of libarchive APIs (#14934, #15377)       CMake 3.1.3 Nils Gladitz (1):       Makefile: Fix regression in target-bound custom command COMMENT output [Less]
Posted almost 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.2 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.2 since 3.1.1:   Ben Boeckel (1):       install: Fix regression in default configuration selection Bill Hoffman (1):       CPack: Fix packaging of source tarballs with symbolic links Brad King (5):       KWSys Directory: Check opendir return value before using it (#15367)       Help: Clarify status of link_libraries command       Normalize OBJECT_DEPENDS paths to match custom commands (#15366)       MSVC: Fix initialization of RelWithDebInfo shared library link flags (#15385)       CMake 3.1.2 Christoph Grüninger (1):       FeatureSummary: Fix bracket in documentation. Guillaume Belz (1):       FindOpenSSL: fix detection of OpenSSL 1.0.2 Marco Nolden (1):       ctest_build: Update GNU make error message matching (#15379)   [Less]
Posted almost 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.2 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.2 since 3.1.1:   Ben Boeckel (1):       install: Fix regression in default configuration selection Bill Hoffman (1):       CPack: Fix packaging of source tarballs with symbolic links Brad King (5):       KWSys Directory: Check opendir return value before using it (#15367)       Help: Clarify status of link_libraries command       Normalize OBJECT_DEPENDS paths to match custom commands (#15366)       MSVC: Fix initialization of RelWithDebInfo shared library link flags (#15385)       CMake 3.1.2 Christoph Grüninger (1):       FeatureSummary: Fix bracket in documentation. Guillaume Belz (1):       FindOpenSSL: fix detection of OpenSSL 1.0.2 Marco Nolden (1):       ctest_build: Update GNU make error message matching (#15379)   [Less]
Posted about 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.1 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download/    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.1 since 3.1.0:   André Klitzing (1):       Eclipse: Add org.eclipse.cdt.core.cnature to CXX projects (#15068) Ben Boeckel (4):       get_test_property: clarify the documentation       set_tests_properties: fix documentation       tests: add tests for querying properties       Xcode: Sort targets deterministically and with ALL_BUILD first (#15346) Brad King (14):       bootstrap: Fix syntax for Solaris 10 shell (#15317)       Help: Clarify MinGW v. MSYS Makefiles generators (#15319)       Ninja: Do not crash when CMAKE_<LANG>_COMPILE_OBJECT is empty (#15325)       Ninja: Generate rules only for languages compiled in a target (#15325)       Tests: Test using objects from a language enabled in a subdirectory (#15325)       Help: Add 3.1 release note about '#' escaping in Makefiles (#15322)       Help: Clarify if(<variable>) documentation (#15335)       Help: Document CMAKE_FIND_PACKAGE_NAME variable       Xcode: Do not require code signing for compiler id (#15214)       Copyright.txt: Update year range to end in 2015       XL: Fix link flags for executables on Linux with XL compilers       QNX: Fix detection of QCC compiler id (#15349)       Xcode: Fix early termination on per-config source file error       CMake 3.1.1 Calin Cascaval (1):       CPack: Fix PackageMaker internal versioning for OS X 10.10 Chuck Atkins (1):       Fix compilation with the Oracle / Sun compiler (#15318) Daniele E. Domenichelli (1):       Help: Small fixes in CPackComponent documentation David Coppa (1):       FindRuby: fix selection of version x.0 (#15345) Domen Vrankar (1):       CPack: Avoid crash on invalid CMake generator name (#15308) Evangelos Foutras (1):       FindRuby: Fix output check in _RUBY_CONFIG_VAR Gregor Jasny (1):       find_package: Document CMAKE_FIND_PACKAGE_NAME variable Justin Borodinsky (1):       QtAutoUic: Restore source file AUTOUIC_OPTIONS settings Mark Abraham (1):       FindCUDA: Do not assume CMAKE_SYSTEM_PROCESSOR is set Peter Vasil (2):       cmake-mode.el: Fix extracting keyword at point in cmake-help       cmake-mode.el: Re-add explicit call to require thingatpt Rolf Eike Beer (5):       FindIce: Port to work with CMP0054 NEW behavior       FindSDL: Allow if() to dereference SDL_INCLUDE_DIR for matching       FindQt: fix setting DESIRED_QT_VERSION if "find_package(Qt VVV)" was called       FindQt: fix variable name in error message       FindQt: explicitely mention that it cannot Qt5 or later Sergey Nikulov (1):       FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0 Simon Gomizelj (1):       KWSys Terminal: Add xterm-termite to VT100 color support whitelist Stephen Kelly (7):       Help: Document valid 14 value for CXX_STANDARD. (#15339)       get_target_property: discern empty from undefined properties (#15333)       QtAutoUic: Add a test for the regression in the parent commit.       cmMakefile: Rename a method to what it really does.       Features: Fix the COMPILE_FEATURES genex for unavailable features.       cmTarget: Compute link language of TARGET_OBJECTS with CMP0026 OLD (#15338)       Help: Link relevant documents for virtual override features (#15311) Tim Blechmann (1):       Help: Add INTERFACE_LIBRARY to TYPE target property documentation William Lynch (1):       Help: Update cmake.org links to avoid redirects   ------------------------------------------------------------------------- [Less]
Posted about 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.1.1 is now available for download.   Please use the latest release from our download page http://www.cmake.org/download/    Thanks for your support! ... [More] ------------------------------------------------------------------------- Changes in 3.1.1 since 3.1.0:   André Klitzing (1):       Eclipse: Add org.eclipse.cdt.core.cnature to CXX projects (#15068) Ben Boeckel (4):       get_test_property: clarify the documentation       set_tests_properties: fix documentation       tests: add tests for querying properties       Xcode: Sort targets deterministically and with ALL_BUILD first (#15346) Brad King (14):       bootstrap: Fix syntax for Solaris 10 shell (#15317)       Help: Clarify MinGW v. MSYS Makefiles generators (#15319)       Ninja: Do not crash when CMAKE_<LANG>_COMPILE_OBJECT is empty (#15325)       Ninja: Generate rules only for languages compiled in a target (#15325)       Tests: Test using objects from a language enabled in a subdirectory (#15325)       Help: Add 3.1 release note about '#' escaping in Makefiles (#15322)       Help: Clarify if(<variable>) documentation (#15335)       Help: Document CMAKE_FIND_PACKAGE_NAME variable       Xcode: Do not require code signing for compiler id (#15214)       Copyright.txt: Update year range to end in 2015       XL: Fix link flags for executables on Linux with XL compilers       QNX: Fix detection of QCC compiler id (#15349)       Xcode: Fix early termination on per-config source file error       CMake 3.1.1 Calin Cascaval (1):       CPack: Fix PackageMaker internal versioning for OS X 10.10 Chuck Atkins (1):       Fix compilation with the Oracle / Sun compiler (#15318) Daniele E. Domenichelli (1):       Help: Small fixes in CPackComponent documentation David Coppa (1):       FindRuby: fix selection of version x.0 (#15345) Domen Vrankar (1):       CPack: Avoid crash on invalid CMake generator name (#15308) Evangelos Foutras (1):       FindRuby: Fix output check in _RUBY_CONFIG_VAR Gregor Jasny (1):       find_package: Document CMAKE_FIND_PACKAGE_NAME variable Justin Borodinsky (1):       QtAutoUic: Restore source file AUTOUIC_OPTIONS settings Mark Abraham (1):       FindCUDA: Do not assume CMAKE_SYSTEM_PROCESSOR is set Peter Vasil (2):       cmake-mode.el: Fix extracting keyword at point in cmake-help       cmake-mode.el: Re-add explicit call to require thingatpt Rolf Eike Beer (5):       FindIce: Port to work with CMP0054 NEW behavior       FindSDL: Allow if() to dereference SDL_INCLUDE_DIR for matching       FindQt: fix setting DESIRED_QT_VERSION if "find_package(Qt VVV)" was called       FindQt: fix variable name in error message       FindQt: explicitely mention that it cannot Qt5 or later Sergey Nikulov (1):       FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0 Simon Gomizelj (1):       KWSys Terminal: Add xterm-termite to VT100 color support whitelist Stephen Kelly (7):       Help: Document valid 14 value for CXX_STANDARD. (#15339)       get_target_property: discern empty from undefined properties (#15333)       QtAutoUic: Add a test for the regression in the parent commit.       cmMakefile: Rename a method to what it really does.       Features: Fix the COMPILE_FEATURES genex for unavailable features.       cmTarget: Compute link language of TARGET_OBJECTS with CMP0026 OLD (#15338)       Help: Link relevant documents for virtual override features (#15311) Tim Blechmann (1):       Help: Add INTERFACE_LIBRARY to TYPE target property documentation William Lynch (1):       Help: Update cmake.org links to avoid redirects   ------------------------------------------------------------------------- [Less]
Posted about 10 years ago by Robert Maynard
I am proud to announce that CMake 3.1 is now available for download at:   http://www.cmake.org/files/v3.1/?C=M;O=D Documentation is available at:   http://www.cmake.org/cmake/help/v3.1 Full release notes are published at:   ... [More] http://www.cmake.org/cmake/help/v3.1/release/3.1.0.html Some of the more significant features of CMake 3.1 are: * Windows Phone and Windows Store support has been added to  Visual Studio 11   (2012) and above Generators. * NVIDIA Nsight Tegra support has been added to  Visual Studio 10 (2010) and   above Generators. * New "target_compile_features" command allows populating target based compile   features. CMake uses this information to ensure that the compiler in use is   capable of building the target, and to add any necessary compile flags   such as -std=gnu++11 to support language features.   More information on this is found at:   - http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html * The syntax for *Variable References* and *Escape Sequences* was simplified in   order to allow a much faster implementation. See policy "CMP0053". * The "if" command no longer automatically dereferences variables named in   quoted or bracket arguments.  See policy "CMP0054". * The target property "SOURCES" now generally supports "Generator Expressions".   The generator expressions may be used in the "add_library" and   "add_executable" commands. * It is now possible to write and append to the target property "SOURCES".   The variable "CMAKE_DEBUG_TARGET_PROPERTIES" can be used to trace the   origin of sources. * CPack gained "7Z" and "TXZ" generators supporting lzma-compressed archives. * The ExternalProject module has learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The ExternalProject module ExternalProject_Add command learned a new   BUILD_ALWAYS option to cause the external project build step to run every   time the host project is built. * The ctest_coverage command learned to support Intel coverage files with the   "codecov" tool. * The ctest_memcheck command learned to support sanitizer modes, including   "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer", and   "UndefinedBehaviorSanitizer". Deprecated and Removed Features: * In CMake 3.0 the "target_link_libraries" command accidentally began allowing   unquoted arguments to use Generator Expressions containing a semicolon   separated list within them. For example:     set(libs B C)     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work. It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:     set(libs B C)     target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. CMake 3.1.0 Release Notes ************************* Changes made since CMake 3.0.0 include the following. Documentation Changes ===================== * A new "cmake-compile-features(7)" manual was added. New Features ============ Generators ---------- * The "Visual Studio 14 2015" generator was added. Windows Phone and Windows Store ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 11 (2012) and above learned to   generate projects for Windows Phone and Windows Store.  One may set   the "CMAKE_SYSTEM_NAME" variable to "WindowsPhone" or "WindowsStore"   on the "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to   activate these platforms. Also set "CMAKE_SYSTEM_VERSION" to "8.0"   or "8.1" to specify the version of Windows to be targeted. NVIDIA Nsight Tegra ~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 10 (2010) and above learned to   generate projects for NVIDIA Nsight Tegra Visual Studio Edition.   One may set the "CMAKE_SYSTEM_NAME" variable to "Android" on the   "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to activate   this platform. Syntax ------ * The "cmake-language(7)" syntax for *Variable References* and   *Escape Sequences* was simplified in order to allow a much faster   implementation.  See policy "CMP0053". * The "if()" command no longer automatically dereferences variables   named in quoted or bracket arguments.  See policy "CMP0054". Commands -------- * The "add_custom_command()" command learned to interpret "cmake-   generator-expressions(7)" in arguments to "DEPENDS". * The "export(PACKAGE)" command learned to check the   "CMAKE_EXPORT_NO_PACKAGE_REGISTRY" variable to skip exporting the   package. * The "file(STRINGS)" command gained a new "ENCODING" option to   enable extraction of "UTF-8" strings. * The "find_package()" command learned to check the   "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" and   "CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY" variables to skip   searching the package registries. * The "get_property()" command learned a new "INSTALL" scope for   properties. * The "install()" command learned a "MESSAGE_NEVER" option to avoid   output during installation. * The "set_property()" command learned a new "INSTALL" scope for   properties. * The "string()" command learned a new "GENEX_STRIP" subcommand   which removes "generator expression". * The "string()" command learned a new "UUID" subcommand to generate   a univerally unique identifier. * New "target_compile_features()" command allows populating the   "COMPILE_FEATURES" target property, just like any other build   variable. * The "target_sources()" command was added to add to the "SOURCES"   target property. Variables --------- * The Visual Studio generators for versions 8 (2005) and above   learned to read the target platform name from a new   "CMAKE_GENERATOR_PLATFORM" variable when it is not specified as part   of the generator name.  The platform name may be specified on the   "cmake(1)" command line with the "-A" option, e.g. "-G "Visual   Studio 12 2013" -A x64". * The "CMAKE_GENERATOR_TOOLSET" variable may now be initialized in a   toolchain file specified by the "CMAKE_TOOLCHAIN_FILE" variable.   This is useful when cross-compiling with the Xcode or Visual Studio   generators. * The "CMAKE_INSTALL_MESSAGE" variable was introduced to optionally   reduce output installation. Properties ---------- * New "CXX_STANDARD" and "CXX_EXTENSIONS" target properties may   specify values which CMake uses to compute required compile options   such as "-std=c++11" or "-std=gnu++11". The "CMAKE_CXX_STANDARD" and   "CMAKE_CXX_EXTENSIONS" variables may be set to initialize the target   properties. * New "C_STANDARD" and "C_EXTENSIONS" target properties may specify   values which CMake uses to compute required compile options such as   "-std=c11" or "-std=gnu11". The "CMAKE_C_STANDARD" and   "CMAKE_C_EXTENSIONS" variables may be set to initialize the target   properties. * New "COMPILE_FEATURES" target property may contain a list of   features required to compile a target.  CMake uses this information   to ensure that the compiler in use is capable of building the   target, and to add any necessary compile flags to support language   features. * New "COMPILE_PDB_NAME" and "COMPILE_PDB_OUTPUT_DIRECTORY" target   properties were introduced to specify the MSVC compiler program   database file location ("cl /Fd").  This complements the existing   "PDB_NAME" and "PDB_OUTPUT_DIRECTORY" target properties that specify   the linker program database file location ("link /pdb"). * The "INTERFACE_LINK_LIBRARIES" target property now supports a   "$<LINK_ONLY:...>" "generator expression". * A new "INTERFACE_SOURCES" target property was introduced. This is   consumed by dependent targets, which compile and link the listed   sources. * The "SOURCES" target property now contains "generator expression"   such as "TARGET_OBJECTS" when read at configure time, if policy   "CMP0051" is "NEW". * The "SOURCES" target property now generally supports "generator   expression".  The generator expressions may be used in the   "add_library()" and "add_executable()" commands. * It is now possible to write and append to the "SOURCES" target   property.  The "CMAKE_DEBUG_TARGET_PROPERTIES" variable may be used   to trace the origin of sources. * A "VS_DEPLOYMENT_CONTENT" source file property was added to tell   the Visual Studio generators to mark content for deployment in   Windows Phone and Windows Store projects. * A "VS_DEPLOYMENT_LOCATION" source file property was added to tell   the Visual Studio generators the relative location of content marked   for deployment in Windows Phone and Windows Store projects. * The "VS_WINRT_COMPONENT" target property was created to tell   Visual Studio generators to compile a shared library as a Windows   Runtime (WinRT) component. * The "Xcode" generator learned to check source file properties   "XCODE_EXPLICIT_FILE_TYPE" and "XCODE_LAST_KNOWN_FILE_TYPE" for a   custom Xcode file reference type. Modules ------- * The "BundleUtilities" module learned to resolve and replace   "@rpath" placeholders on OS X to correctly bundle applications using   them. * The "CMakePackageConfigHelpers" module   "configure_package_config_file()" command learned a new   "INSTALL_PREFIX" option to generate package configuration files   meant for a prefix other than "CMAKE_INSTALL_PREFIX". * The "CheckFortranSourceCompiles" module was added to provide a   "CHECK_Fortran_SOURCE_COMPILES" macro. * The "ExternalData" module learned to tolerate a "DATA{}" reference   to a missing source file with a warning instead of rejecting it with   an error.  This helps developers write new "DATA{}" references to   test reference outputs that have not yet been created. * The "ExternalProject" module learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "BUILD_ALWAYS" option to cause the external project build step   to run every time the host project is built. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "EXCLUDE_FROM_ALL" option to cause the external project target   to have the "EXCLUDE_FROM_ALL" target property set. * The "ExternalProject" module "ExternalProject_Add_Step" command   learned a new "EXCLUDE_FROM_MAIN" option to cause the step to not be   a direct dependency of the main external project target. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "DOWNLOAD_NO_PROGRESS" option to disable progress output while   downloading the source tarball. * The "FeatureSummary" module "feature_summary" API learned to   accept multiple values for the "WHAT" option and combine them   appropriately. * The "FindCUDA" module learned to support "fatbin" and "cubin"   modules. * The "FindGTest" module "gtest_add_tests" macro learned a new   "AUTO" option to automatically read the "SOURCES" target property of   the test executable and scan the source files for tests to be added. * The "FindGLEW" module now provides imported targets. * The "FindGLUT" module now provides imported targets. * The "FindHg" module gained a new "Hg_WC_INFO" macro to help run   "hg" to extract information about a Mercurial work copy. * The "FindOpenCL" module was introduced. * The "FindOpenMP" module learned to support Fortran. * The "FindPkgConfig" module learned to use the "PKG_CONFIG"   environment variable value as the "pkg-config" executable, if set. * The "FindXercesC" module was introduced. * The "FindZLIB" module now provides imported targets. * The "GenerateExportHeader" module "generate_export_header"   function learned to allow use with *Object Libraries*. * The "InstallRequiredSystemLibraries" module gained a new   "CMAKE_INSTALL_OPENMP_LIBRARIES" option to install MSVC OpenMP   runtime libraries. * The "UseSWIG" module learned to detect the module name from ".i"   source files if possible to avoid the need to set the   "SWIG_MODULE_NAME" source file property explicitly. * The "WriteCompilerDetectionHeader" module was added to allow   creation of a portable header file for compiler optional feature   detection. Generator Expressions --------------------- * New "COMPILE_FEATURES" "generator expression" allows setting build   properties based on available compiler features. CTest ----- * The "ctest_coverage()" command learned to read variable   "CTEST_COVERAGE_EXTRA_FLAGS" to set "CoverageExtraFlags". * The "ctest_coverage()" command learned to support Intel coverage   files with the "codecov" tool. * The "ctest_memcheck()" command learned to support sanitizer modes,   including "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer",   and "UndefinedBehaviorSanitizer". Options may be set using the new   "CTEST_MEMORYCHECK_SANITIZER_OPTIONS" variable. CPack ----- * "cpack(1)" gained an "IFW" generator to package using Qt Framework   Installer tools.  See the "CPackIFW" module. * "cpack(1)" gained "7Z" and "TXZ" generators supporting lzma-   compressed archives. * The "CPackDeb" module learned a new   "CPACK_DEBIAN_COMPRESSION_TYPE" variable to set the tarball   compression type. * The "cpack(1)" "WiX" generator learned to support a   "CPACK_WIX_ACL" installed file property to specify an Access Control   List. Other ----- * The "cmake(1)" "-E" option learned a new "env" command. * The "cmake(1)" "-E tar" command learned to support lzma-compressed   files. * *Object Libraries* may now have extra sources that do not compile   to object files so long as they would not affect linking of a normal   library (e.g. ".dat" is okay but not ".def"). * Visual Studio generators for VS 8 and later learned to support the   "ASM_MASM" language. * The Visual Studio generators learned to treat ".hlsl" source files   as High Level Shading Language sources (using "FXCompile" in   ".vcxproj" files).  Source file properties "VS_SHADER_TYPE",   "VS_SHADER_MODEL", and "VS_SHADER_ENTRYPOINT" were added added to   specify the shader type, model, and entry point name. New Diagnostics =============== * Policy "CMP0052" introduced to control directories in the   "INTERFACE_INCLUDE_DIRECTORIES" of exported targets. Deprecated and Removed Features =============================== * In CMake 3.0 the "target_link_libraries()" command accidentally   began allowing unquoted arguments to use "generator expressions"   containing a (";" separated) list within them.  For example:      set(libs B C)      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work.  It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:      set(libs B C)      target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. * Callbacks established by the "variable_watch()" command will no   longer receive the "ALLOWED_UNKNOWN_READ_ACCESS" access type when   the undocumented "CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS" variable   is set.  Uninitialized variable accesses will always be reported as   "UNKNOWN_READ_ACCESS". * The "CMakeDetermineVSServicePack" module now warns that it is   deprecated and should not longer be used.  Use the   "CMAKE_<LANG>_COMPILER_VERSION" variable instead. * The "FindITK" module has been removed altogether. It was a thin-   wrapper around "find_package(ITK ... NO_MODULE)". This produces much   clearer error messages when ITK is not found. * The "FindVTK" module has been removed altogether. It was a thin-   wrapper around "find_package(VTK ... NO_MODULE)". This produces much   clearer error messages when VTK is not found.   The module also provided compatibility support for finding VTK 4.0.   This capability has been dropped. Other Changes ============= * The "cmake-gui(1)" learned to capture output from child processes   started by the "execute_process()" command and display it in the   output window. * The "cmake-language(7)" internal implementation of generator   expression and list expansion parsers have been optimized and shows   non-trivial speedup on large projects. * The Makefile generators learned to use response files with GNU   tools on Windows to pass library directories and names to the   linker. * When generating linker command-lines, CMake now avoids repeating   items corresponding to SHARED library targets. * Support for the Open Watcom compiler has been overhauled. The   "CMAKE_<LANG>_COMPILER_ID" is now "OpenWatcom", and the   "CMAKE_<LANG>_COMPILER_VERSION" now uses the Open Watcom external   version numbering.  The external version numbers are lower than the   internal version number by 11. * The "cmake-mode.el" major Emacs editing mode no longer treats "_"   as part of words, making it more consistent with other major modes. ------------------------------------------------------------------- Changes made since CMake 3.1.0-rc3: Brad King (2):       Help: Drop FeatureSummary example in cmake-developer.7       CMake 3.1.0 Nils Gladitz (1):       Help: Extend policy CMP0054 documentation with an example     [Less]
Posted about 10 years ago by Robert Maynard
I am proud to announce the CMake 3.1 third release candidate. Sources and binaries are available at:   http://www.cmake.org/files/v3.1/?C=M;O=D Documentation is available at:   http://www.cmake.org/cmake/help/v3.1 Release notes appear ... [More] below and are also published at   http://www.cmake.org/cmake/help/v3.1/release/3.1.0.html Some of the more significant features of CMake 3.1 are: * Windows Phone and Windows Store support has been added to  Visual Studio 11   (2012) and above Generators. * NVIDIA Nsight Tegra support has been added to  Visual Studio 10 (2010) and   above Generators. * New "target_compile_features" command allows populating target based compile   features. CMake uses this information to ensure that the compiler in use is   capable of building the target, and to add any necessary compile flags   such as -std=gnu++11 to support language features.   More information on this is found at:   - http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html * The syntax for *Variable References* and *Escape Sequences* was simplified in   order to allow a much faster implementation. See policy "CMP0053". * The "if" command no longer automatically dereferences variables named in   quoted or bracket arguments.  See policy "CMP0054". * The target property "SOURCES" now generally supports "Generator Expressions".   The generator expressions may be used in the "add_library" and   "add_executable" commands. * It is now possible to write and append to the target property "SOURCES".   The variable "CMAKE_DEBUG_TARGET_PROPERTIES" can be used to trace the   origin of sources. * CPack gained "7Z" and "TXZ" generators supporting lzma-compressed archives. * The ExternalProject module has learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The ExternalProject module ExternalProject_Add command learned a new   BUILD_ALWAYS option to cause the external project build step to run every   time the host project is built. * The ctest_coverage command learned to support Intel coverage files with the   "codecov" tool. * The ctest_memcheck command learned to support sanitizer modes, including   "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer", and   "UndefinedBehaviorSanitizer". Deprecated and Removed Features: * In CMake 3.0 the "target_link_libraries" command accidentally began allowing   unquoted arguments to use Generator Expressions containing a semicolon   separated list within them. For example:     set(libs B C)     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work. It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:     set(libs B C)     target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. CMake 3.1.0 Release Notes ************************* Changes made since CMake 3.0.0 include the following. Documentation Changes ===================== * A new "cmake-compile-features(7)" manual was added. New Features ============ Generators ---------- * The "Visual Studio 14 2015" generator was added. Windows Phone and Windows Store ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 11 (2012) and above learned to   generate projects for Windows Phone and Windows Store.  One may set   the "CMAKE_SYSTEM_NAME" variable to "WindowsPhone" or "WindowsStore"   on the "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to   activate these platforms. Also set "CMAKE_SYSTEM_VERSION" to "8.0"   or "8.1" to specify the version of Windows to be targeted. NVIDIA Nsight Tegra ~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 10 (2010) and above learned to   generate projects for NVIDIA Nsight Tegra Visual Studio Edition.   One may set the "CMAKE_SYSTEM_NAME" variable to "Android" on the   "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to activate   this platform. Syntax ------ * The "cmake-language(7)" syntax for *Variable References* and   *Escape Sequences* was simplified in order to allow a much faster   implementation.  See policy "CMP0053". * The "if()" command no longer automatically dereferences variables   named in quoted or bracket arguments.  See policy "CMP0054". Commands -------- * The "add_custom_command()" command learned to interpret "cmake-   generator-expressions(7)" in arguments to "DEPENDS". * The "export(PACKAGE)" command learned to check the   "CMAKE_EXPORT_NO_PACKAGE_REGISTRY" variable to skip exporting the   package. * The "file(STRINGS)" command gained a new "ENCODING" option to   enable extraction of "UTF-8" strings. * The "find_package()" command learned to check the   "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" and   "CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY" variables to skip   searching the package registries. * The "get_property()" command learned a new "INSTALL" scope for   properties. * The "install()" command learned a "MESSAGE_NEVER" option to avoid   output during installation. * The "set_property()" command learned a new "INSTALL" scope for   properties. * The "string()" command learned a new "GENEX_STRIP" subcommand   which removes "generator expression". * The "string()" command learned a new "UUID" subcommand to generate   a univerally unique identifier. * New "target_compile_features()" command allows populating the   "COMPILE_FEATURES" target property, just like any other build   variable. * The "target_sources()" command was added to add to the "SOURCES"   target property. Variables --------- * The Visual Studio generators for versions 8 (2005) and above   learned to read the target platform name from a new   "CMAKE_GENERATOR_PLATFORM" variable when it is not specified as part   of the generator name.  The platform name may be specified on the   "cmake(1)" command line with the "-A" option, e.g. "-G "Visual   Studio 12 2013" -A x64". * The "CMAKE_GENERATOR_TOOLSET" variable may now be initialized in a   toolchain file specified by the "CMAKE_TOOLCHAIN_FILE" variable.   This is useful when cross-compiling with the Xcode or Visual Studio   generators. * The "CMAKE_INSTALL_MESSAGE" variable was introduced to optionally   reduce output installation. Properties ---------- * New "CXX_STANDARD" and "CXX_EXTENSIONS" target properties may   specify values which CMake uses to compute required compile options   such as "-std=c++11" or "-std=gnu++11". The "CMAKE_CXX_STANDARD" and   "CMAKE_CXX_EXTENSIONS" variables may be set to initialize the target   properties. * New "C_STANDARD" and "C_EXTENSIONS" target properties may specify   values which CMake uses to compute required compile options such as   "-std=c11" or "-std=gnu11". The "CMAKE_C_STANDARD" and   "CMAKE_C_EXTENSIONS" variables may be set to initialize the target   properties. * New "COMPILE_FEATURES" target property may contain a list of   features required to compile a target.  CMake uses this information   to ensure that the compiler in use is capable of building the   target, and to add any necessary compile flags to support language   features. * New "COMPILE_PDB_NAME" and "COMPILE_PDB_OUTPUT_DIRECTORY" target   properties were introduced to specify the MSVC compiler program   database file location ("cl /Fd").  This complements the existing   "PDB_NAME" and "PDB_OUTPUT_DIRECTORY" target properties that specify   the linker program database file location ("link /pdb"). * The "INTERFACE_LINK_LIBRARIES" target property now supports a   "$<LINK_ONLY:...>" "generator expression". * A new "INTERFACE_SOURCES" target property was introduced. This is   consumed by dependent targets, which compile and link the listed   sources. * The "SOURCES" target property now contains "generator expression"   such as "TARGET_OBJECTS" when read at configure time, if policy   "CMP0051" is "NEW". * The "SOURCES" target property now generally supports "generator   expression".  The generator expressions may be used in the   "add_library()" and "add_executable()" commands. * It is now possible to write and append to the "SOURCES" target   property.  The "CMAKE_DEBUG_TARGET_PROPERTIES" variable may be used   to trace the origin of sources. * A "VS_DEPLOYMENT_CONTENT" source file property was added to tell   the Visual Studio generators to mark content for deployment in   Windows Phone and Windows Store projects. * The "VS_WINRT_COMPONENT" target property was created to tell   Visual Studio generators to compile a shared library as a Windows   Runtime (WinRT) component. * A "VS_DEPLOYMENT_LOCATION" source file property was added to tell   the Visual Studio generators the relative location of content marked   for deployment in Windows Phone and Windows Store projects. * The "Xcode" generator learned to check source file properties   "XCODE_EXPLICIT_FILE_TYPE" and "XCODE_LAST_KNOWN_FILE_TYPE" for a   custom Xcode file reference type. Modules ------- * The "BundleUtilities" module learned to resolve and replace   "@rpath" placeholders on OS X to correctly bundle applications using   them. * The "CMakePackageConfigHelpers" module   "configure_package_config_file()" command learned a new   "INSTALL_PREFIX" option to generate package configuration files   meant for a prefix other than "CMAKE_INSTALL_PREFIX". * The "CheckFortranSourceCompiles" module was added to provide a   "CHECK_Fortran_SOURCE_COMPILES" macro. * The "ExternalData" module learned to tolerate a "DATA{}" reference   to a missing source file with a warning instead of rejecting it with   an error.  This helps developers write new "DATA{}" references to   test reference outputs that have not yet been created. * The "ExternalProject" module learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "BUILD_ALWAYS" option to cause the external project build step   to run every time the host project is built. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "EXCLUDE_FROM_ALL" option to cause the external project target   to have the "EXCLUDE_FROM_ALL" target property set. * The "ExternalProject" module "ExternalProject_Add_Step" command   learned a new "EXCLUDE_FROM_MAIN" option to cause the step to not be   a direct dependency of the main external project target. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "DOWNLOAD_NO_PROGRESS" option to disable progress output while   downloading the source tarball. * The "FeatureSummary" module "feature_summary" API learned to   accept multiple values for the "WHAT" option and combine them   appropriately. * The "FindCUDA" module learned to support "fatbin" and "cubin"   modules. * The "FindGTest" module "gtest_add_tests" macro learned a new   "AUTO" option to automatically read the "SOURCES" target property of   the test executable and scan the source files for tests to be added. * The "FindGLEW" module now provides imported targets. * The "FindGLUT" module now provides imported targets. * The "FindHg" module gained a new "Hg_WC_INFO" macro to help run   "hg" to extract information about a Mercurial work copy. * The "FindOpenCL" module was introduced. * The "FindOpenMP" module learned to support Fortran. * The "FindPkgConfig" module learned to use the "PKG_CONFIG"   environment variable value as the "pkg-config" executable, if set. * The "FindXercesC" module was introduced. * The "FindZLIB" module now provides imported targets. * The "GenerateExportHeader" module "generate_export_header"   function learned to allow use with *Object Libraries*. * The "InstallRequiredSystemLibraries" module gained a new   "CMAKE_INSTALL_OPENMP_LIBRARIES" option to install MSVC OpenMP   runtime libraries. * The "UseSWIG" module learned to detect the module name from ".i"   source files if possible to avoid the need to set the   "SWIG_MODULE_NAME" source file property explicitly. * The "WriteCompilerDetectionHeader" module was added to allow   creation of a portable header file for compiler optional feature   detection. Generator Expressions --------------------- * New "COMPILE_FEATURES" "generator expression" allows setting build   properties based on available compiler features. CTest ----- * The "ctest_coverage()" command learned to read variable   "CTEST_COVERAGE_EXTRA_FLAGS" to set "CoverageExtraFlags". * The "ctest_coverage()" command learned to support Intel coverage   files with the "codecov" tool. * The "ctest_memcheck()" command learned to support sanitizer modes,   including "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer",   and "UndefinedBehaviorSanitizer". Options may be set using the new   "CTEST_MEMORYCHECK_SANITIZER_OPTIONS" variable. CPack ----- * "cpack(1)" gained an "IFW" generator to package using Qt Framework   Installer tools.  See the "CPackIFW" module. * "cpack(1)" gained "7Z" and "TXZ" generators supporting lzma-   compressed archives. * The "CPackDeb" module learned a new   "CPACK_DEBIAN_COMPRESSION_TYPE" variable to set the tarball   compression type. * The "cpack(1)" "WiX" generator learned to support a   "CPACK_WIX_ACL" installed file property to specify an Access Control   List. Other ----- * The "cmake(1)" "-E" option learned a new "env" command. * The "cmake(1)" "-E tar" command learned to support lzma-compressed   files. * *Object Libraries* may now have extra sources that do not compile   to object files so long as they would not affect linking of a normal   library (e.g. ".dat" is okay but not ".def"). * Visual Studio generators for VS 8 and later learned to support the   "ASM_MASM" language. * The Visual Studio generators learned to treat ".hlsl" source files   as High Level Shading Language sources (using "FXCompile" in   ".vcxproj" files).  Source file properties "VS_SHADER_TYPE",   "VS_SHADER_MODEL", and "VS_SHADER_ENTRYPOINT" were added added to   specify the shader type, model, and entry point name. New Diagnostics =============== * Policy "CMP0052" introduced to control directories in the   "INTERFACE_INCLUDE_DIRECTORIES" of exported targets. Deprecated and Removed Features =============================== * In CMake 3.0 the "target_link_libraries()" command accidentally   began allowing unquoted arguments to use "generator expressions"   containing a (";" separated) list within them.  For example:      set(libs B C)      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work.  It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:      set(libs B C)      target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. * Callbacks established by the "variable_watch()" command will no   longer receive the "ALLOWED_UNKNOWN_READ_ACCESS" access type when   the undocumented "CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS" variable   is set.  Uninitialized variable accesses will always be reported as   "UNKNOWN_READ_ACCESS". * The "CMakeDetermineVSServicePack" module now warns that it is   deprecated and should not longer be used.  Use the   "CMAKE_<LANG>_COMPILER_VERSION" variable instead. * The "FindITK" module has been removed altogether. It was a thin-   wrapper around "find_package(ITK ... NO_MODULE)". This produces much   clearer error messages when ITK is not found. * The "FindVTK" module has been removed altogether. It was a thin-   wrapper around "find_package(VTK ... NO_MODULE)". This produces much   clearer error messages when VTK is not found.   The module also provided compatibility support for finding VTK 4.0.   This capability has been dropped. Other Changes ============= * The "cmake-gui(1)" learned to capture output from child processes   started by the "execute_process()" command and display it in the   output window. * The "cmake-language(7)" internal implementation of generator   expression and list expansion parsers have been optimized and shows   non-trivial speedup on large projects. * The Makefile generators learned to use response files with GNU   tools on Windows to pass library directories and names to the   linker. * When generating linker command-lines, CMake now avoids repeating   items corresponding to SHARED library targets. * Support for the Open Watcom compiler has been overhauled. The   "CMAKE_<LANG>_COMPILER_ID" is now "OpenWatcom", and the   "CMAKE_<LANG>_COMPILER_VERSION" now uses the Open Watcom external   version numbering.  The external version numbers are lower than the   internal version number by 11. * The "cmake-mode.el" major Emacs editing mode no longer treats "_"   as part of words, making it more consistent with other major modes. ------------------------------------------------------------------- Changes made since CMake 3.1.0-rc2: Ben Boeckel (1):       Revert "ClearMatches: Only clear matches which were actually set" (#15261) Brad King (18):       Help: Document COMPONENT option of install(SCRIPT/CODE) (#14956)       Do not use just-built CMake to install itself when cross-compiling (#15248)       KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limit       VS: Rename VS 14 generator to 'Visual Studio 14 2015'       Help: target_include_directories does not allow target names       Utilities/Sphinx: Add missing call to note_explicit_target       FindJava: Do not accept OS X stub 'java' as Java       Fix lookup of source names after conversion to their actual case (#15259)       Help: Format set_property and get_property command docs       Help: Add 3.1 release notes for INSTALL property scope       CMakeParseImplicitLinkInfo: Fix implicit library logging       Makefile: Do not create an empty linker response file       FindOpenGL: Revert support for imported targets (#15267)       Help: Document Nsight Tegra toolchain configuration (#15276)       Utilities/Sphinx: Fix link targets for mixed-case command names       Modules: Rename FindXerces to FindXercesC       Help: Document file(GENERATE) signature option order       CMake 3.1.0-rc3 Cedric Perthuis (1):       VS: Add source file properties to set the hlsl shader entry point and model Christoph Grüninger (1):       Help: Remove duplicate '#' in CMP0053 valid character list Christopher Dembia (1):       Help: Add missing space to ctest -j option description Christopher Gittner (1):       FindwxWidgets: Add versions 3.0.1 and 3.0.2 David Demelier (2):       Help: Fix typo in cmake-compile-features(7) manual       Help: Fix typo in CMAKE_CXX_KNOWN_FEATURES docs Dmitry Polyanitsa (1):       VS: Change Nsight Tegra 2.0 Project Revision Number from 8 to 9 Fraser Hutchison (1):       Avoid if() quoted auto-dereference when checking for "MSVC" Gilles Khouzam (3):       VS: Improve error messages when compiler is not detected (#15228)       VS: Do not produce WinMD file for OBJECT libraries (#15228)       VS: Add source file property to specify Windows App deployment location Konstantin Podsvirov (1):       CPackIFW: Correction of the module documentation Nils Gladitz (2):       FindOpenMP: Use fixed form Fortran test program       Help: Document installed file property API Pascal Bach (1):       VS, WINCE: Fix entry point for Unicode builds Rolf Eike Beer (1):       FindPythonInterp: fix version component variables for Python 1.4 (#15275) Stephen Kelly (12):       Features: Don't record for AppleClang       Features: Test the CXX compiler only if it has features.       Features: Fix references to CXX compiler version in Clang-C.cmake.       Features: Record C++11 dialect switch only for GNU 4.7 and later.       Features: Fix the default C dialect for Clang and GNU.       Fix the test for running the CxxDialog unit test.       WCDH: Don't imply that MSVC is supported by the module.       WCDH: Make the header -Wundef safe for the C language.       Genex: Fix evaluation context propagation for TARGET_OBJECTS.       cmTarget: Don't allow relative paths in INTERFACE_SOURCES       Export: Disallow export of targets with INTERFACE_SOURCES       Help: Document the export limitation of INTERFACE_SOURCES.   [Less]
Posted about 10 years ago by Robert Maynard
I am proud to announce the CMake 3.1 second release candidate. Sources and binaries are available at:   http://www.cmake.org/files/v3.1/?C=M;O=D Documentation is available at:   http://www.cmake.org/cmake/help/v3.1 Release notes appear ... [More] below and are also published at   http://www.cmake.org/cmake/help/v3.1/release/3.1.0.html Some of the more significant features of CMake 3.1 are: * Windows Phone and Windows Store support has been added to  Visual Studio 11   (2012) and above Generators. * NVIDIA Nsight Tegra support has been added to  Visual Studio 10 (2010) and   above Generators. * New "target_compile_features" command allows populating target based compile   features. CMake uses this information to ensure that the compiler in use is   capable of building the target, and to add any necessary compile flags   such as -std=gnu++11 to support language features.   More information on this is found at:   - http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html * The syntax for *Variable References* and *Escape Sequences* was simplified in   order to allow a much faster implementation. See policy "CMP0053". * The "if" command no longer automatically dereferences variables named in   quoted or bracket arguments.  See policy "CMP0054". * The target property "SOURCES" now generally supports "Generator Expressions".   The generator expressions may be used in the "add_library" and   "add_executable" commands. * It is now possible to write and append to the target property "SOURCES".   The variable "CMAKE_DEBUG_TARGET_PROPERTIES" can be used to trace the   origin of sources. * CPack gained "7Z" and "TXZ" generators supporting lzma-compressed archives. * The ExternalProject module has learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The ExternalProject module ExternalProject_Add command learned a new   BUILD_ALWAYS option to cause the external project build step to run every   time the host project is built. * The ctest_coverage command learned to support Intel coverage files with the   "codecov" tool. * The ctest_memcheck command learned to support sanitizer modes, including   "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer", and   "UndefinedBehaviorSanitizer". Deprecated and Removed Features: * In CMake 3.0 the "target_link_libraries" command accidentally began allowing   unquoted arguments to use Generator Expressions containing a semicolon   separated list within them. For example:     set(libs B C)     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work. It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:     set(libs B C)     target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. CMake 3.1.0 Release Notes ************************* Changes made since CMake 3.0.0 include the following. Documentation Changes ===================== * A new "cmake-compile-features(7)" manual was added. New Features ============ Generators ---------- * A "Visual Studio 14" generator was added. Windows Phone and Windows Store ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 11 (2012) and above learned to   generate projects for Windows Phone and Windows Store.  One may set   the "CMAKE_SYSTEM_NAME" variable to "WindowsPhone" or "WindowsStore"   on the "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to   activate these platforms. Also set "CMAKE_SYSTEM_VERSION" to "8.0"   or "8.1" to specify the version of Windows to be targeted. NVIDIA Nsight Tegra ~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 10 (2010) and above learned to   generate projects for NVIDIA Nsight Tegra Visual Studio Edition.   One may set the "CMAKE_SYSTEM_NAME" variable to "Android" on the   "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to activate   this platform. Syntax ------ * The "cmake-language(7)" syntax for *Variable References* and   *Escape Sequences* was simplified in order to allow a much faster   implementation.  See policy "CMP0053". * The "if()" command no longer automatically dereferences variables   named in quoted or bracket arguments.  See policy "CMP0054". Commands -------- * The "add_custom_command()" command learned to interpret "cmake-   generator-expressions(7)" in arguments to "DEPENDS". * The "export(PACKAGE)" command learned to check the   "CMAKE_EXPORT_NO_PACKAGE_REGISTRY" variable to skip exporting the   package. * The "file(STRINGS)" command gained a new "ENCODING" option to   enable extraction of "UTF-8" strings. * The "find_package()" command learned to check the   "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" and   "CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY" variables to skip   searching the package registries. * The "install()" command learned a "MESSAGE_NEVER" option to avoid   output during installation. * The "string()" command learned a new "GENEX_STRIP" subcommand   which removes "generator expression". * The "string()" command learned a new "UUID" subcommand to generate   a univerally unique identifier. * New "target_compile_features()" command allows populating the   "COMPILE_FEATURES" target property, just like any other build   variable. * The "target_sources()" command was added to add to the "SOURCES"   target property. Variables --------- * The Visual Studio generators for versions 8 (2005) and above   learned to read the target platform name from a new   "CMAKE_GENERATOR_PLATFORM" variable when it is not specified as part   of the generator name.  The platform name may be specified on the   "cmake(1)" command line with the "-A" option, e.g. "-G "Visual   Studio 12 2013" -A x64". * The "CMAKE_GENERATOR_TOOLSET" variable may now be initialized in a   toolchain file specified by the "CMAKE_TOOLCHAIN_FILE" variable.   This is useful when cross-compiling with the Xcode or Visual Studio   generators. * The "CMAKE_INSTALL_MESSAGE" variable was introduced to optionally   reduce output installation. Properties ---------- * New "CXX_STANDARD" and "CXX_EXTENSIONS" target properties may   specify values which CMake uses to compute required compile options   such as "-std=c++11" or "-std=gnu++11". The "CMAKE_CXX_STANDARD" and   "CMAKE_CXX_EXTENSIONS" variables may be set to initialize the target   properties. * New "C_STANDARD" and "C_EXTENSIONS" target properties may specify   values which CMake uses to compute required compile options such as   "-std=c11" or "-std=gnu11". The "CMAKE_C_STANDARD" and   "CMAKE_C_EXTENSIONS" variables may be set to initialize the target   properties. * New "COMPILE_FEATURES" target property may contain a list of   features required to compile a target.  CMake uses this information   to ensure that the compiler in use is capable of building the   target, and to add any necessary compile flags to support language   features. * New "COMPILE_PDB_NAME" and "COMPILE_PDB_OUTPUT_DIRECTORY" target   properties were introduced to specify the MSVC compiler program   database file location ("cl /Fd").  This complements the existing   "PDB_NAME" and "PDB_OUTPUT_DIRECTORY" target properties that specify   the linker program database file location ("link /pdb"). * The "INTERFACE_LINK_LIBRARIES" target property now supports a   "$<LINK_ONLY:...>" "generator expression". * A new "INTERFACE_SOURCES" target property was introduced. This is   consumed by dependent targets, which compile and link the listed   sources. * The "SOURCES" target property now contains "generator expression"   such as "TARGET_OBJECTS" when read at configure time, if policy   "CMP0051" is "NEW". * The "SOURCES" target property now generally supports "generator   expression".  The generator expressions may be used in the   "add_library()" and "add_executable()" commands. * It is now possible to write and append to the "SOURCES" target   property.  The "CMAKE_DEBUG_TARGET_PROPERTIES" variable may be used   to trace the origin of sources. * A "VS_DEPLOYMENT_CONTENT" source file property was added to tell   the Visual Studio generators to mark content for deployment in   Windows Phone and Windows Store projects. * The "VS_WINRT_COMPONENT" target property was created to tell   Visual Studio generators to compile a shared library as a Windows   Runtime (WinRT) component. * The "Xcode" generator learned to check source file properties   "XCODE_EXPLICIT_FILE_TYPE" and "XCODE_LAST_KNOWN_FILE_TYPE" for a   custom Xcode file reference type. Modules ------- * The "BundleUtilities" module learned to resolve and replace   "@rpath" placeholders on OS X to correctly bundle applications using   them. * The "CMakePackageConfigHelpers" module   "configure_package_config_file()" command learned a new   "INSTALL_PREFIX" option to generate package configuration files   meant for a prefix other than "CMAKE_INSTALL_PREFIX". * The "CheckFortranSourceCompiles" module was added to provide a   "CHECK_Fortran_SOURCE_COMPILES" macro. * The "ExternalData" module learned to tolerate a "DATA{}" reference   to a missing source file with a warning instead of rejecting it with   an error.  This helps developers write new "DATA{}" references to   test reference outputs that have not yet been created. * The "ExternalProject" module learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "BUILD_ALWAYS" option to cause the external project build step   to run every time the host project is built. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "EXCLUDE_FROM_ALL" option to cause the external project target   to have the "EXCLUDE_FROM_ALL" target property set. * The "ExternalProject" module "ExternalProject_Add_Step" command   learned a new "EXCLUDE_FROM_MAIN" option to cause the step to not be   a direct dependency of the main external project target. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "DOWNLOAD_NO_PROGRESS" option to disable progress output while   downloading the source tarball. * The "FeatureSummary" module "feature_summary" API learned to   accept multiple values for the "WHAT" option and combine them   appropriately. * The "FindCUDA" module learned to support "fatbin" and "cubin"   modules. * The "FindGTest" module "gtest_add_tests" macro learned a new   "AUTO" option to automatically read the "SOURCES" target property of   the test executable and scan the source files for tests to be added. * The "FindGLEW" module now provides imported targets. * The "FindGLUT" module now provides imported targets. * The "FindHg" module gained a new "Hg_WC_INFO" macro to help run   "hg" to extract information about a Mercurial work copy. * The "FindOpenCL" module was introduced. * The "FindOpenGL" module now provides imported targets "OpenGL::GL"   and "OpenGL::GLU" when the libraries are found. * The "FindOpenMP" module learned to support Fortran. * The "FindPkgConfig" module learned to use the "PKG_CONFIG"   environment variable value as the "pkg-config" executable, if set. * The "FindZLIB" module now provides imported targets. * The "GenerateExportHeader" module "generate_export_header"   function learned to allow use with *Object Libraries*. * The "InstallRequiredSystemLibraries" module gained a new   "CMAKE_INSTALL_OPENMP_LIBRARIES" option to install MSVC OpenMP   runtime libraries. * The "UseSWIG" module learned to detect the module name from ".i"   source files if possible to avoid the need to set the   "SWIG_MODULE_NAME" source file property explicitly. * The "WriteCompilerDetectionHeader" module was added to allow   creation of a portable header file for compiler optional feature   detection. Generator Expressions --------------------- * New "COMPILE_FEATURES" "generator expression" allows setting build   properties based on available compiler features. CTest ----- * The "ctest_coverage()" command learned to read variable   "CTEST_COVERAGE_EXTRA_FLAGS" to set "CoverageExtraFlags". * The "ctest_coverage()" command learned to support Intel coverage   files with the "codecov" tool. * The "ctest_memcheck()" command learned to support sanitizer modes,   including "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer",   and "UndefinedBehaviorSanitizer". Options may be set using the new   "CTEST_MEMORYCHECK_SANITIZER_OPTIONS" variable. CPack ----- * "cpack(1)" gained an "IFW" generator to package using Qt Framework   Installer tools.  See the "CPackIFW" module. * "cpack(1)" gained "7Z" and "TXZ" generators supporting lzma-   compressed archives. * The "CPackDeb" module learned a new   "CPACK_DEBIAN_COMPRESSION_TYPE" variable to set the tarball   compression type. * The "cpack(1)" "WiX" generator learned to support a   "CPACK_WIX_ACL" installed file property to specify an Access Control   List. Other ----- * The "cmake(1)" "-E" option learned a new "env" command. * The "cmake(1)" "-E tar" command learned to support lzma-compressed   files. * *Object Libraries* may now have extra sources that do not compile   to object files so long as they would not affect linking of a normal   library (e.g. ".dat" is okay but not ".def"). * Visual Studio generators for VS 8 and later learned to support the   "ASM_MASM" language. * The Visual Studio generators learned to treat ".hlsl" source files   as High Level Shading Language sources (using "FXCompile" in   ".vcxproj" files).  A "VS_SHADER_TYPE" source file property was   added to specify the Shader Type. New Diagnostics =============== * Policy "CMP0052" introduced to control directories in the   "INTERFACE_INCLUDE_DIRECTORIES" of exported targets. Deprecated and Removed Features =============================== * In CMake 3.0 the "target_link_libraries()" command accidentally   began allowing unquoted arguments to use "generator expressions"   containing a (";" separated) list within them.  For example:      set(libs B C)      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work.  It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:      set(libs B C)      target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. * Callbacks established by the "variable_watch()" command will no   longer receive the "ALLOWED_UNKNOWN_READ_ACCESS" access type when   the undocumented "CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS" variable   is set.  Uninitialized variable accesses will always be reported as   "UNKNOWN_READ_ACCESS". * The "CMakeDetermineVSServicePack" module now warns that it is   deprecated and should not longer be used.  Use the   "CMAKE_<LANG>_COMPILER_VERSION" variable instead. * The "FindITK" module has been removed altogether. It was a thin-   wrapper around "find_package(ITK ... NO_MODULE)". This produces much   clearer error messages when ITK is not found. * The "FindVTK" module has been removed altogether. It was a thin-   wrapper around "find_package(VTK ... NO_MODULE)". This produces much   clearer error messages when VTK is not found.   The module also provided compatibility support for finding VTK 4.0.   This capability has been dropped. Other Changes ============= * The "cmake-gui(1)" learned to capture output from child processes   started by the "execute_process()" command and display it in the   output window. * The "cmake-language(7)" internal implementation of generator   expression and list expansion parsers have been optimized and shows   non-trivial speedup on large projects. * The Makefile generators learned to use response files with GNU   tools on Windows to pass library directories and names to the   linker. * When generating linker command-lines, CMake now avoids repeating   items corresponding to SHARED library targets. * Support for the Open Watcom compiler has been overhauled. The   "CMAKE_<LANG>_COMPILER_ID" is now "OpenWatcom", and the   "CMAKE_<LANG>_COMPILER_VERSION" now uses the Open Watcom external   version numbering.  The external version numbers are lower than the   internal version number by 11. * The "cmake-mode.el" major Emacs editing mode no longer treats "_"   as part of words, making it more consistent with other major modes. ------------------------------------------------------------------- Changes made since CMake 3.1.0-rc1: Brad King (22):       FindCurses: Include CheckLibraryExists before using it (#15220)       Help: Clarify add_compile_options documentation (#15225)       Help: Reference add_compile_options from add_definitions (#15225)       KWSys: Fix configure_file call to use COPYONLY, not COPY_ONLY       Qt4: Fix configure_file call to use COPYONLY, not COPY_ONLY       FindIce: Drop use of :envvar: Sphinx markup       Help: Drop TOC from latex manuals       Help: Format add_library documented list of INTERFACE commands       Help: Fix example in cmake-packages to avoid long line       FindProtobuf: Cleanup reStructuredText documentation formatting       Modules: Wrap long lines in pre-formatted documentation blocks       Help: Tell latex to use a small font for cmake-language.7 productions       Utilities/Sphinx: Fix html_favicon configuration       Help: Update 3.1 release notes for dropping of FindITK and FindVTK       Help: Wrap long lines in pre-formatted documentation blocks       Help: Fix broken cross-references reported by 'nitpicky' option       Xcode: Fix compiler path detection for iOS tools on Xcode <= 5.0 (#15237)       ExternalProject: Restore logic to not download already-existing file       Help: Link to GNUInstallDirs from CMAKE_INSTALL_PREFIX (#15246)       Utilities/Sphinx: Add index entries for cross-references       Help: Add 3.1 release note Emacs mode update       CMake 3.1.0-rc2 Chuck Atkins (1):       Workaround for short jump tables on PA-RISC. Clinton Stimpson (1):       genex: Preserve order while evaluating TARGET_OBJECTS Daniele E. Domenichelli (1):       Fix link line order when shared libraries are de-duplicated Iosif Neitzke (1):       Help: Fix configure_file call to use COPYONLY, not COPY_ONLY J Decker (1):       Watcom: Drop symfile linker option Nils Gladitz (1):       Documentation: Fix minor typo thecommand -> the command Syohei YOSHIDA (1):       cmake-mode.el: syntax of '_' should be treated as symbol Ådne Hovda (1):       KWSys SystemInformation: Check for _SC_AIX_REALMEM before using it [Less]
Posted over 10 years ago by Robert Maynard
I am proud to announce that CMake 3.1 has entered the release candidate stage. Sources and binaries are available at:   http://www.cmake.org/files/v3.1/?C=M;O=D Documentation is available at:   http://www.cmake.org/cmake/help/v3.1 Release ... [More] notes appear below and are also published at   http://www.cmake.org/cmake/help/v3.1/release/3.1.0.html Some of the more significant features of CMake 3.1 are: * Windows Phone and Windows Store support has been added to  Visual Studio 11   (2012) and above Generators. * NVIDIA Nsight Tegra support has been added to  Visual Studio 10 (2010) and   above Generators. * New "target_compile_features" command allows populating target based compile   features. CMake uses this information to ensure that the compiler in use is   capable of building the target, and to add any necessary compile flags   such as -std=gnu++11 to support language features.   More information on this is found at:   - http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html * The syntax for *Variable References* and *Escape Sequences* was simplified in   order to allow a much faster implementation. See policy "CMP0053". * The "if" command no longer automatically dereferences variables named in   quoted or bracket arguments.  See policy "CMP0054". * The target property "SOURCES" now generally supports "Generator Expressions".   The generator expressions may be used in the "add_library" and   "add_executable" commands. * It is now possible to write and append to the target property "SOURCES".   The variable "CMAKE_DEBUG_TARGET_PROPERTIES" can be used to trace the   origin of sources. * CPack gained "7Z" and "TXZ" generators supporting lzma-compressed archives. * The ExternalProject module has learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The ExternalProject module ExternalProject_Add command learned a new   BUILD_ALWAYS option to cause the external project build step to run every   time the host project is built. * The ctest_coverage command learned to support Intel coverage files with the   "codecov" tool. * The ctest_memcheck command learned to support sanitizer modes, including   "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer", and   "UndefinedBehaviorSanitizer". Deprecated and Removed Features: * In CMake 3.0 the "target_link_libraries" command accidentally began allowing   unquoted arguments to use Generator Expressions containing a semicolon   separated list within them. For example:     set(libs B C)     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:     target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work. It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:     set(libs B C)     target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. CMake 3.1.0 Release Notes ************************* Changes made since CMake 3.0.0 include the following. Documentation Changes ===================== * A new "cmake-compile-features(7)" manual was added. New Features ============ Generators ---------- * A "Visual Studio 14" generator was added. Windows Phone and Windows Store ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 11 (2012) and above learned to   generate projects for Windows Phone and Windows Store.  One may set   the "CMAKE_SYSTEM_NAME" variable to "WindowsPhone" or "WindowsStore"   on the "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to   activate these platforms. Also set "CMAKE_SYSTEM_VERSION" to "8.0"   or "8.1" to specify the version of Windows to be targeted. NVIDIA Nsight Tegra ~~~~~~~~~~~~~~~~~~~ * Generators for Visual Studio 10 (2010) and above learned to   generate projects for NVIDIA Nsight Tegra Visual Studio Edition.   One may set the "CMAKE_SYSTEM_NAME" variable to "Android" on the   "cmake(1)" command-line or in a "CMAKE_TOOLCHAIN_FILE" to activate   this platform. Syntax ------ * The "cmake-language(7)" syntax for *Variable References* and   *Escape Sequences* was simplified in order to allow a much faster   implementation.  See policy "CMP0053". * The "if()" command no longer automatically dereferences variables   named in quoted or bracket arguments.  See policy "CMP0054". Commands -------- * The "add_custom_command()" command learned to interpret "cmake-   generator-expressions(7)" in arguments to "DEPENDS". * The "export(PACKAGE)" command learned to check the   "CMAKE_EXPORT_NO_PACKAGE_REGISTRY" variable to skip exporting the   package. * The "file(STRINGS)" command gained a new "ENCODING" option to   enable extraction of "UTF-8" strings. * The "find_package()" command learned to check the   "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" and   "CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY" variables to skip   searching the package registries. * The "install()" command learned a "MESSAGE_NEVER" option to avoid   output during installation. * The "string()" command learned a new "GENEX_STRIP" subcommand   which removes "generator expression". * The "string()" command learned a new "UUID" subcommand to generate   a univerally unique identifier. * New "target_compile_features()" command allows populating the   "COMPILE_FEATURES" target property, just like any other build   variable. * The "target_sources()" command was added to add to the "SOURCES"   target property. Variables --------- * The Visual Studio generators for versions 8 (2005) and above   learned to read the target platform name from a new   "CMAKE_GENERATOR_PLATFORM" variable when it is not specified as part   of the generator name.  The platform name may be specified on the   "cmake(1)" command line with the "-A" option, e.g. "-G "Visual   Studio 12 2013" -A x64". * The "CMAKE_GENERATOR_TOOLSET" variable may now be initialized in a   toolchain file specified by the "CMAKE_TOOLCHAIN_FILE" variable.   This is useful when cross-compiling with the Xcode or Visual Studio   generators. * The "CMAKE_INSTALL_MESSAGE" variable was introduced to optionally   reduce output installation. Properties ---------- * New "CXX_STANDARD" and "CXX_EXTENSIONS" target properties may   specify values which CMake uses to compute required compile options   such as "-std=c++11" or "-std=gnu++11". The "CMAKE_CXX_STANDARD" and   "CMAKE_CXX_EXTENSIONS" variables may be set to initialize the target   properties. * New "C_STANDARD" and "C_EXTENSIONS" target properties may specify   values which CMake uses to compute required compile options such as   "-std=c11" or "-std=gnu11". The "CMAKE_C_STANDARD" and   "CMAKE_C_EXTENSIONS" variables may be set to initialize the target   properties. * New "COMPILE_FEATURES" target property may contain a list of   features required to compile a target.  CMake uses this information   to ensure that the compiler in use is capable of building the   target, and to add any necessary compile flags to support language   features. * New "COMPILE_PDB_NAME" and "COMPILE_PDB_OUTPUT_DIRECTORY" target   properties were introduced to specify the MSVC compiler program   database file location ("cl /Fd").  This complements the existing   "PDB_NAME" and "PDB_OUTPUT_DIRECTORY" target properties that specify   the linker program database file location ("link /pdb"). * The "INTERFACE_LINK_LIBRARIES" target property now supports a   "$<LINK_ONLY:...>" "generator expression". * A new "INTERFACE_SOURCES" target property was introduced. This is   consumed by dependent targets, which compile and link the listed   sources. * The "SOURCES" target property now contains "generator expression"   such as "TARGET_OBJECTS" when read at configure time, if policy   "CMP0051" is "NEW". * The "SOURCES" target property now generally supports "generator   expression".  The generator expressions may be used in the   "add_library()" and "add_executable()" commands. * It is now possible to write and append to the "SOURCES" target   property.  The "CMAKE_DEBUG_TARGET_PROPERTIES" variable may be used   to trace the origin of sources. * A "VS_DEPLOYMENT_CONTENT" source file property was added to tell   the Visual Studio generators to mark content for deployment in   Windows Phone and Windows Store projects. * The "VS_WINRT_COMPONENT" target property was created to tell   Visual Studio generators to compile a shared library as a Windows   Runtime (WinRT) component. * The "Xcode" generator learned to check source file properties   "XCODE_EXPLICIT_FILE_TYPE" and "XCODE_LAST_KNOWN_FILE_TYPE" for a   custom Xcode file reference type. Modules ------- * The "BundleUtilities" module learned to resolve and replace   "@rpath" placeholders on OS X to correctly bundle applications using   them. * The "CMakePackageConfigHelpers" module   "configure_package_config_file()" command learned a new   "INSTALL_PREFIX" option to generate package configuration files   meant for a prefix other than "CMAKE_INSTALL_PREFIX". * The "CheckFortranSourceCompiles" module was added to provide a   "CHECK_Fortran_SOURCE_COMPILES" macro. * The "ExternalData" module learned to tolerate a "DATA{}" reference   to a missing source file with a warning instead of rejecting it with   an error.  This helps developers write new "DATA{}" references to   test reference outputs that have not yet been created. * The "ExternalProject" module learned to support lzma-compressed   source tarballs with ".7z", ".tar.xz", and ".txz" extensions. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "BUILD_ALWAYS" option to cause the external project build step   to run every time the host project is built. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "EXCLUDE_FROM_ALL" option to cause the external project target   to have the "EXCLUDE_FROM_ALL" target property set. * The "ExternalProject" module "ExternalProject_Add_Step" command   learned a new "EXCLUDE_FROM_MAIN" option to cause the step to not be   a direct dependency of the main external project target. * The "ExternalProject" module "ExternalProject_Add" command learned   a new "DOWNLOAD_NO_PROGRESS" option to disable progress output while   downloading the source tarball. * The "FeatureSummary" module "feature_summary" API learned to   accept multiple values for the "WHAT" option and combine them   appropriately. * The "FindCUDA" module learned to support "fatbin" and "cubin"   modules. * The "FindGTest" module "gtest_add_tests" macro learned a new   "AUTO" option to automatically read the "SOURCES" target property of   the test executable and scan the source files for tests to be added. * The "FindGLEW" module now provides imported targets. * The "FindGLUT" module now provides imported targets. * The "FindHg" module gained a new "Hg_WC_INFO" macro to help run   "hg" to extract information about a Mercurial work copy. * The "FindOpenCL" module was introduced. * The "FindOpenGL" module now provides imported targets "OpenGL::GL"   and "OpenGL::GLU" when the libraries are found. * The "FindOpenMP" module learned to support Fortran. * The "FindPkgConfig" module learned to use the "PKG_CONFIG"   environment variable value as the "pkg-config" executable, if set. * The "FindVTK" module dropped support for finding VTK 4.0. It is   now a thin-wrapper around "find_package(VTK ... NO_MODULE)". This   produces much clearer error messages when VTK is not found. * The "FindZLIB" module now provides imported targets. * The "GenerateExportHeader" module "generate_export_header"   function learned to allow use with *Object Libraries*. * The "InstallRequiredSystemLibraries" module gained a new   "CMAKE_INSTALL_OPENMP_LIBRARIES" option to install MSVC OpenMP   runtime libraries. * The "UseSWIG" module learned to detect the module name from ".i"   source files if possible to avoid the need to set the   "SWIG_MODULE_NAME" source file property explicitly. * The "WriteCompilerDetectionHeader" module was added to allow   creation of a portable header file for compiler optional feature   detection. Generator Expressions --------------------- * New "COMPILE_FEATURES" "generator expression" allows setting build   properties based on available compiler features. CTest ----- * The "ctest_coverage()" command learned to read variable   "CTEST_COVERAGE_EXTRA_FLAGS" to set "CoverageExtraFlags". * The "ctest_coverage()" command learned to support Intel coverage   files with the "codecov" tool. * The "ctest_memcheck()" command learned to support sanitizer modes,   including "AddressSanitizer", "MemorySanitizer", "ThreadSanitizer",   and "UndefinedBehaviorSanitizer". Options may be set using the new   "CTEST_MEMORYCHECK_SANITIZER_OPTIONS" variable. CPack ----- * "cpack(1)" gained an "IFW" generator to package using Qt Framework   Installer tools.  See the "CPackIFW" module. * "cpack(1)" gained "7Z" and "TXZ" generators supporting lzma-   compressed archives. * The "CPackDeb" module learned a new   "CPACK_DEBIAN_COMPRESSION_TYPE" variable to set the tarball   compression type. * The "cpack(1)" "WiX" generator learned to support a   "CPACK_WIX_ACL" installed file property to specify an Access Control   List. Other ----- * The "cmake(1)" "-E" option learned a new "env" command. * The "cmake(1)" "-E tar" command learned to support lzma-compressed   files. * *Object Libraries* may now have extra sources that do not compile   to object files so long as they would not affect linking of a normal   library (e.g. ".dat" is okay but not ".def"). * Visual Studio generators for VS 8 and later learned to support the   "ASM_MASM" language. * The Visual Studio generators learned to treat ".hlsl" source files   as High Level Shading Language sources (using "FXCompile" in   ".vcxproj" files).  A "VS_SHADER_TYPE" source file property was   added to specify the Shader Type. New Diagnostics =============== * Policy "CMP0052" introduced to control directories in the   "INTERFACE_INCLUDE_DIRECTORIES" of exported targets. Deprecated and Removed Features =============================== * In CMake 3.0 the "target_link_libraries()" command accidentally   began allowing unquoted arguments to use "generator expressions"   containing a (";" separated) list within them.  For example:      set(libs B C)      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:${libs}>)   This is equivalent to writing:      target_link_libraries(A PUBLIC $<BUILD_INTERFACE:B C>)   and was never intended to work.  It did not work in CMake 2.8.12.   Such generator expressions should be in quoted arguments:      set(libs B C)      target_link_libraries(A PUBLIC "$<BUILD_INTERFACE:${libs}>")   CMake 3.1 again requires the quotes for this to work correctly. * Callbacks established by the "variable_watch()" command will no   longer receive the "ALLOWED_UNKNOWN_READ_ACCESS" access type when   the undocumented "CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS" variable   is set.  Uninitialized variable accesses will always be reported as   "UNKNOWN_READ_ACCESS". * The "CMakeDetermineVSServicePack" module now warns that it is   deprecated and should not longer be used.  Use the   "CMAKE_<LANG>_COMPILER_VERSION" variable instead. Other Changes ============= * The "cmake-gui(1)" learned to capture output from child processes   started by the "execute_process()" command and display it in the   output window. * The "cmake-language(7)" internal implementation of generator   expression and list expansion parsers have been optimized and shows   non-trivial speedup on large projects. * The Makefile generators learned to use response files with GNU   tools on Windows to pass library directories and names to the   linker. * When generating linker command-lines, CMake now avoids repeating   items corresponding to SHARED library targets. * Support for the Open Watcom compiler has been overhauled. The   "CMAKE_<LANG>_COMPILER_ID" is now "OpenWatcom", and the   "CMAKE_<LANG>_COMPILER_VERSION" now uses the Open Watcom external   version numbering.  The external version numbers are lower than the   internal version number by 11.     [Less]