CMake 4.3 Release Notes

Changes made since CMake 4.2 include the following.

New Features

Instrumentation

  • cmake-instrumentation(7) was added to enable collection of timing data, target information, and system diagnostic information during the configure, generate, build, test, and install steps of a CMake project:

    • Instrumentation data are indexed and provided to callbacks for custom processing.

    • Instrumentation data are included in submissions to CDash.

    • Optionally, Google Trace Event Format files may be generated to visualize instrumentation data.

File-Based API

  • The cmake-file-api(7) "codemodel" version 2 version field has been updated to 2.10.

  • The cmake-file-api(7) "codemodel" version 2 "target" object gained a new interfaceSources array field, and the sourceGroups array items gained a new interfaceSourceIndexes array field.

Platforms

  • HIP language code may now be compiled for SPIR-V targets, e.g., via chipStar. See the CMAKE_HIP_PLATFORM variable.

Command-Line

  • cmake --version now supports a =json-v1 value to print detailed version information in a JSON format.

  • cmake --build now supports specifying a build directory and preset together. The build preset will be used with the explicit build directory substituted.

  • The cmake -E commands md5sum, sha1sum, sha224sum, sha256sum, sha384sum, and sha512sum now support reading from standard input by passing -.

  • The cmake -E bin2c command-line tool was added.

  • The cmake -E tar command-line tool:

    • Gained a --cmake-tar-compression-level flag to specify the compression level.

    • Gained a --cmake-tar-compression-method flag to specify the compression method.

    • Gained a --cmake-tar-threads flag to enable multithreaded operations.

    • Now supports specifying compression method and level for 7zip and zip formats.

    • Gained a --format=raw flag to disable compression.

    • Gained a --lzma flag to specify LZMA compression.

Commands

Variables

Properties

Modules

  • The FindCUDAToolkit module now creates a CUDA::bin2c imported target for the bin2c utility.

  • The FindLibXml2 module gained a LibXml2_USE_STATIC_LIBS hint to select static libraries.

  • The FindRuby module now provides imported targets.

  • The FindSQLite3 module now provides imported targets with the SQLite3:: prefix.

  • The UseJava module's add_jar() command now accepts a new INCLUDE_MODULES option that adds its arguments to the --module-path argument to the Java compiler. This allows building JAR files that use JPMS modules in their build.

Generator Expressions

CTest

  • The CTestCoverageCollectGCOV module:

    • Now supports TARBALL_COMPRESSION method LZMA.

    • Now supports TARBALL_COMPRESSION method LZMA2 as an alias for XZ.

    • Now supports FROM_EXT with file extensions corresponding to LZMA and ZSTD compression.

CPack

Deprecated and Removed Features

Other Changes