Recent Releases
3.31.322 Dec 2024 06:45
minor feature:
Changes made since CMake 3.31.2:
Brad King (16):
VS: Factor out check for mixed C and C++ target
VS: Restore support for mixing C++23 and C in one target with clang-cl
cmLocalUnixMakefileGenerator3: Simplify progress command generation
Makefile: per-directory codegen target
Makefile: Enable progress messages for codegen target
cmGlobalNinjaGenerator: Remove unused local variable
cmGlobalNinjaGenerator: Remove unnecessary local variable
cmGlobalNinjaGenerator: local variable name for codegen target
cmGlobalNinjaGenerator: Clarify order of codegen build statement logic
cmGlobalNinjaGenerator: Simplify per-directory configuration list lookup
Ninja: Add missing top-level codegen dependencies on per-directory codegen
Tests/RunCMake/CXXModules: Rename FileSetModules cases to be more specific
target_sources: Improve error message for CXX_MODULES on INTERFACE libraries
Help: Update link to UTF-8 RFC 3629
ci: update macOS jobs to use Xcode 16.2
CMake 3.31.3.
Craig Scott (1):
install: Restore treatment of DESTINATION as a single-valued keyword.
3.31.207 Dec 2024 11:45
minor feature:
Changes made since CMake 3.31.1:
Brad King (7):
AIX: Disallow TARGET_SONAME_ genex for AIX_SHARED_LIBRARY_ARCHIVE targets
AIX: Propagate AIX_SHARED_LIBRARY_ARCHIVE through exports
GNU linker: Use single-argument form of --dependency-file flag
fileapi: Do not expose flags for linker-generated dependencies
LINK_OPTIONS: crash on empty LINKER: pre ci: Update to ROCm 6 HIP on Fedora 41
CMake 3.31.2.
Brice Decaestecker (1):
Tutorial: Restore TODO 4 comment in step 7.
Marc Chevrier (2):
Intel/Classic: deactivate linker dependency file support
FindPython: Ensure SABIModule is found in all cases.
Orkun Tokdemir (3):
Autogen: Restore lt;target_name gt;_autogen_timestamp_deps target
Autogen: Ninja Multi-Config dependency graph regression
Autogen: Revert adding ui files to byproducts of the timestamp target.
cfis (1):
FindRuby: Add support for 3.4.
3.31.029 Nov 2024 06:45
minor feature:
CMake 3.31 Release Notes
Changes made since CMake 3.30 include the following.
New Features.
Presets.
cmake-presets(7)" files may now include comments using the key.
comment" at any level within the JSON object to provide
documentation.
cmake-presets(7)" files may now request graphviz output using the.
graphviz" key in a configure preset.
Generators.
The Ninja Generators and Makefile Generators now produce a "codegen"
build target. See policy "CMP0171". It drives a subset of the
build graph sufficient to run custom commands created with.
add_custom_command()"'s new "CODEGEN" option.
Command-Line.
The "cmake --workflow" mode now accepts a preset name as the first
argument, allowing the simpler command line "cmake --workflow.
lt;preset gt;".
The "cmake -LR A H " option was added to list cache entries whose
names match a regular expression.
Compilers.
The LFortran compiler is now supported with "compiler id".
LFortran".
Commands.
The "add_custom_command()" command gained a "CODEGEN" option to mark
a custom command's outputs as dependencies of a "codegen" target.
See policy "CMP0171".
The "cmake_pkg_config()" command was added as an endpoint for using
CMake's native pkg-config format parser. The only supported option
in this release is "EXTRACT", which provides low-level access to the
values produced by parsing a pkg-config file. For most users, this
is not yet a suitable replacement for the "FindPkgConfig" module.
The "file(ARCHIVE_CREATE)" command gained a "WORKING_DIRECTORY"
option to specify a working directory for the archiving process.
The "file(MAKE_DIRECTORY)" command gained a "RESULT" option to
capture failure in a result variable.
The "install(FILES)" and "install(DIRECTORY)" commands' "TYPE"
argument gained support for a "LIBEXEC" type.
Variables.
The "CMAKE_AIX_SHARED_LIBRARY_ARCHIVE" variable and corresponding.
AIX_SHARED_LIBRARY_ARCHIVE" target property were added to create
shared libraries on AIX as shared library archives.
The "CMAKE_EXPORT_BUILD_DATABASE
3.30.425 Nov 2024 14:45
minor feature:
Changes made since CMake 3.30.3:
Brad King (4):
gitlab-ci: update macOS jobs to use Xcode 16.0
ci: Run RunCMake.ExternalProject serially in macos-x86_64 Xcode job
Help: Add 3.30 release notes for project variable updates
CMake 3.30.4.
Craig Scott (4):
Help: file(CONFIGURE) only updates output file timestamp if it changes
FetchContent: Don't update verify script timestamp if it doesn't change
Help: State valid scopes for using proj_SOURCE_DIR and proj_BINARY_DIR
project: Only define non-cache vars if already defined.
Diego Dassie (1):
CPack/NuGet: Add native0.0 to build dependencies in groups.
Dilshod Mukhtarov (1):
librhash: aligned_alloc is not available with glibc lt; 2.16.
Hermann von Kleist (4):
FindMatlab: Only consider versioned MCR subdirectory if it exists
FindMatlab: Add support for MCR distributions without mex.h
FindMatlab: Cache whether MATLAB root contains MCR or MATLAB
FindMatlab: Search mex and mx libraries for MCR.
Marc Chevrier (1):
FindPython: ensure all ABI are searched by default.
scivision (1):
FindMatlab: Add R2024b version map.
3.30.322 Nov 2024 18:05
minor feature:
Changes made since CMake 3.30.2:
Brad King (7):
file(DOWNLOAD): User-Agent to use run-time curl version
curl: Avoid using HTTP/2 with curl 8.7.x due to in error codes
FindJNI: Improve output on macOS if Xcode is not installed
ci: update to use ninja 1.12.1
gitlab-ci: update macOS jobs to use Xcode 15.4
gitlab-ci: Update Windows builds to MSVC 14.41 toolset
CMake 3.30.3.
Christoph Grüninger (1):
cppdap: include/dap/network.h: add lt;stdint.h gt; include for GCC 15.
Even Rouault (1):
FindPython: regression of NumPy detection with Intel MKL library.
K. R. Walker (1):
CPack/NSIS: matching of reserved component names.
Lars Schmertmann (1):
Android: build with NDK 27.
Marc Chevrier (1):
FindPython: ensure a usable environment is set for the free threaded Python.
Robert Maynard (1):
project: non cache lt;project gt; prevariables are also created.
WANG Xuerui (1):
FindJNI: Support finding libjvm.so for all OpenJDK variants.
3.30.214 Sep 2024 11:45
minor feature:
Changes made since CMake 3.30.1:
Ben Boeckel (1):
cmCPackExternalGenerator: ensure JSON is written before running the script.
Brad King (6):
ci: Update CMake version to 3.30.1
Xcode: Restore support for CMAKE_OSX_ARCHITECTURES= (ARCHS_STANDARD)
Help: typo in add_test documentation
Tests/RunCMake/file-DOWNLOAD: Update bad hostname message for curl 8.9
Tests: Restore suppression of xcodebuild error with Xcode Command-Line Tools
CMake 3.30.2.
Craig Scott (3):
ExternalProject: Don't add SVN auth args if not set
ExternalProject: bad indenting for uses_terminal
FetchContent: Ensure can_fetch_default is set early enough.
Evan Wilde (1):
Swift: INSTALL_NAME_DIR under CMP0157 NEW behavior.
Marc Chevrier (1):
FindPython: usage of cached variable _Python_EXECUTABLE_DE.
ojab ojab (1):
bootstrap: Restore support for system jsoncpp and uv without pkg-config.
3.30.102 Aug 2024 18:25
minor feature:
Changes made since CMake 3.30.0:
Brad King (8):
ci: Update CMake version to 3.30.0
Tests: RunCMake.ExternalProject when git is not available Restore support for exporting INTERFACE with missing dependencies
FindMatlab: Restore support for finding Matlab without any languages
libuv: backport IDNA input/output hardening macOS: Work around in system curl 8. 3,4,5 LibreSSL backend
VS: Restore support for CUDA with no optimization flags
CMake 3.30.1.
Craig Scott (1):
FetchContent: command echo for DEand TRACE log levels.
Pavel Liavonau (1):
IntelLLVM: Update toolchain layout for 2024+ versions.
Robert Maynard (1):
Evaluation of TRANSITIVE_LINK_PROPERTIES isn't considered a usage.
3.29.724 Jul 2024 01:45
minor feature:
Changes made since CMake 3.29.6:
Brad King (5):
Ctest: spurious build failures with CTEST_USE_LAUNCHERS on Windows
Libuv: macos: reap child processes more reliably when using kqueue
Libuv: macos: restore use of kqueue instead of posix poll
VS: '-T version=14.4x' under VS 17.1x
CMake 3.29.7.
3.30.004 Jul 2024 02:45
minor feature:
CMake 3.30 Release Notes
Changes made since CMake 3.29 include the following.
New Features.
Presets.
cmake-presets(7)" files now support schema version "9". "include"
fields now expand all macros except " env " and preset-specific
macros, i.e., those derived from the fields inside a preset's
definition.
File-Based API.
The "cmake-file-api(7)" "cmakeFiles" version 1 object's "version"
field has been updated to 1.1. It gained a "globsDependent" field
to report "file(GLOB)" calls using "CONFIGURE_DEPENDS".
Generators.
Visual Studio Generators now add "UseDeLibraries" indicators to.
vcxproj" files to denote which configurations are de configurations. See policy "CMP0162".
Languages.
The "Compile Features" functionality now implements support for the.
cxx_std_26" and "cuda_std_26" meta-features to indicate that the
compiler mode must be at least C++26. These meta-features were first
documented by CMake 3.25, but were not fully implemented.
Commands.
The "add_library()" command, on platforms that do not support shared
libraries, now rejects creation of shared libraries instead of
automatically converting them to static libraries. See policy.
CMP0164".
The "enable_language()" command now fails with an error if it is
called before the first "project()" call. See policy "CMP0165".
The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained a.
TLS_VERSION lt;min gt;" option to specify the minimum TLS version for
connections to "https://" URLs.
Variables.
The "CMAKE_ lt;LANG gt;_STANDARD_LATEST" variable was added to describe
the latest " lt;LANG gt;" language standard CMake supports for the
selected compiler.
The "CMAKE_TLS_VERIFY" environment variable was added as a fallback
to the existing "CMAKE_TLS_VERIFY" variable. It specifies whether
to verify the server certificate for "https://" URLs by default.
The "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION" environment
variable were added to specify a default minimum TLS version for
connections to "https://" URLs by the "file
3.29.618 Jun 2024 17:45
minor feature:
Changes made since CMake 3.29.5:
Brad King (3):
Clang: Drop non-existent -fno-ansi-escape-codes flag
VS: Quote custom command arguments containing semicolons
CMake 3.29.6.
3.29.407 Jun 2024 06:25
minor feature:
Changes made since CMake 3.29.3:
Ben Boeckel (1):
cmCxxModuleMapper: add a query for the open mode for the modmap.
Brad King (8):
ExternalProject: Restore support for Xcode with an effective platform
CMP0037: Restore diagnostic message for invalid ALIAS target names
libuv: win/spawn: disable extra-file-descriptor support not needed by CMake
VS: compiler identification of nvcc with unsupported host compiler
Tests/RunCMake/execute_process: Check STARTUPINFOW reserved members
KWSys: ConsoleBuf: test case when running under Windows Terminal
Help: Update MSVC_VERSION range for VS 17.10's MSVC 14.40 toolset
CMake 3.29.4.
3.29.308 May 2024 23:25
minor feature:
Changes made since CMake 3.29.2:
Ben Boeckel (7):
Tests/CXXModules: test exporting modules which include headers
cmGeneratorTarget: add the original target as a COMPILE_ONLY link
cmGeneratorTarget: add method to get a filesystem-safe export name
cxxmodules: use filesystem-safe export names in filenames
cmGeneratorTarget: add a target-level query for "needs dyndep"
VS: set ScanSourceForModuleDependencies at vcxproj level
cmDyndepCollation: look at all `export(TARGETS)` calls.
Brad King (4):
Tests/RunCMake/CMakePackage: Define variable r to where it is used
FindBoost: Add support for Boost 1.85
cxxmodules: Do not scan sources while testing the compiler
CMake 3.29.3.
Craig Scott (4):
Help: CMakePackageConfigHelpers typos, grammar and formatting
Help: Add missing section heading for apple architecture selection
generate_apple_architecture_selection_file: Avoid early returns
generate_apple_*_selection_file: Save/restore PACKAGE_PRE_DIR.
Raul Tambre (1):
Help/OBJC_STANDARD: Document Objective C17 and C23 support.
Mehdi Chinoune (1):
FindHDF5: detection of versions with more than three components.
3.29.213 Apr 2024 02:25
minor feature:
Changes made since CMake 3.29.1:
Brad King (4):
Tests/RunCMake/CompilerChange: Simplify test cases
regression on reconfigure with unnormalized -DCMAKE_ lt;LANG gt;_COMPILER=
CMakePackageConfigHelpers: Restore undocumented PACKAGE_PRE_DIR variable
CMake 3.29.2.
Evan Wilde (1):
Swift: Ninja: Remove module dependency for executables.
Kai Pastor (1):
FindJasper: Jasper::Jasper IMPORTED_CONFIGURATIONS.
Matthias Isele (2):
FindOpenSSL: Update layout for Shining Light Productions 32-bit package
FindOpenSSL: Update layout for Shining Light Productions delibraries.
3.29.105 Apr 2024 06:25
minor feature:
Changes made since CMake 3.29.0:
Ben Boeckel (2):
ExternalProject: add an example of `LIST_SEPARATOR` usage
ExternalProject: reword `LIST_SEPARATOR` to indicate what it *does*.
Brad King (11):
IntelLLVM: Revert accidental use of -external:I with Fortran compilers
libuv: Avoid posix_spawn on macOS lt; 10.8
FindPkgConfig: Avoid finding Strawberry Perl's pkg-config
libuv: process: de-duplicate conditions for using kqueue
libuv: darwin: group kqueue-specific definitions together
libuv: macos: use posix poll instead of kqueue
FindMPI: finding IntelLLVM wrappers on Windows
ctest: Restore enforcement of RESOURCE_LOCK test property
ARTOS: Add support for finding library files named with 'lib' pre IntelLLVM: link flags with Visual Studio generators
CMake 3.29.1.
Charlotte Koch (1):
cmSystemTools: compilation on DragonFly BSD.
Craig Scott (8):
Help: Remove stray formatting for try_compile() LINKER_LANGUAGE keyword
try_compile(): Include languages with _ or - when passing linker vars
Help: Grammar, typos and wording improvements for linker variables
Help: Add custom linker example for CMAKE_ lt;LANG gt;_USING_LINKER_ lt;TYPE gt;
Help: CMAKE_ lt;LANG gt;_USING_LINKER_ lt;TYPE gt; can be a list of flags
Help: Restructure and improve LINKER_TYPE docs
CMakePackageConfigHelpers: Remove unused variable
CMakePackageConfigHelpers: Use unique variable name for pkg pre.
Evan Wilde (1):
Swift: Add CMAKE_LINKER_TYPE support.
FeRD (Frank Dana) (1):
Help: location of install() note about superseded commands.
scivision (2):
FindMatlab: R2024a version map
Help: emphasize need for VS Integrations with oneAPI Fortran.
3.29.023 Mar 2024 10:05
minor feature:
CMake 3.29 Release Notes
Changes made since CMake 3.28 include the following.
New Features.
Command-Line.
cmake(1)" "-E cat" can now print the standard input by passing the.
argument.
Generators.
Visual Studio Generators now support selecting between the Intel
oneAPI Fortran compiler ("ifx") and the Intel classic Fortran
compiler ("ifort") using a "fortran=" field in.
CMAKE_GENERATOR_TOOLSET".
File-Based API.
The "cmake-file-api(7)" "codemodel" version 2 "version" field has
been updated to 2.7.
The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
a new "launchers" field.
Compilers.
The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
used to compile "CUDA" language sources.
Compilers targeting the GNU ABI on Windows (MinGW) may now be used
to compile Objective C ("OBJC") and Objective C++ ("OBJCXX"). These
include GNU compilers ("gcc" and "g++") and the LLVM/Clang GNU-like
frontends ("clang" and "clang++").
TI Clang-based compilers are now supported with compiler id.
TIClang".
Commands.
The add_custom_command(TARGET) signature now supports adding build
events through Alias Targets.
The "cmake_language(EXIT)" sub-command was added to terminate "cmake.
P" scripts with a specified exit code.
The "export(SETUP)" sub-command was added to configure export sets.
Its "TARGET" option's "XCFRAMEWORK_LOCATION" setting specifies the
location of a ".xcframework" that can be substituted for an
installed target.
The "if()" command gained new tests "IS_READABLE", "IS_WRITABLE" and.
IS_EXECUTABLE" to check file or directory permissions.
Variables.
The "CMAKE_INSTALL_PRE" environment variable was added to provide
a default value for the "CMAKE_INSTALL_PRE" variable.
The "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
target property were added to specify what linker to use with some
toolchains.
The "CMAKE_ lt;LANG gt;_COMPILER_LINKER".
CMAKE_ lt;LANG gt;_COMPILER_LINKER_ID".
CMAKE_ lt;LANG gt;_COMPILER_LINKER_VERSION" and.
CMAKE_ lt;LANG gt;
3.28.308 Feb 2024 02:05
minor feature:
Brad King (5):
zlib: Fix 1.2.13 version and date notice
Tests: Add case covering PCH in a unity build
cmGlobalGenerator: Add unity/pch sources after computing compile features
Unity: Clarify source comments on unity build transformation
CMake 3.28.3
zlib upstream (1):
zlib 2022-10-12 (04f42cec)
3.22.108 Dec 2021 14:45
minor feature:
3.22.019 Nov 2021 03:23
minor feature:
3.21.428 Oct 2021 06:45
minor feature:
Changes in 3.21.4 since 3.21.3:
Ben Boeckel (2):
Tests/RunCMake/Autogen: test CMP0111 behavior.
cmQtAutoGenInitializer: support IMPLIB-only imported targets.
Brad King (11):
Tests: RunCMake.XcodeProject XcodeIOSInstallCombined cases for Xcode 13.0.
gitlab-ci: update macOS jobs to use Xcode 13.0.
bootstrap: Enable cmake_language command to support cmake-gui with Qt 6.2.
ci: Enable CTest.Update CVS,SVN,HG tests.
MSVC: Tolerate cxx_std_23 feature on older compiler versions.
zstd: Backport for SIGBUS on armv6 from zstd 1.5.0.
IRSL: discovery of VS 2022 v143 toolset redistributables for preview 5.
Source: typo in _WIN32 preprocessor checks.
BinUtils: Avoid llvm-strip versions older than Clang 11.
VS: Update Visual Studio 17 2022 generator for the Release Candidates.
CMake 3.21.4.
Erlend E. Aasland (1):
CPack/IFW: Add support for QtIFW 4.1.
Gregor Jasny (1):
Tests: Specify destination for Xcode scheme.
Michael Hirsch (1):
FindMatlab: Add R2021b = gt; 9.11 version.
Robert Maynard (1):
NVHPC: only use '-MD' for the C and CXX languages.
Seth R Johnson (1):
FortranCInterface: regression in timestamp check.
Sylvain Joubert (1):
TestDriver: old-style-cast warning in C++ mode.
Timo Röhling (1):
GNUInstallDirs: misinterpretation of Debian Policy on LIBEXECDIR.
3.21.321 Sep 2021 21:05
minor feature:
Changes in 3.21.3 since 3.21.2:
Brad King (10):
FindBoost: Add support for Boost 1.77.
MSVC: MSVC_TOOLSET_VERSION for VS 2022 v143 toolset.
IRSL: Add discovery of VS 2022 v143 toolset redistributables.
gitlab-ci: Update Windows builds to MSVC 19.29-16.11 toolset.
VS: managed C++ project generation for VS 2022.
VS: Update Visual Studio 17 2022 generator for Preview 4.
HIP: Detect ROCm path earlier.
HIP: Remove ROMClang compiler id and use Clang directly.
HIP: Simplify detection of HIP runtime CMake package.
CMake 3.21.3.
Haibo Huang (1):
Android: Restore searching PATH for executables.
Jean-Marc Hengen (1):
IAR: Restore support for projects not enabling policy CMP0057.
Marc Chevrier (1):
FindPython: Ensure homebrew on Mac M1 is used.
Martin Kojtal (1):
Ninja: ARMClang paths for Windows.
Zack Galbreath (1):
HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES.
ulatekh (1):
KWSys: SystemTools: Ensure Windows Vista APIs are available before using them.
3.21.226 Aug 2021 13:45
minor feature:
3.21.128 Jul 2021 14:25
minor feature:
3.21.015 Jul 2021 14:05
minor feature:
3.20.522 Jun 2021 19:25
minor feature:
Changes in 3.20.5 since 3.20.4:
Brad King (7):
gitlab-ci: update macOS jobs to use Xcode 12.5.
cmGlobalVisualStudio10Generator: Move static functions to anonymous namespace.
cmGlobalVisualStudio10Generator: Adopt GetVSInstanceVersion method.
VS: Do not apply '/external:W*' flag table mapping on VS lt; 16.10.
Tests: xcode version detection for Xcode 13 on ARM.
Help: Add 3.20 release note section for 3.20. 3,4,5 .
CMake 3.20.5.
Craig Scott (1):
ExternalProject: Use ref 0 to avoid MSYS/Cygwin shell substitutions.
Kyle Edwards (1):
CMake: Allow override of unexpected non-flow-control commands.
3.20.415 Jun 2021 13:05
minor feature:
3.20.328 May 2021 16:05
minor feature:
Changes in 3.20.3 since 3.20.2:
Brad King (7):
Help: Use relative path for IDE Integration guide link to preset schema.
BinUtils: Use more-private temporary variable names.
ObjectiveC: Respect OSX_ARCHITECTURES for OBJC.
FindBoost: Add support for Boost 1.76.
Ninja: Restore support for Fortran in a symlinked build tree.
Utilities/Sphinx: Update man page config for Sphinx 4.
CMake 3.20.3.
Craig Scott (2):
ExternalProject: Ensure git fetch if updating to hash we don't have yet.
ExternalProject: Only add git config setting with git 1.7.7 or later.
Kyle Edwards (2):
Ninja Multi-Config: Split long command lines by config.
CMP0082: Check EXCLUDE_FROM_ALL property at generate time.
Raul Tambre (3):
GNU: C++17 default version.
GNU: Final C++20 flags.
GNU: C++23 support.
Robert Maynard (6):
CUDA: improve regex for CUDA Toolkit root from nvcc verbose output.
cmCommandLineArgument: Correctly record parsing failures.
cmake: `--build` and `--install` error out when encountering bad flags.
cmCommandLineArgument: Provide more information syntax error messages.
NVHPC: Support explicit language flags.
NVHPC: Support Ninja dependency scanning.
3.20.230 Apr 2021 21:25
minor bugfix:
ci: pay attention to the machine load when running tests
ci: limit builds by machine load
Help: Add 3.20 release note for error on unknown arguments
gitlab-ci: equally delay all jobs on integration branches
Autogen: Restore mocs_compilation in OBJECT libraries
Help: Fix typos in cmake-compile-features(7)
Help: Do not recommend WCDH in cmake-compile-features(7)
Intel: Update Classic compiler version detection for 2021
IntelLLVM: Add special case for ifx 2021.1 version extraction
CMake 3.20.2
Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform
Help: Document special cases for if(IS_ABSOLUTE)
Add missing 'not' in error messages
KWIML 2021-04-21 (49d91529)
autogen: fix race in depfile parsing
Ninja Multi-Config: Correctly generate POST_BUILD custom targets
BinUtils: Restore toolchain prefix detection from compiler name 'c++'
OpenBSD: Fix system feature definitions
3.7.013 Nov 2016 02:06
major feature:
CMake now supports Cross Compiling for Android with simple toolchain files.
The Ninja generator learned to conditionally support Fortran when using a ninja tool that has the necessary features. See generator documentation for details.
The if() command gained new boolean comparison operations LESS_EQUAL , GREATER_EQUAL , STRLESS_EQUAL , STRGREATER_EQUAL , VERSION_LESS_EQUAL , and VERSION_GREATER_EQUAL .
The try_compile() command source file signature now honors configuration-specific flags (e.g. CMAKE__FLAGS_DEBUG ) in the generated test project. Previously only the default such flags for the current toolchain were used. See policy CMP0066 .
Toolchain files may now set CMAKE_EXE_LINKER_FLAGS_INIT , CMAKE_SHARED_LINKER_FLAGS_INIT , and CMAKE_MODULE_LINKER_FLAGS_INIT variables to initialize the CMAKE_EXE_LINKER_FLAGS , CMAKE_SHARED_LINKER_FLAGS , and CMAKE_MODULE_LINKER_FLAGS cache entries the first time a language is enabled in a build tree.
CTest now supports test fixtures through the new FIXTURES_SETUP , FIXTURES_CLEANUP and FIXTURES_REQUIRED test properties. When using regular expressions or rerun-failed to limit the tests to be run, a fixture s setup and cleanup tests will automatically be added to the execution set if any test requires that fixture.
We no longer provide Linux i386 binaries for download from cmake.org for new versions of CMake.
Vim support files cmake-indent.vim , cmake-syntax.vim , and cmake-help.vim have been removed in favor of the files now provided from the vim-cmake-syntax project.
Support for building CMake itself with some compilers was dropped:
Visual Studio 7.1 and 2005 superseded by VS 2008 and above
MinGW.org mingw32 superseded by MSYS2 mingw32 and mingw64
CMake still supports generating build systems for other projects using these compilers.
3.1.207 Feb 2015 16:25
minor bugfix:
Fix regression in default configuration selection.
Fix packaging of source tarballs with symbolic links.
KWSys Directory: Check opendir return value before using it.
Help: Clarify status of link_libraries command.
Normalize OBJECT_DEPENDS paths to match custom commands.
MSVC: Fix initialization of RelWithDebInfo shared library link flags.
Fix detection of OpenSSL 1.0.2.
Update GNU make error message matching.
3.1.018 Dec 2014 15:15
major feature:
A new cmake-compile-features(7) manual was added.
The Visual Studio 14 2015 generator was added.
Generators for Visual Studio 11 (2012) and above learned to generate projects for Windows Phone and Windows Store.
The cmake-language(7) syntax for Variable References and Escape Sequences was simplified in order to allow a much faster implementation.
The if() command no longer automatically dereferences variables named in quoted or bracket arguments.
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.
Many more additions and changes.
3.0.106 Aug 2014 12:26
minor bugfix:
Several bugfixes were applied. Semicolon in AIX compiler warning FAIL_REFEX caused it to match other output.
Linking into a static library was broken for Xcode 6.
CMake build error on QNX.
Fix CMakeExpandImportedTargets to avoid Error on non-existent target in get_target_property.
cannot build targets 'test' or 'package' after bootstrapping (Brad King).
UseSWIG.cmake used wrong filenames for Python.
Fortran modules for GNU fortran were not correctly identified.
3.0.009 Jul 2014 23:59
major feature:
The CMake language has been extended with *Bracket Argument* and *Bracket Comment* syntax inspired by Lua long bracket. While the CMake documentation has been converted to reStructuredText.