Version | Change log |
CMake 4.0.3 Jun 13, 2025 |
Ben Boeckel (1): Help/cmake-cxxmodules: note GCC 15 support Brad King (12): Help: Add 4.0 release note about file path case sensitivity on Windows Normalize PWD environment variable before using it CMakeDetermineCompilerABI: Comment implicit link directory exclusion macOS: Restore RPATH entry for libraries linked from /usr/local/lib ci: Tell CudaOnly.Architecture test what specific architecture to use ci: add tags to tie CUDA jobs to runners with hardware supporting them CUDA/Clang: Prefer NVCC’s default architecture for each CUDA Toolkit version Tests: Fix RunCMake.CTestCommandLine under ctest -T Coverage AUTOMOC: Avoid compiler warnings while computing predefines Help: Fix wording in tutorial workflow description macOS: Restore support for LLVM/Clang without explicit CMAKE_OSX_SYSROOT CMake 4.0.2 Craig Scott (2): Help: VS_DEBUGGER_WORKING_DIRECTORY precedence Xcode: Use DEBUGGER_WORKING_DIRECTORY as a fallback for scheme work dir Gregor Jasny (1): macOS: Reliably apply workaround for system curl 8.{3,4,5} LibreSSL backend Marc Chevrier (3): Ninja generator: restore correct encoding for policy CMP0181=OLD FindPython: fix the definition of SABI artifacts Help: block() command: enhance the PROPAGATE example Matthew Woehlke (3): Help: Fix overlapping text in footnotes CPS: Fix mangling of relative requirement names find_package: Fix performance regression in 4.0.0 release Raul Tambre (1): Clang: MSVC C++26 support Robert Maynard (3): ci: Tell CudaOnly.CompileFlags test what specific architecture to use CUDA/Clang: Update architectures supported by CUDA 12.8 CUDA: Add CUDA 12.9 new architectures and family syntax |
CMake 4.0.2 May 5, 2025 |
Brad King (16): Help: Document CMAKE_UNITY_BUILD_RELOCATABLE variable Help: Add 4.0 release note for UNITY_BUILD_RELOCATABLE Help: Clarify wording of UNITY_BUILD_RELOCATABLE path alternatives get_filename_component: Restore lexical preprocessing of REALPATH for compat ci: update macOS jobs to use Xcode 16.3 FindXCTest: Pass -bundle_loader linker flag for test module more reliably Restore expansion of leading ‘~’ as home directory in input paths Tests: Isolate RunCMake.LinkWarningAsError from -Werror flags in environment Source: Simplify FindProgram calls cmSystemTools: Restore FindProgram look-up of on-disk case on Windows cmSystemTools: Simplify call to FindProgram for our own executable Help: Document CMAKE_OSX_SYSROOT default change in 4.0 cmXCodeObject: Drop unused CoreFoundation header FindXCTest: Fix test module generation for Xcode 16 Help: Add note about /usr/local/include on macOS without CMAKE_OSX_SYSROOT CMake 4.0.1 Craig Scott (3): Help: Fix inaccurate wording for CMAKE_XCODE_SCHEME_… variables Help: Improve wording of docs related to MSVC runtime checks Help: Fix typo in 4.0 release notes for CPack archive generator Matthew Woehlke (2): find_package: Restore component requirements in nested calls find_package: Add minimal support for CPS multiple inclusion Sergey Fedorov (2): macOS: Define _DARWIN_C_SOURCE in more sources Source: Include specific CoreFoundation headers instead of umbrella header |
CMake 4.0.1 Apr 11, 2025 |
New Features: File-Based API: The cmake-file-api(7) "codemodel" version 2 version field has been updated to 2.8. The cmake-file-api(7) "codemodel" version 2 "target" object gained a new debugger field. Command-Line: The cmake --link-no-warning-as-error option was added to suppress the effects of the LINK_WARNING_AS_ERROR target property and CMAKE_LINK_WARNING_AS_ERROR variable. The cmake --project-file option was added to specify an alternate filename for CMakeLists.txt files. This is intended for temporary use by developers during an incremental transition and not for publication of a final product. CMake will always emit a warning when the project file is anything other than CMakeLists.txt. Commands: The target_link_libraries() command now supports the LINKER: prefix. Variables: The AIX and CMAKE_HOST_AIX variables are now set to true when the target or host system is AIX, respectively. Linker flag variables learned to support the LINKER: prefix: CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_<CONFIG> CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_<CONFIG> CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_<CONFIG> See policy CMP0181. The CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL variable was added to specify the execute_process() command's default COMMAND_ERROR_IS_FATAL behavior. The CMAKE_<LANG>_LINK_MODE and CMAKE_<LANG>_DEVICE_LINK_MODE variables were added to provide information on how the link step is done. The CMAKE_LINK_WARNING_AS_ERROR variable and corresponding LINK_WARNING_AS_ERROR target property were added to link using a linker-specific flag to treat warnings as errors. The CMAKE_MSVC_RUNTIME_CHECKS variable and MSVC_RUNTIME_CHECKS target property were introduced to select runtime checks for compilers targeting the MSVC ABI. See policy CMP0184. The CMAKE_POLICY_VERSION_MINIMUM variable was added to help packagers and end users try to configure existing projects that have not been upd |
CMake 4.0.0 Mar 29, 2025 |
New Features: File-Based API: The cmake-file-api(7) "codemodel" version 2 version field has been updated to 2.8. The cmake-file-api(7) "codemodel" version 2 "target" object gained a new debugger field. Command-Line: The cmake --link-no-warning-as-error option was added to suppress the effects of the LINK_WARNING_AS_ERROR target property and CMAKE_LINK_WARNING_AS_ERROR variable. The cmake --project-file option was added to specify an alternate filename for CMakeLists.txt files. This is intended for temporary use by developers during an incremental transition and not for publication of a final product. CMake will always emit a warning when the project file is anything other than CMakeLists.txt. Commands: The target_link_libraries() command now supports the LINKER: prefix. Variables: The AIX and CMAKE_HOST_AIX variables are now set to true when the target or host system is AIX, respectively. Linker flag variables learned to support the LINKER: prefix: CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_<CONFIG> CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_<CONFIG> CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_<CONFIG> See policy CMP0181. The CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL variable was added to specify the execute_process() command's default COMMAND_ERROR_IS_FATAL behavior. The CMAKE_<LANG>_LINK_MODE and CMAKE_<LANG>_DEVICE_LINK_MODE variables were added to provide information on how the link step is done. The CMAKE_LINK_WARNING_AS_ERROR variable and corresponding LINK_WARNING_AS_ERROR target property were added to link using a linker-specific flag to treat warnings as errors. The CMAKE_MSVC_RUNTIME_CHECKS variable and MSVC_RUNTIME_CHECKS target property were introduced to select runtime checks for compilers targeting the MSVC ABI. See policy CMP0184. The CMAKE_POLICY_VERSION_MINIMUM variable was added to help packagers and end users try to configure existing projects that have not been upd |
CMake 3.31.6 Mar 1, 2025 | Some implementation updates were made to support ecosystem changes and/or fix regressions. |
CMake 3.31.5 Feb 6, 2025 |
Brad King (5): Clang/CUDA: Fix language-wide flags when linking .so with compiler driver Tests: Update expected results for ninja post-1.12 development FindMatlab: Fix multi-signature function documentation anchors WINDOWS_EXPORT_ALL_SYMBOLS: Fix vftable symbol export on ARM64EC CMake 3.31.5 Felipe Torrezan (1): IAR: decouple linker location from toolkit's bin dir Martin Duffy (1): install: Generate InstallScripts.json in consistent location |
CMake 3.31.4 Jan 11, 2025 |
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: Fix per-directory codegen target Makefile: Enable progress messages for codegen target cmGlobalNinjaGenerator: Remove unused local variable cmGlobalNinjaGenerator: Remove unnecessary local variable cmGlobalNinjaGenerator: Fix 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 install: Restore treatment of DESTINATION as a single-valued keyword |
CMake 3.31.3 Dec 25, 2024 |
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: Fix per-directory codegen target Makefile: Enable progress messages for codegen target cmGlobalNinjaGenerator: Remove unused local variable cmGlobalNinjaGenerator: Remove unnecessary local variable cmGlobalNinjaGenerator: Fix 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 install: Restore treatment of DESTINATION as a single-valued keyword |
CMake 3.31.2 Dec 6, 2024 |
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: Fix crash on empty LINKER: prefix ci: Update to ROCm 6 HIP on Fedora 41 CMake 3.31.2 Tutorial: Restore TODO 4 comment in step 7 Intel/Classic: deactivate linker dependency file support FindPython: Ensure SABIModule is found in all cases Autogen: Restore <target_name>_autogen_timestamp_deps target Autogen: Fix Ninja Multi-Config dependency graph regression Autogen: Revert adding ui files to byproducts of the timestamp target FindRuby: Add support for 3.4 |
CMake 3.31.1 Nov 25, 2024 |
Help: Add missing one-line summary to policy CMP0132 FindBoost: Add support for Boost 1.86 ci: Rebuild Fedora 41 image with updates Clarify advice given by compatibility deprecation message for CMake < 3.10 Help: Clarify instructions for using older VS toolsets with newer VS versions ci: Update Windows builds to MSVC 14.42 toolset ci: update macOS jobs to use Xcode 16.1 libarchive: Update script to get 3.7.7 execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors CMake 3.31.1 GoogleTest: Clear script content buffer on flush and flush less often GoogleTest: Avoid extra call to set DISABLED test property in discovery CMP0175: Do not reject USES_TERMINAL for add_custom_command(TARGET) Linker configuration: Add missing platforms LLD linker: avoid regression on archive libraries deduplication cmExperimental: Make CPS-export experimental notice more consistent FindSQLite3: Guard calls to pkg_check_modules Help: Guard calls to pkg_check_modules in cmake-developer(7) example FindImageMagick: Fix ARCH_INCLUDE_DIR detection for version 7 and newer Linux: Recognize multiarch directories for musl-linux-any |