[ANNOUNCE] CMake 3.23.0-rc2 is ready for testing

2022-02-24 Thread John Parent
I am proud to announce the second CMake 3.23 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.23

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.23/release/3.23.html

Some of the more significant changes in CMake 3.23 are:

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.


CMake 3.23 Release Notes


Changes made since CMake 3.22 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "4".

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* "cmake-presets(7)" gained support for specifying the
  "resolvePackageReferences" command line option in a build preset to
  control restoration behavior of package references from external
  package managers. Currently this is only supported by the Visual
  Studio generator to support restoring packages from NuGet. Other
  generators ignore this option.


Generators
--

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The Visual Studio Generators for VS 2017 and above learned to use
  portable instances of Visual Studio not known to the VS installer.
  See the "CMAKE_GENERATOR_INSTANCE" variable.


Command-Line


* The "cmake(1)" "--build" command, when used with Visual Studio
  Generators on projects that set the "VS_PACKAGE_REFERENCES" target
  property, now automatically restores package references from NuGet.
  The cache variable "CMAKE_VS_NUGET_PACKAGE_RESTORE" may be set to
  toggle this behavior in a build tree.  Use the "--resolve-package-
  references=" command-line option to control the
  behavior on one invocation.

* The "cmake(1)" command line tool gained a "--debug-find-pkg=" option
  to enable debug messages under specific "find_package()" calls.

* The "cmake(1)" command line tool gained a "--debug-find-var=" option
  to enable debug messages for "find_*" calls that use specific result
  variables.


Compilers
-

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "directory" object
  "installers" field gained a new "fileSet" installer type.


Commands


* The "define_property()" command gained a new
  "INITIALIZE_FROM_VARIABLE" option to cause a target property to be
  initialized from a variable when a target is created.

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%f" specifier for microseconds.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.


Variables
-

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.

* The "CMAKE_IGNORE_PREFIX_PATH" and "CMAKE_SYSTEM_IGNORE_PREFIX_PATH"
  variables were added to tell the "find_package()", "find_program()",
  "find_library()", "find_path()", and "find_file()" commands to
  ignore specified prefixes.

* The "CMAKE_LINK_LIBRARIES_ONLY_TARGETS" variable and corresponding
  "LINK_LIBRARIES_ONLY_TARGETS" target property were added to
  optionally require that all link items that can be target names are
  ac

[ANNOUNCE] CMake 3.21.6 available for download

2022-03-04 Thread John Parent
  We are pleased to announce that CMake 3.21.6 is now available for
download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.21.5:

Brad King (4):
  Intel: Add dependencies on system header files on Windows
  FindThreads: Revert "Honor THREADS_PREFER_PTHREAD_FLAG when ... in libc"
  BinUtils: Avoid llvm-ar on Apple platforms
  CMake 3.21.6

Heiko Thiel (1):
  Help: Add MSVC_TOOLSET_VERSION value for v143 toolset

William R. Dieter (1):
  IntelLLVM: Add dependencies on system header files on Windows


[ANNOUNCE] CMake 3.22.3 available for download

2022-03-04 Thread John Parent
We are pleased to announce that CMake 3.22.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.22.2:

Alex Turbov (1):
  while: Restore tolerance of condition error

Brad King (11):
  FindMPI: Place static first in mpi test source
  NMake: Document response file encoding heuristic in a comment
  NMake: Use UTF-8 BOM in response files only with MSVC tooling
  message: Restore explicit flushing of messages on stderr
  gitlab-ci: enable assertions on fedora34-ninja jobs
  CompilerId: Fix default extensions check for Clang targeting MSVC ABI
  Intel: Add dependencies on system header files on Windows
  Tests: Add missing guards on Qt4 and Qt5 tests
  BinUtils: Avoid llvm-ar on Apple platforms
  Tests: Simplify RunCMake.{if,while} unbalanced parenthesis cases
  CMake 3.22.3

Eugene Shalygin (1):
  install(TARGETS): Restore per-export INCLUDES DESTINATION

Heiko Thiel (1):
  Help: Add MSVC_TOOLSET_VERSION value for v143 toolset

Raul Tambre (1):
  IAR/CXX: Fix compatibility with CMP0057 OLD

Silvio Traversaro (1):
  FindGLUT: Use link directories for libs from pkg-config

Tom M (1):
  FindMatlab: Fix version detection for MCR >= 9.10

William R. Dieter (1):
  IntelLLVM: Add dependencies on system header files on Windows

friendlyanon (1):
  Help: Drop incorrect versionadded for try_compile result variable

Mehdi Chinoune (1):
  FindGSL: Improve version extraction regex


[ANNOUNCE] CMake 3.23.0-rc3 is ready for testing

2022-03-10 Thread John Parent
  I am proud to announce the third CMake 3.23 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.23

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.23/release/3.23.html

Some of the more significant changes in CMake 3.23 are:

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.


CMake 3.23 Release Notes


Changes made since CMake 3.22 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "4".

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* "cmake-presets(7)" files now support a "${fileDir}" macro, which
  contains the directory containing the preset file.

* "cmake-presets(7)" gained support for specifying the
  "resolvePackageReferences" command line option in a build preset to
  control restoration behavior of package references from external
  package managers. Currently this is only supported by the Visual
  Studio generator to support restoring packages from NuGet. Other
  generators ignore this option.


Generators
--

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The Visual Studio Generators for VS 2017 and above learned to use
  portable instances of Visual Studio not known to the VS installer.
  See the "CMAKE_GENERATOR_INSTANCE" variable.


Command-Line


* The "cmake(1)" "--build" command, when used with Visual Studio
  Generators on projects that set the "VS_PACKAGE_REFERENCES" target
  property, now automatically restores package references from NuGet.
  The cache variable "CMAKE_VS_NUGET_PACKAGE_RESTORE" may be set to
  toggle this behavior in a build tree.  Use the "--resolve-package-
  references=" command-line option to control the
  behavior on one invocation.

* The "cmake(1)" command line tool gained a "--debug-find-pkg=" option
  to enable debug messages under specific "find_package()" calls.

* The "cmake(1)" command line tool gained a "--debug-find-var=" option
  to enable debug messages for "find_*" calls that use specific result
  variables.


Compilers
-

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "directory" object
  "installers" field gained a new "fileSet" installer type.


Commands


* The "define_property()" command gained a new
  "INITIALIZE_FROM_VARIABLE" option to cause a target property to be
  initialized from a variable when a target is created.

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%f" specifier for microseconds.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.


Variables
-

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.

* The "CMAKE_IGNORE_PREFIX_PATH" and "CMAKE_SYSTEM_IGNORE_PREFIX_PATH"
  variables were added to tell the "find_package()", "find_program()",
  "find_library()", "find_path()", and "find_file()" commands to
  ignore specified prefixes.

* The "CMAKE_LINK_LIBRARIES_ONLY_TARGETS" variable and corresponding
  "LINK_LIBRAR

[ANNOUNCE] CMake 3.23.0-rc4 is ready for testing

2022-03-18 Thread John Parent
  I am proud to announce the fourth CMake 3.23 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.23

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.23/release/3.23.html

Some of the more significant changes in CMake 3.23 are:

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.


CMake 3.23 Release Notes


Changes made since CMake 3.22 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "4".

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* "cmake-presets(7)" files now support a "${fileDir}" macro, which
  contains the directory containing the preset file.

* "cmake-presets(7)" gained support for specifying the
  "resolvePackageReferences" command line option in a build preset to
  control restoration behavior of package references from external
  package managers. Currently this is only supported by the Visual
  Studio generator to support restoring packages from NuGet. Other
  generators ignore this option.


Generators
--

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The Visual Studio Generators for VS 2017 and above learned to use
  portable instances of Visual Studio not known to the VS installer.
  See the "CMAKE_GENERATOR_INSTANCE" variable.


Command-Line


* The "cmake(1)" "--build" command, when used with Visual Studio
  Generators on projects that set the "VS_PACKAGE_REFERENCES" target
  property, now automatically restores package references from NuGet.
  The cache variable "CMAKE_VS_NUGET_PACKAGE_RESTORE" may be set to
  toggle this behavior in a build tree.  Use the "--resolve-package-
  references=" command-line option to control the
  behavior on one invocation.

* The "cmake(1)" command line tool gained a "--debug-find-pkg=" option
  to enable debug messages under specific "find_package()" calls.

* The "cmake(1)" command line tool gained a "--debug-find-var=" option
  to enable debug messages for "find_*" calls that use specific result
  variables.


Compilers
-

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "directory" object
  "installers" field gained a new "fileSet" installer type.


Commands


* The "define_property()" command gained a new
  "INITIALIZE_FROM_VARIABLE" option to cause a target property to be
  initialized from a variable when a target is created.

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%f" specifier for microseconds.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.


Variables
-

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.

* The "CMAKE_IGNORE_PREFIX_PATH" and "CMAKE_SYSTEM_IGNORE_PREFIX_PATH"
  variables were added to tell the "find_package()", "find_program()",
  "find_library()", "find_path()", and "find_file()" commands to
  ignore specified prefixes.

* The "CMAKE_LINK_LIBRARIES_ONLY_TARGETS" variable and corresponding
  "LINK_LIBRA

[ANNOUNCE] CMake 3.23.0 available for download

2022-03-29 Thread John Parent
  We are pleased to announce that CMake 3.23.0 is now available for
download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.23

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.23/release/3.23.html

Some of the more significant changes in CMake 3.23 are:

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.


CMake 3.23 Release Notes


Changes made since CMake 3.22 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "4".

* "cmake-presets(7)" files now have an optional "include" field, which
  allows the files to include other files.

* "cmake-presets(7)" files now support a "${fileDir}" macro, which
  contains the directory containing the preset file.

* "cmake-presets(7)" gained support for specifying the
  "resolvePackageReferences" command line option in a build preset to
  control restoration behavior of package references from external
  package managers. Currently this is only supported by the Visual
  Studio generator to support restoring packages from NuGet. Other
  generators ignore this option.


Generators
--

* The Visual Studio Generators for VS 2019 and above learned to
  support .NET SDK-style project files (".csproj") for C# projects.
  See the "DOTNET_SDK" target property and corresponding
  "CMAKE_DOTNET_SDK" variable.  "add_custom_command()" is not yet
  supported in .NET SDK-style projects.

* The Visual Studio Generators for VS 2017 and above learned to use
  portable instances of Visual Studio not known to the VS installer.
  See the "CMAKE_GENERATOR_INSTANCE" variable.


Command-Line


* The "cmake(1)" "--build" command, when used with Visual Studio
  Generators on projects that set the "VS_PACKAGE_REFERENCES" target
  property, now automatically restores package references from NuGet.
  The cache variable "CMAKE_VS_NUGET_PACKAGE_RESTORE" may be set to
  toggle this behavior in a build tree.  Use the "--resolve-package-
  references=" command-line option to control the
  behavior on one invocation.

* The "cmake(1)" command line tool gained a "--debug-find-pkg=" option
  to enable debug messages under specific "find_package()" calls.

* The "cmake(1)" command line tool gained a "--debug-find-var=" option
  to enable debug messages for "find_*" calls that use specific result
  variables.


Compilers
-

* The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
  compiler id "IBMClang".

* The MCST LCC compiler is now supported with compiler id "LCC". See
  policy "CMP0129".


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "directory" object
  "installers" field gained a new "fileSet" installer type.


Commands


* The "define_property()" command gained a new
  "INITIALIZE_FROM_VARIABLE" option to cause a target property to be
  initialized from a variable when a target is created.

* The "install(TARGETS)" command gained a new "FILE_SET" argument,
  which can be used to install header file sets associated with a
  target.

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%f" specifier for microseconds.

* The "target_sources()" command gained a new "FILE_SET" mode, which
  can be used to add headers as header-only source files of a target.


Variables
-

* The "CMAKE_CUDA_ARCHITECTURES" variable and associated
  "CUDA_ARCHITECTURES" target property now support the "all", and
  "all-major" values for CUDA toolkit 7.0+.

* The "CMAKE_IGNORE_PREFIX_PATH" and "CMAKE_SYSTEM_IGNORE_PREFIX_PATH"
  variables were added to tell the "find_package()", "find_program()",
  "find_library()", "find_path()", and "find_file()" commands to
  ignore specified prefixes.

* The "CMAKE_LINK_LIBRARIES_ONLY_TARGETS" variable and corresponding
 

[ANNOUNCE] CMake 3.23.1 available for download

2022-04-12 Thread John Parent
We are pleased to announce that CMake 3.23.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.23.0:

Ben Boeckel (3):
  CMakeDependentOption: improve documentation
  cmFileSet: store visibility with the fileset
  cmTarget: make HEADER_SETS and INTERFACE_HEADER_SETS read-only

Brad King (19):
  GNUInstallDirs: Revert "Apply Debian multiarch LIBDIR to more prefixes"
  Help: Clarify when policy CMP0112 takes effect
  gitlab-ci: clarify name of package upload job template
  gitlab-ci: distinguish release and development pipeline schedules
  gitlab-ci: add sanity check to upload jobs
  gitlab-ci: simplify package pipeline job conditions
  gitlab-ci: start release package pipelines manually
  Utilities/Sphinx: Add undocumented option to build docs for cmake.org
  Utilities/Sphinx: Add option to build outdated version banner for
cmake.org
  Utilities/Sphinx: Add OpenSearch link to html page headers on cmake.org
  gitlab-ci: consolidate jobs for cmake.org/cmake/help/git-{master,stage}
docs
  gitlab-ci: update cmake.org documentation in release package pipeline
  gitlab-ci: Add objects.inv to cmake.org html documentation
  gitlab-ci: Build qthelp-format release documentation for cmake.org
  Help: Add "Updates" section header in 3.22 release notes
  Utilities/Sphinx: Update qthelp generation to qhelpgenerator
  CheckCompilerFlag: Fix regression in locale environment preservation
  Help: Document that target_sources defines [INTERFACE_]HEADER_SETS
  CMake 3.23.1

Craig Scott (3):
  CheckSourceCompiles: Avoid linker warning with -fembed-bitcode
  Help: Correct/add missing details for CheckPIESupported
  CheckPIESupported: Prevent separate output lines running together

Cristian Adam (1):
  PCH: Fix Xcode non-pch language exclusion

Eugene Shalygin (1):
  Help: Fix typo in install command documentation

Even Rouault (1):
  FindPostgreSQL: add support for PostgreSQL 14

Gregor Jasny (1):
  Tests: Ignore all classes in Xcode internal objc warnings

Kyle Edwards (1):
  FILE_SET: Forbid adding header sets to Apple FRAMEWORK libraries

Robert Maynard (2):
  CUDA: Ninja generator generates valid compile database
  cmake: --list=presets=[type] doesn't generate incorrect warnings

Tobias Nießen (2):
  Help: Fix string(JSON ... LENGTH ...) signature
  Help: Add that CMAKE_CACHEFILE_DIR might not be defined


[ANNOUNCE] CMake 3.22.4 available for download

2022-04-12 Thread John Parent
We are pleased to announce that CMake 3.22.4 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.22.3:

Attila Krasznahorkay (1):
  IRSL: Add paths for Intel oneAPI compilers on Linux

Brad King (20):
  BinUtils: Avoid llvm-mt because it is missing 'mt' features we use
  gitlab-ci: Update Windows builds to MSVC 19.31 toolset
  BinUtils: Restore llvm-ar fallback on Apple platforms
  Utilities/Release: Add "source" stage to Windows docker spec
  AIX: Fix executable ENABLE_EXPORTS in Makefile generators
  gitlab-ci: clarify name of package upload job template
  gitlab-ci: distinguish release and development pipeline schedules
  gitlab-ci: add sanity check to upload jobs
  gitlab-ci: simplify package pipeline job conditions
  gitlab-ci: start release package pipelines manually
  Utilities/Sphinx: Add undocumented option to build docs for cmake.org
  Utilities/Sphinx: Add option to build outdated version banner for
cmake.org
  Utilities/Sphinx: Add OpenSearch link to html page headers on cmake.org
  gitlab-ci: consolidate jobs for cmake.org/cmake/help/git-{master,stage}
docs
  gitlab-ci: update cmake.org documentation in release package pipeline
  gitlab-ci: Add objects.inv to cmake.org html documentation
  gitlab-ci: Build qthelp-format release documentation for cmake.org
  Help: Add "Updates" section header in 3.22 release notes
  Utilities/Sphinx: Update qthelp generation to qhelpgenerator
  CMake 3.22.4

Cristian Adam (1):
  PCH: Fix Xcode non-pch language exclusion

Gregor Jasny (1):
  Tests: Ignore all classes in Xcode internal objc warnings

Ken Matsui (1):
  AppleClang: Add C++20 and C++23 flags

Marc Chevrier (1):
  FindPython: fix various problems using pypy interpreters

Marc Jeanmougin (2):
  CPack/NSIS: Fix uninstall command when run from installer
  CPack/NSIS: Add support for unquoted (legacy) uninstaller strings

Michael Hirsch (1):
  FindMatlab: Fix logic error when minimum version is not found


[ANNOUNCE] CMake 3.23.2 available for download

2022-05-25 Thread John Parent
We are pleased to announce that CMake 3.23.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.23.2:

Alex Turbov (1):
  CPack/NuGet: Restore component packaging on Windows

Ben Boeckel (2):
  cmInstallCommand: tweak error message
  cmExportBuildFileGenerator: handle genex-wrapped source paths

Brad King (20):
  ci: use CMake 3.23.1
  CheckLinkerFlag: Catch linker warning when the checked flag is ignored
  CheckCompilerFlags: Revert "Catch linker warning about ignored flags"
  Tests: Teach RunCMake to ignore Xcode extension point warnings
  gitlab-ci: update macOS jobs to use Xcode 13.3
  FindBoost: Add support for Boost 1.79
  Utilities/Sphinx: Clarify names of variables listing post-sphinx commands
  Utilities/Sphinx: Add variables listing pre-sphinx commands
  Tutorial: Provide a source archive when published on cmake.org
  cmGeneratedFileStream: Do not remove empty path
  FindPkgConfig: Fix preservation of ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS}
  gitlab-ci: Update Windows builds to MSVC 19.32 toolset
  VS: Fix CUDA CodeGeneration field for CMAKE_CUDA_ARCHITECTURES=OFF
  FortranCInterface: Fix failure with gfortran 12 and Clang
  Clang: Use -imsvc flag without space to support Clang tools
  file(GET_RUNTIME_DEPENDENCIES): Support VS 2022 without VS 2019
  libarchive: Update script to get 3.5.3
  libarchive: include archive_platform.h first in blake2s sources
  libarchive: Update build within CMake after changes in 3.5.3
  CMake 3.23.2

Craig Scott (1):
  productbuild: Restore CPACK_PACKAGEMAKER_CHOICES variable

Eisuke Kawashima (1):
  Help: Document when HIP_COMPILER generator expressions were added

Gregor Jasny (1):
  Tests: Ignore all classes in Xcode internal objc warnings

Jean-Philippe Lebel (1):
  CPackIFW: Fix regression in icon file names

Kyle Edwards (2):
  FILE_SET: Make INTERFACE libraries with HEADER_SETS participate in
buildsystem
  Help: Remove references to MODULE in $ doc

LibArchive Upstream (1):
  LibArchive 2022-02-08 (673c1eae)

Marc Chevrier (3):
  FindPython: Add support for pypy v7.3.9 and uppers
  FindPython: fix typo error
  FindJava, FindJNI: ensure correct handling of versions on Windows

Martin Duffy (4):
  Help/guide: Fix wrong header file reference
  ccmake: Move Initialization of Fields Inline
  ccmake: Fix crash when deleting all cache entries
  ccmake: Fix infinite loop during invalid search

Michael Hirsch (1):
  FindPython: add support for Python 3.12

friendlyanon (1):
  CMakePackageConfigHelpers: Fix note about version files supporting ranges


[ANNOUNCE] CMake 3.21.7 available for download

2022-06-01 Thread John Parent
We are pleased to announce that CMake 3.21.7 is now available for download.

Please use the latest release from our download page:
  https://github.com/Kitware/CMake/releases

Thanks for your support!


Changes made since CMake 3.21.6:

Brad King (9):
  BinUtils: Avoid llvm-mt because it is missing 'mt' features we use
  BinUtils: Restore llvm-ar fallback on Apple platforms
  Utilities/Release: Add "source" stage to Windows docker spec
  AIX: Fix executable ENABLE_EXPORTS in Makefile generators
  Tests: Teach RunCMake to ignore Xcode extension point warnings
  gitlab-ci: update macOS jobs to use Xcode 13.3
  file(GET_RUNTIME_DEPENDENCIES): Support VS 2022 without VS 2019
  cmake-gui: Restore support for internationalization with Qt5 on Windows
  CMake 3.21.7

Gregor Jasny (1):
  Tests: Ignore all classes in Xcode internal objc warnings

Ken Matsui (1):
  AppleClang: Add C++20 and C++23 flags


[ANNOUNCE] CMake 3.22.5 available for download

2022-06-01 Thread John Parent
We are pleased to announce that CMake 3.22.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.22.4:

Brad King (10):
  Tests: Teach RunCMake to ignore Xcode extension point warnings
  gitlab-ci: update macOS jobs to use Xcode 13.3
  FindPkgConfig: Fix preservation of ENV{PKG_CONFIG_ALLOW_SYSTEM_LIBS}
  FortranCInterface: Fix failure with gfortran 12 and Clang
  file(GET_RUNTIME_DEPENDENCIES): Support VS 2022 without VS 2019
  libarchive: Update script to get 3.5.3
  libarchive: include archive_platform.h first in blake2s sources
  libarchive: Update build within CMake after changes in 3.5.3
  cmake-gui: Restore support for internationalization with Qt5 on Windows
  CMake 3.22.5

Gregor Jasny (1):
  Tests: Ignore all classes in Xcode internal objc warnings

LibArchive Upstream (1):
  LibArchive 2022-02-08 (673c1eae)


[ANNOUNCE] CMake 3.24.0-rc1 is ready for testing

2022-06-14 Thread John Parent
I am proud to announce the first CMake 3.24 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:

* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package(

[ANNOUNCE] CMake 3.24.0-rc2 is ready for testing

2022-06-23 Thread John Parent
I am proud to announce the second CMake 3.24 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:


* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_packag

[ANNOUNCE] CMake 3.24.0-rc3 is ready for testing

2022-07-07 Thread John Parent
  I am proud to announce the third CMake 3.24 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:


* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_packa

[ANNOUNCE] CMake 3.24.0-rc4 is ready for testing

2022-07-20 Thread John Parent
  I am proud to announce the fourth CMake 3.24 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:


* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_pack

[ANNOUNCE] CMake 3.23.3 available for download

2022-07-28 Thread John Parent
We are pleased to announce that CMake 3.23.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.23.2:

Brad King (10):
  cmake-gui: Restore support for internationalization with Qt5 on Windows
  Tutorial: Simplify logic checking for cmath functions
  ci: update to use ninja 1.11.0
  Xcode: Use ad-hoc signing during compiler id on macOS
  Xcode: Suppress "Run Script" build phase warning during compiler id
  Tests: Teach RunCMake to ignore Xcode DVTSDK warnings
  ExternalProject: Fix regression in stamp creation for Xcode+iOS
  Utilities/Release: Update macOS notarization script to use notarytool
  gitlab-ci: update macOS jobs to use Xcode 13.4
  CMake 3.23.3

Eisuke Kawashima (1):
  FindLAPACK: Add '-fortranlibs' flag only with NVHPC/PGI compilers

Igor Molchanov (1):
  LCC: link with -lgfortran instead of -llfortran since 1.26.03

Kyle Edwards (2):
  install(EXPORT): Check for missing file sets at generate time
  cmGlobalGenerator: Only compute build files for all targets

Robert Maynard (2):
  cmake: simplify to a single source of truth of working mode
  cmake: In -P mode ignore extra paths on the command line


[ANNOUNCE] CMake 3.22.6 available for download

2022-07-28 Thread John Parent
We are pleased to announce that CMake 3.22.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.22.5:

Brad King (6):
  Xcode: Use ad-hoc signing during compiler id on macOS
  Xcode: Suppress "Run Script" build phase warning during compiler id
  Tests: Teach RunCMake to ignore Xcode DVTSDK warnings
  Utilities/Release: Update macOS notarization script to use notarytool
  gitlab-ci: update macOS jobs to use Xcode 13.4
  CMake 3.22.6

Eisuke Kawashima (1):
  FindLAPACK: Add '-fortranlibs' flag only with NVHPC/PGI compilers


[ANNOUNCE] CMake 3.24.0-rc5 is ready for testing

2022-07-28 Thread John Parent
I am proud to announce the fifth CMake 3.24 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:


* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package

[ANNOUNCE] CMake 3.24.0 available for download

2022-08-04 Thread John Parent
We are pleased to announce that CMake 3.24.0 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.24

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.24/release/3.24.html

Some of the more significant changes in CMake 3.24 are:


* The "FetchContent" module and the "find_package()" command now
  support integration capabilities.

* The "LINK_LIBRARY" generator expression was added to manage how
  libraries are specified during the link step.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.

* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* The "CMAKE_COMPILE_WARNING_AS_ERROR" variable and corresponding
  "COMPILE_WARNING_AS_ERROR" target property were added to enable
  compilation with a compiler-specific flag to treat warnings as
  errors, such as "-Werror".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the ability
  to specify which Windows Registry views must be queried.


CMake 3.24 Release Notes


Changes made since CMake 3.23 include the following.


New Features



Presets
---

* "cmake-presets(7)" files now support schema version "5".

* "cmake-presets(7)" files now support a "${pathListSep}" macro, which
  expands to ":" or ";" based on the platform.

* "cmake-presets(7)" files gained support for specifying a
  "testOutputTruncation" field in test presets, which specifies the
  truncation mode once the maximum test output size has been reached.


Generators
--

* The "Green Hills MULTI" generator now generates build rules to re-
  run CMake if any CMake files are updated.

* The Visual Studio Generators now support "SYSTEM" headers when using
  VS 2019 Update 11 or later.


Command-Line


* "cmake(1)" gained the "--fresh" command-line option to remove any
  existing "CMakeCache.txt" file and associated "CMakeFiles/"
  directory, when configuring a build tree, thus starting a new
  configuration as if the build tree were freshly created.

* "cmake(1)" gained the "--compile-no-warning-as-error" command-line
  option which causes the effects of the "COMPILE_WARNING_AS_ERROR"
  target property and "CMAKE_COMPILE_WARNING_AS_ERROR" variable to be
  ignored.

* The "cmake(1)" "--trace=json-v1" trace format gained fields
  "global_frame" and "line_end".

* The "cmake(1)" "-E" commands "cat" and "env" learned to respect a
  double dash ("--") argument that acts as a delimiter indicating the
  end of options. Any following arguments are treated as
  operands/positional arguments, even if they begin with a dash "-"
  character.

* The "cmake(1)" "-E tar" command gained the "--touch" option to keep
  the current local timestamp instead of extracting file timestamps
  from the archive.


Compilers
-

* LLVM's flang Fortran compiler is now supported on some platforms,
  with compiler id "LLVMFlang".

* ADSP compiler support (SHARC and Blackfin) now covers both CCES and
  VDSP++ installations, with required configuration now done in the
  compiler module itself rather than the "Generic-ADSP" platform
  module.


Platforms
-

* A dedicated "ADSP" platform has been added to replace the existing
  "Generic-ADSP" implementation. This features automatic detection of
  the latest CCES/VDSP++ install and compiler selection ("cc21k" vs.
  "ccblkfn") based off of the "CMAKE_SYSTEM_PROCESSOR" variable.


Commands


* The "cmake_host_system_information()" command, on Windows, gained a
  "QUERY WINDOWS_REGISTRY" mode. See its Query Windows registry
  section.

* The "cmake_language()" command gained a new
  "SET_DEPENDENCY_PROVIDER" sub-command.  When a dependency provider
  is set, calls to "find_package()" and "FetchContent_MakeAvailable()"
  can be redirected through a custom command, which can choose to
  fulfill the request directly, modify how the request is processed,
  or leave it to be fulfilled by the built-in implementation.  See
  Dependency Providers.

* The "file(DOWNLOAD)" command gained options "RANGE_START" and
  "RANGE_END" to specify a range of bytes to download.  This can be
  useful for downloading parts of big binary files.

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and "find_package()" commands gained the
  "NO_CMAKE_INSTALL_PREFIX" option to control searching
  "CMAKE_INSTALL_PREFIX".

* The "find_file()", "find_path()", "find_library()",
  "find_program()", and 

[ANNOUNCE] CMake 3.24.1 available for download

2022-08-17 Thread John Parent
We are pleased to announce that CMake 3.24.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.24.0:

Albert Astals Cid (1):
  automoc: avoid compiler warnings in linker-warning-silencing code

Brad King (7):
  FindThreads: Skip check for -pthread flag when targeting the MSVC ABI
  IPO: Do not use -flto=auto with GCC 10.x on Windows
  export: Restore exclusion of private shared library dependencies from
checks
  MinGW: Restore using windres when toolchain-prefixed name is not available
  FindVulkan: Restore tolerance of unknown FATAL_ERROR component
  Help: Add 3.24 release note about FindVulkan component enforcement
  CMake 3.24.1

Craig Scott (3):
  TI compiler: Add support for COMPILE_WARNING_AS_ERROR target property
  Help: List compiler IDs supported by COMPILE_WARNING_AS_ERROR
  Help: A missing cross-reference to --compile-no-warning-as-error


[ANNOUNCE] CMake 3.24.2 available for download

2022-09-13 Thread John Parent
We are pleased to announce that CMake 3.24.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.24.1:

Albert Astals Cid (1):
  automoc: avoid more compiler warnings in linker-warning-silencing code

Ben Boeckel (1):
  ExternalProject: note the default of `GIT_TAG` being `master`

Brad King (8):
  Help: Clarify that variable references may use cache entries
  ci: use CMake 3.24.1
  gitlab-ci: Use separate MSVC toolset specification for packaging jobs
  gitlab-ci: Update non-packaging Windows builds to MSVC 14.33 toolset
  Tests: Teach RunCMake.SymlinkTrees to tolerate CCACHE_BASEDIR
  automoc: revert attempts to silence linker warning on macos
  Tests: Add cases covering bad ctest output truncation types
  CMake 3.24.2

Craig Scott (6):
  Help: Add missing closing quote on C++ example
  Help: Add crossrefs to ctest output control options
  Help: Fix typos, grammar and formatting in CMP0134 policy docs
  Help: Fix wrong casing of GTest in FetchContent integration example
  FetchContent: Fix unsetting wrong variable name after provider returns
  FetchContent: Ignore EXACT for redirected find_package() calls

Daniel Scharrer (1):
  FindZLIB: fix CMAKE_FIND_LIBRARY_PREFIXES being unset when it was empty

Frank Winklmeier (2):
  RunCMakeTest: fix Truncation test definition
  ctest: print error for invalid CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION

Gilles Gouaillardet (1):
  FortranCInterface: Add support for LLVMFlang mangling

Kargatum (1):
  FindBoost: Add support for Boost 1.80

Kyle Edwards (2):
  Tests: Fix VS10Project SourceGroupTreeCMakeLists check
  FILE_SET: Fix source group detection

Marc Chevrier (4):
  Xcode: Fix erroneous MACOSX_BUNDLE link
  Help: cmake-developer: Add section for Windows registry access.
  renames method FinalizeTargetCompileInfo() in
FinalizeTargetConfiguration().
  Check link libraries properties: fix performances regression

Mathieu Malaterre (1):
  Help: Fix typo in FetchContent example, extras should read extra

Robert Maynard (4):
  FindCUDAToolkit: Search the cuda toolkit include path for cupti
  cmFindBase: Refactor CMAKE_FIND_USE_INSTALL_PREFIX handling
  CMAKE_FIND_USE_INSTALL_PREFIX considers CMAKE_STAGING_PREFIX
  FindCUDAToolkit: Correctly state cusolver and cublas dependencies

parkesb (1):
  FindPostgreSQL: Add brew-style directories to search path


[ANNOUNCE] CMake 3.23.4 available for download

2022-10-04 Thread John Parent
  We are pleased to announce that CMake 3.23.4 is now available for
download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.23.3:

Brad King (3):
  cmStringAlgorithms: Add functions to parse strings to long long integers
  file: Avoid strange istringstream crash in cmake.org binaries on Alpine
Linux
  CMake 3.23.4

Robert Maynard (2):
  FindGTest: Create the gmock targets only when GTest has been found
  FindCUDAToolkit: Correctly state cusolver and cublas dependencies


[ANNOUNCE] CMake 3.25.0-rc1 is ready for testing

2022-10-12 Thread John Parent
I am proud to announce the first CMake 3.25 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.25

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.25/release/3.25.html

Some of the more significant changes in CMake 3.25 are:


* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "BSD" and "CMAKE_HOST_BSD" variables are now set to a string
  value when the target or host system is BSD, respectively.

* The "LINUX" and "CMAKE_HOST_LINUX" variables are now set to true
  when the target or host system is Linux, respectively.

* The "CMAKE_MSVC_DEBUG_INFORMATION_FORMAT" variable and
  "MSVC_DEBUG_INFORMATION_FORMAT" target property were introduced to
  select the debug information format for compilers targeting the MSVC
  ABI. See policy "CMP0141".


CMake 3.25 Release Notes


Changes made since CMake 3.24 include the following.


New Features



Presets
---

* The "cmake-presets(7)" schema version has been bumped to "6".

* The "cmake-presets(7)" format now supports a "packagePresets" field
  to specify presets for "cpack --preset".

* The "cmake-presets(7)" format now supports a "workflowPresets" field
  to specify presets for "cmake --workflow".


Languages
-

* The "Compile Features" functionality is now aware of C++26, and
  defines a "cxx_std_26" meta-feature. C++26 compiler modes may also
  be specified via the "CXX_STANDARD", "CUDA_STANDARD",
  "HIP_STANDARD", or "OBJCXX_STANDARD" target properties.

* "CUDA" language support now includes device link-time optimization
  when using "nvcc".  The "CMAKE_INTERPROCEDURAL_OPTIMIZATION"
  variable and the associated "INTERPROCEDURAL_OPTIMIZATION" target
  property will activate device LTO.


Command-Line


* A "cmake --workflow --preset" mode was added to drive sequences of
  configure, build, test, and package operations through a single
  command.

* The "cmake -E capabilities" command gained a new "tls" field that
  tells whether or not TLS is enabled.

* The "cmake -E env" command-line tool gained a "--modify" flag to
  support "ENVIRONMENT_MODIFICATION" operations.

* The "cmake --debug-trycompile" option now prints log messages
  reporting the directory in which each try-compile check is done.


Compilers
-

* Support for the Tasking compiler toolsets (SmartCode, TriCore,
  Standalone: ARM, MCS, 8051) was added with compiler id "Tasking".
  See the "CMAKE_TASKING_TOOLSET" variable.


Commands


* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "cmake_language()" command gained a new "GET_MESSAGE_LOG_LEVEL"
  sub-command.  It can be used to query the current message logging
  level.

* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "find_package()" command now considers paths of the form
  "/*/(cmake|CMake)/*/" when searching for package
  configuration files.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "try_compile()" and "try_run()" commands gained the option
  "NO_CACHE" to store results in normal variables.

* The "try_run()" command gained "RUN_OUTPUT_STDOUT_VARIABLE" and
  "RUN_OUTPUT_STDERR_VARIABLE" options to capture stdout and stderr
  separately from the output of the compiled program.


Variables

[ANNOUNCE] CMake 3.25.0-rc2 is ready for testing

2022-10-19 Thread John Parent
I am proud to announce the second CMake 3.25 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.25

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.25/release/3.25.html

Some of the more significant changes in CMake 3.25 are:


* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "BSD" and "CMAKE_HOST_BSD" variables are now set to a string
  value when the target or host system is BSD, respectively.

* The "LINUX" and "CMAKE_HOST_LINUX" variables are now set to true
  when the target or host system is Linux, respectively.

* The "CMAKE_MSVC_DEBUG_INFORMATION_FORMAT" variable and
  "MSVC_DEBUG_INFORMATION_FORMAT" target property were introduced to
  select the debug information format for compilers targeting the MSVC
  ABI. See policy "CMP0141".


CMake 3.25 Release Notes


Changes made since CMake 3.24 include the following.


New Features



Presets
---

* The "cmake-presets(7)" schema version has been bumped to "6".

* The "cmake-presets(7)" format now supports a "packagePresets" field
  to specify presets for "cpack --preset".

* The "cmake-presets(7)" format now supports a "workflowPresets" field
  to specify presets for "cmake --workflow".

* The "cmake-presets(7)" format now supports a "outputJUnitFile" field
   to specify JUnit output in test presets


Languages
-

* The "Compile Features" functionality is now aware of C++26, and
  defines a "cxx_std_26" meta-feature. C++26 compiler modes may also
  be specified via the "CXX_STANDARD", "CUDA_STANDARD",
  "HIP_STANDARD", or "OBJCXX_STANDARD" target properties.

* "CUDA" language support now includes device link-time optimization
  when using "nvcc".  The "CMAKE_INTERPROCEDURAL_OPTIMIZATION"
  variable and the associated "INTERPROCEDURAL_OPTIMIZATION" target
  property will activate device LTO.


Command-Line


* A "cmake --workflow --preset" mode was added to drive sequences of
  configure, build, test, and package operations through a single
  command.

* The "cmake -E capabilities" command gained a new "tls" field that
  tells whether or not TLS is enabled.

* The "cmake -E env" command-line tool gained a "--modify" flag to
  support "ENVIRONMENT_MODIFICATION" operations.

* The "cmake --debug-trycompile" option now prints log messages
  reporting the directory in which each try-compile check is done.


Compilers
-

* Support for the Tasking compiler toolsets (SmartCode, TriCore,
  Standalone: ARM, MCS, 8051) was added with compiler id "Tasking".
  See the "CMAKE_TASKING_TOOLSET" variable.


Commands


* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "cmake_language()" command gained a new "GET_MESSAGE_LOG_LEVEL"
  sub-command.  It can be used to query the current message logging
  level.

* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "find_package()" command now considers paths of the form
  "/*/(cmake|CMake)/*/" when searching for package
  configuration files.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "try_compile()" and "try_run()" commands gained the option
  "NO_CACHE" to store results in normal variables.

* The "try_run()" command gained "RUN_OUTPUT_STDOUT_VARIABLE" and
  "RUN_OUTPUT_STD

[ANNOUNCE] CMake 3.23.5 available for download

2022-11-01 Thread John Parent
We are pleased to announce that CMake 3.23.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.23.4:

Brad King (7):
  Help: Add versionadded for string(TIMESTAMP) %f specifier
  try_compile: Honor CMP0128 setting in test project
  cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17
  Tests: Avoid running C++11 test on GNU < 4.7
  Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10
  Tests: Add case for ninja with non-ascii chars
  CMake 3.23.5

Mika Fischer (1):
  CPack/NSIS: Fix installer not waiting for uninstaller to finish


[ANNOUNCE] CMake 3.24.3 available for download

2022-11-01 Thread John Parent
We are pleased to announce that CMake 3.24.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.24.2:

Brad King (16):
  cmStringAlgorithms: Add functions to parse strings to long long integers
  file: Avoid strange istringstream crash in cmake.org binaries on Alpine
Linux
  Xcode: Drop CMAKE_INTDIR= definition in Swift targets
  Tests: Update RunCMake.XcodeProject iOS cases for Xcode 14.0
  gitlab-ci: update macOS jobs to use Xcode 14.0
  COMPILE_WARNING_AS_ERROR: Fix internal formatting of options table
  LLVMFlang: Add support for mixed-language linking with Fortran
  Help: Add versionadded for string(TIMESTAMP) %f specifier
  try_compile: Honor CMP0128 setting in test project
  Tests: Explicitly allow usage of git file-based protocol in test cases
  cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17
  Tests: Avoid running C++11 test on GNU < 4.7
  VS: Fix crash finding vswhere on 32-bit Windows
  Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10
  Tests: Add case for ninja with non-ascii chars
  CMake 3.24.3

Erlend E. Aasland (1):
  CPack/IFW: Add support for QtIFW 4.4

Kyle Edwards (1):
  CPack: Require no argument for --trace and --trace-expand

Marc Chevrier (1):
  Apple: Fix regression when linking a framework with postfix

Michael Hirsch (3):
  FindMatlab: Add MEX binary file suffix for Apple Silicon native Matlab
  FindMatlab: add R2022b 9.13 version map
  Intel/IntelLLVM: Fortran has distinct "-Werror"-like flag

Mika Fischer (1):
  CPack/NSIS: Fix installer not waiting for uninstaller to finish

Robert Maynard (1):
  CUDA: Add support for the two new architectures in 11.8

Sergiu Deitsch (2):
  FindJNI: replace CMAKE_ANDROID_API by CMAKE_SYSTEM_VERSION
  Android: Avoid searching API level directories matching architecture
bitness

Zack Galbreath (1):
  ctest: only report make-level errors when no others are found

مهدي شينون (Mehdi Chinoune) (2):
  LLVMFlang: Add support for Windows
  LLVMFlang: Add a required line to define linking rules on Windows


[ANNOUNCE] CMake 3.25.0-rc3 is ready for testing

2022-11-01 Thread John Parent
I am proud to announce the third CMake 3.25 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.25

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.25/release/3.25.html

Some of the more significant changes in CMake 3.25 are:


* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "BSD" and "CMAKE_HOST_BSD" variables are now set to a string
  value when the target or host system is BSD, respectively.

* The "LINUX" and "CMAKE_HOST_LINUX" variables are now set to true
  when the target or host system is Linux, respectively.

* The "CMAKE_MSVC_DEBUG_INFORMATION_FORMAT" variable and
  "MSVC_DEBUG_INFORMATION_FORMAT" target property were introduced to
  select the debug information format for compilers targeting the MSVC
  ABI. See policy "CMP0141".


CMake 3.25 Release Notes


Changes made since CMake 3.24 include the following.


New Features



Presets
---

* The "cmake-presets(7)" schema version has been bumped to "6".

* The "cmake-presets(7)" format now supports a "packagePresets" field
  to specify presets for "cpack --preset".

* The "cmake-presets(7)" format now supports a "workflowPresets" field
  to specify presets for "cmake --workflow".

* The "cmake-presets(7)" format now supports an "outputJUnitFile" field
   to specify JUnit output in test presets


Languages
-

* The "Compile Features" functionality is now aware of C++26, and
  defines a "cxx_std_26" meta-feature. C++26 compiler modes may also
  be specified via the "CXX_STANDARD", "CUDA_STANDARD",
  "HIP_STANDARD", or "OBJCXX_STANDARD" target properties.

* "CUDA" language support now includes device link-time optimization
  when using "nvcc".  The "CMAKE_INTERPROCEDURAL_OPTIMIZATION"
  variable and the associated "INTERPROCEDURAL_OPTIMIZATION" target
  property will activate device LTO.


Command-Line


* A "cmake --workflow --preset" mode was added to drive sequences of
  configure, build, test, and package operations through a single
  command.

* The "cmake -E capabilities" command gained a new "tls" field that
  tells whether or not TLS is enabled.

* The "cmake -E env" command-line tool gained a "--modify" flag to
  support "ENVIRONMENT_MODIFICATION" operations.

* The "cmake --debug-trycompile" option now prints log messages
  reporting the directory in which each try-compile check is done.


Compilers
-

* Support for the Tasking compiler toolsets (SmartCode, TriCore,
  Standalone: ARM, MCS, 8051) was added with compiler id "Tasking".
  See the "CMAKE_TASKING_TOOLSET" variable.


Commands


* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "cmake_language()" command gained a new "GET_MESSAGE_LOG_LEVEL"
  sub-command.  It can be used to query the current message logging
  level.

* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "find_package()" command now considers paths of the form
  "/*/(cmake|CMake)/*/" when searching for package
  configuration files.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "try_compile()" and "try_run()" commands gained the option
  "NO_CACHE" to store results in normal variables.

* The "try_run()" command gained "RUN_OUTPUT_STDOUT_VARIABLE" and
  "RUN_OUTPUT_STD

[ANNOUNCE] CMake 3.25.0-rc4 is ready for testing

2022-11-08 Thread John Parent
I am proud to announce the fourth CMake 3.25 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.25

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.25/release/3.25.html

Some of the more significant changes in CMake 3.25 are:


* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "BSD" and "CMAKE_HOST_BSD" variables are now set to a string
  value when the target or host system is BSD, respectively.

* The "LINUX" and "CMAKE_HOST_LINUX" variables are now set to true
  when the target or host system is Linux, respectively.

* The "CMAKE_MSVC_DEBUG_INFORMATION_FORMAT" variable and
  "MSVC_DEBUG_INFORMATION_FORMAT" target property were introduced to
  select the debug information format for compilers targeting the MSVC
  ABI. See policy "CMP0141".


CMake 3.25 Release Notes


Changes made since CMake 3.24 include the following.


New Features



Presets
---

* The "cmake-presets(7)" schema version has been bumped to "6".

* The "cmake-presets(7)" format now supports a "packagePresets" field
  to specify presets for "cpack --preset".

* The "cmake-presets(7)" format now supports a "workflowPresets" field
  to specify presets for "cmake --workflow".

* The "cmake-presets(7)" format now supports an "outputJUnitFile" field
   to specify JUnit output in test presets


Languages
-

* The "Compile Features" functionality is now aware of C++26, and
  defines a "cxx_std_26" meta-feature. C++26 compiler modes may also
  be specified via the "CXX_STANDARD", "CUDA_STANDARD",
  "HIP_STANDARD", or "OBJCXX_STANDARD" target properties.

* "CUDA" language support now includes device link-time optimization
  when using "nvcc".  The "CMAKE_INTERPROCEDURAL_OPTIMIZATION"
  variable and the associated "INTERPROCEDURAL_OPTIMIZATION" target
  property will activate device LTO.


Command-Line


* A "cmake --workflow --preset" mode was added to drive sequences of
  configure, build, test, and package operations through a single
  command.

* The "cmake -E capabilities" command gained a new "tls" field that
  tells whether or not TLS is enabled.

* The "cmake -E env" command-line tool gained a "--modify" flag to
  support "ENVIRONMENT_MODIFICATION" operations.

* The "cmake --debug-trycompile" option now prints log messages
  reporting the directory in which each try-compile check is done.


Compilers
-

* Support for the Tasking compiler toolsets (SmartCode, TriCore,
  Standalone: ARM, MCS, 8051) was added with compiler id "Tasking".
  See the "CMAKE_TASKING_TOOLSET" variable.


Commands


* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "cmake_language()" command gained a new "GET_MESSAGE_LOG_LEVEL"
  sub-command.  It can be used to query the current message logging
  level.

* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "find_package()" command now considers paths of the form
  "/*/(cmake|CMake)/*/" when searching for package
  configuration files.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "try_compile()" and "try_run()" commands gained the option
  "NO_CACHE" to store results in normal variables.

* The "try_run()" command gained "RUN_OUTPUT_STDOUT_VARIABLE" and
  "RUN_OUTPUT_ST

[ANNOUNCE] CMake 3.25.0 available for download

2022-11-16 Thread John Parent
We are pleased to announce that CMake 3.25.0 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.25

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.25/release/3.25.html

Some of the more significant changes in CMake 3.25 are:


* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "BSD" and "CMAKE_HOST_BSD" variables are now set to a string
  value when the target or host system is BSD, respectively.

* The "LINUX" and "CMAKE_HOST_LINUX" variables are now set to true
  when the target or host system is Linux, respectively.

* The "CMAKE_MSVC_DEBUG_INFORMATION_FORMAT" variable and
  "MSVC_DEBUG_INFORMATION_FORMAT" target property were introduced to
  select the debug information format for compilers targeting the MSVC
  ABI. See policy "CMP0141".


CMake 3.25 Release Notes


Changes made since CMake 3.24 include the following.


New Features



Presets
---

* The "cmake-presets(7)" schema version has been bumped to "6".

* The "cmake-presets(7)" format now supports a "packagePresets" field
  to specify presets for "cpack --preset".

* The "cmake-presets(7)" format now supports a "workflowPresets" field
  to specify presets for "cmake --workflow".

* The "cmake-presets(7)" format now supports an "outputJUnitFile" field
   to specify JUnit output in test presets


Languages
-

* The "Compile Features" functionality is now aware of C++26, and
  defines a "cxx_std_26" meta-feature. C++26 compiler modes may also
  be specified via the "CXX_STANDARD", "CUDA_STANDARD",
  "HIP_STANDARD", or "OBJCXX_STANDARD" target properties.

* "CUDA" language support now includes device link-time optimization
  when using "nvcc".  The "CMAKE_INTERPROCEDURAL_OPTIMIZATION"
  variable and the associated "INTERPROCEDURAL_OPTIMIZATION" target
  property will activate device LTO.


Command-Line


* A "cmake --workflow --preset" mode was added to drive sequences of
  configure, build, test, and package operations through a single
  command.

* The "cmake -E capabilities" command gained a new "tls" field that
  tells whether or not TLS is enabled.

* The "cmake -E env" command-line tool gained a "--modify" flag to
  support "ENVIRONMENT_MODIFICATION" operations.

* The "cmake --debug-trycompile" option now prints log messages
  reporting the directory in which each try-compile check is done.


Compilers
-

* Support for the Tasking compiler toolsets (SmartCode, TriCore,
  Standalone: ARM, MCS, 8051) was added with compiler id "Tasking".
  See the "CMAKE_TASKING_TOOLSET" variable.


Commands


* The "add_subdirectory()" command gained a "SYSTEM" option to enable
  the "SYSTEM" directory property in the subdirectory.

* The "block()" and "endblock()" commands were added to manage
  specific scopes (policy or variable) for a contained block of
  commands.

* The "cmake_language()" command gained a new "GET_MESSAGE_LOG_LEVEL"
  sub-command.  It can be used to query the current message logging
  level.

* The "find_file()", "find_path()", "find_library()", and
  "find_program()" commands gained a "VALIDATOR" option to specify a
  function to be called for each candidate item to validate it.

* The "find_package()" command now considers paths of the form
  "/*/(cmake|CMake)/*/" when searching for package
  configuration files.

* The "return()" command gained a "PROPAGATE" option to propagate
  variables to the scope to which control returns. See policy
  "CMP0140".

* The "try_compile()" and "try_run()" commands gained new signatures
  that more consistently use keyword dispatch and do not require a
  binary directory to be specified.  Additionally, these signatures
  use a unique directory for each invocation, which allows multiple
  outputs to be preserved when using "cmake --debug-trycompile".

* The "try_compile()" and "try_run()" commands gained the option
  "NO_CACHE" to store results in normal variables.

* The "try_run()" command gained "RUN_OUTPUT_STDOUT_VARIABLE" and
  "R

[ANNOUNCE] CMake 3.25.1 available for download

2022-11-30 Thread John Parent
We are pleased to announce that CMake 3.25.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.25.0:

Ben Boeckel (3):
  Help/dev/experimental: document the `msvc` module map format
  MSVC: don't opt into dyndep support
  Tests/FortranModules: add case for modules after "end interface X"

Brad King (7):
  Tests: Update FindBoost.TestPython for Python 3.11 and 3.12
  try_compile: Restore COPY_FILE with CMAKE_TRY_COMPILE_CONFIGURATION
  MSVC: Revert "Teach find_library to consider the 'libfoo.a' naming
convention"
  Android: Revert setting LINUX variable on Android target systems
  MinGW: Fix regression when windres is not found
  Fortran: Restore support for parsing "end interface X"
  CMake 3.25.1

Hannes Braun (1):
  FindRuby: Remove documentation for non-existent Ruby_ROOT_DIR

Marc Chevrier (1):
  XCode: ensure LINK_LIBRARY genex is usable with
XCODE_LINK_BUILD_PHASE_MODE

Oleksii Udod (1):
  FindCUDA: Do not use CUDA_nppicom_LIBRARY in CUDA 11.0+

Robert Maynard (1):
  FindCUDAToolkit: Handle toolkits that don't provide nvptxcompiler

Zhong Ruoyu (1):
  Check*: Restore support for arbitrary result variable names


[ANNOUNCE] CMake 3.25.2 available for download

2023-01-19 Thread John Parent
We are pleased to announce that CMake 3.25.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.25.1:

Andrey Vostrikov (1):
  CheckSymbolExists: Restore newline at end of test source

Brad King (14):
  Utilities/Release: Use explicit digest for Win7-compatible signature
  Help: Clarify SYSTEM property default for imported targets
  gitlab-ci: replace '$os' tags with '$os-x86_64' on 3.25 release branch
  gitlab-ci: drop unnecessary linux kernel version tag on 3.25 release
branch
  ccmake: Restore compilation with AIX curses.h
  ASM_MASM: Populate MSVC debug information format abstraction table
  VS: Do not enable ASM_MASM debug information unless requested
  gitlab-ci: update macOS jobs to use Xcode 14.2
  Tests: Fix CTest.UpdateGIT under repo-local defaultBranch config
  try_run: Avoid crash in keyword-dispatched signature when cross-compiling
  Restore implicit include directory extraction for adaptive relative paths
  IntelLLVM: Avoid unnecessary -Qstd=c++11 flag on Windows
  Help: Restore cmake-buildsystem(7) header-only library example
  CMake 3.25.2

Craig Scott (3):
  FetchContent: Don't pass SYSTEM through to sub-build
  Help: Clarify and update SYSTEM-related docs
  Code comments: Fix trivial typos

Marc Chevrier (2):
  Help: Add version information for SYSTEM option of add_subdirectory
  Help: string(JSON): avoid duplicate labels

Michael Hirsch (2):
  IntelLLVM: Avoid finding not-yet-supported icpx on Windows
  Help: Clarify compiler id distinction between Intel Classic and IntelLLVM

Robert Maynard (2):
  CUDA: Add support for cuda_std_20 for nvcc 12.0+
  FindCUDAToolkit: Handle CUDA::nvToolsExt not existing

leha-bot (2):
  zlib: Fix typo in mangling the crc32() function
  FindBoost: Add Boost 1.81 support


[ANNOUNCE] CMake 3.26.0-rc1 is ready for testing

2023-02-02 Thread John Parent
I am proud to announce the first CMake 3.26 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.26

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.26/release/3.26.html

Some of the more significant changes in CMake 3.26 are:

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.

* Language Standard Flags, such as "-std=c++11", when generated due to
  "target_compile_features()" or "CMAKE__STANDARD", are now
  placed before flags added by "target_compile_options()", rather than
  after them.

* The top-level "project()" call will now emit an author warning if
  the documented command order in relation to
  "cmake_minimum_required()" is not respected.


CMake 3.26 Release Notes


Changes made since CMake 3.25 include the following.


New Features



Languages
-

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.


Command-Line


* The "cmake -E copy" command-line tool now supports a "-t" argument.

* The "cmake -E copy_directory_if_different" command-line tool was
  added.


Configure Log
-

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "cmake-file-api(7)" gained a new "configureLog" object kind that
  enables stable access to the "cmake-configure-log(7)".


Commands


* The "add_custom_command()" and "add_custom_target()" commands now
  support "generator expressions" in their "COMMENT" option.

* The "message()" command gained a "CONFIGURE_LOG" mode to record an
  entry in the "cmake-configure-log(7)".

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%z" and "%Z" specifiers for the time zone.

* The "try_compile()" and "try_run()" commands gained a
  "LOG_DESCRIPTION" option specifying text to be recorded in the
  "cmake-configure-log(7)".

* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
  option to skip recording a "cmake-configure-log(7)" entry.


Variables
-

* The "CMAKE__COMPILER_FRONTEND_VARIANT" variable is now set for
  "GNU", "MSVC", and "AppleClang" compilers that have only one
  frontend variant.

* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
  Studio Generators for VS 2017 and above to report the four-component
  Visual Studio version number.


Properties
--

* The "_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added
  to allow the "clang-tidy" tool to export its suggested fixes to a
  set of ".yaml" files. A new
  "CMAKE__CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
  initialize this property.

* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
  to tell the "Xcode" generator to ExtensionKit-based extensions such
  as extensions using the Background Assets framework.  Aspects of the
  embedding can be customized with:

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"


Modules
---

* The "ExternalProject" module "ExternalProject_Add()" command gained
  an "INSTALL_BYPRODUCTS" option to specify files generated by the
  "install" step.

* The "FindCUDAToolkit" module:

  * gained support for the "sbsa-linux" cross compilation target, and

  * now provides an imported target for "nvrtc_static", if found.

* The "FindImageMagick" module now provides imported targets.

* The "FindPython3" and "FindPython" modules gained support for the
  Stable Application Binary Interface.

* The "UseSWIG" module gained the support for the "perl5" language.


Generator Expressions
-

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.


CTest
-

* The "CTEST_NO_TESTS_ACTION" environment variable was added to
  provide a default value for the "--no-tests=" command line
  argument of "ctest(1)".


Deprecated and Removed Features
===

* The "CMakeFiles/CMakeOutput.log"

[ANNOUNCE] CMake 3.26.0-rc2 is ready for testing

2023-02-09 Thread John Parent
I am proud to announce the second CMake 3.26 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.26

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.26/release/3.26.html

Some of the more significant changes in CMake 3.26 are:

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.

* Language Standard Flags, such as "-std=c++11", when generated due to
  "target_compile_features()" or "CMAKE__STANDARD", are now
  placed before flags added by "target_compile_options()", rather than
  after them.

* The top-level "project()" call will now emit an author warning if
  the documented command order in relation to
  "cmake_minimum_required()" is not respected.


CMake 3.26 Release Notes


Changes made since CMake 3.25 include the following.


New Features



Languages
-

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.


Command-Line


* The "cmake -E copy" command-line tool now supports a "-t" argument.

* The "cmake -E copy_directory_if_different" command-line tool was
  added.


Configure Log
-

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "cmake-file-api(7)" gained a new "configureLog" object kind that
  enables stable access to the "cmake-configure-log(7)".


Commands


* The "add_custom_command()" and "add_custom_target()" commands now
  support "generator expressions" in their "COMMENT" option.

* The "message()" command gained a "CONFIGURE_LOG" mode to record an
  entry in the "cmake-configure-log(7)".

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%z" and "%Z" specifiers for the time zone.

* The "try_compile()" and "try_run()" commands gained a
  "LOG_DESCRIPTION" option specifying text to be recorded in the
  "cmake-configure-log(7)".

* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
  option to skip recording a "cmake-configure-log(7)" entry.


Variables
-

* The "CMAKE__COMPILER_FRONTEND_VARIANT" variable is now set for
  "GNU", "MSVC", and "AppleClang" compilers that have only one
  frontend variant.

* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
  Studio Generators for VS 2017 and above to report the four-component
  Visual Studio version number.


Properties
--

* The "_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added
  to allow the "clang-tidy" tool to export its suggested fixes to a
  set of ".yaml" files. A new
  "CMAKE__CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
  initialize this property.

* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
  to tell the "Xcode" generator to ExtensionKit-based extensions such
  as extensions using the Background Assets framework.  Aspects of the
  embedding can be customized with:

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"


Modules
---

* The "ExternalProject" module "ExternalProject_Add()" command gained
  an "INSTALL_BYPRODUCTS" option to specify files generated by the
  "install" step.

* The "FindCUDAToolkit" module:

  * gained support for the "sbsa-linux" cross compilation target, and

  * now provides an imported target for "nvrtc_static", if found.

* The "FindImageMagick" module now provides imported targets.

* The "FindPython3" and "FindPython" modules gained support for the
  Stable Application Binary Interface.

* The "UseSWIG" module gained the support for the "perl5" language.


Generator Expressions
-

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.


CTest
-

* The "CTEST_NO_TESTS_ACTION" environment variable was added to
  provide a default value for the "--no-tests=" command line
  argument of "ctest(1)".


Deprecated and Removed Features
===

* The "CMakeFiles/CMakeOutput.log

[ANNOUNCE] CMake 3.26.0-rc3 is ready for testing

2023-02-15 Thread John Parent
I am proud to announce the third CMake 3.26 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.26

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.26/release/3.26.html

Some of the more significant changes in CMake 3.26 are:

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.

* Language Standard Flags, such as "-std=c++11", when generated due to
  "target_compile_features()" or "CMAKE__STANDARD", are now
  placed before flags added by "target_compile_options()", rather than
  after them.

* The top-level "project()" call will now emit an author warning if
  the documented command order in relation to
  "cmake_minimum_required()" is not respected.


CMake 3.26 Release Notes


Changes made since CMake 3.25 include the following.


New Features



Languages
-

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.


Command-Line


* The "cmake -E copy" command-line tool now supports a "-t" argument.

* The "cmake -E copy_directory_if_different" command-line tool was
  added.


Configure Log
-

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "cmake-file-api(7)" gained a new "configureLog" object kind that
  enables stable access to the "cmake-configure-log(7)".


Commands


* The "add_custom_command()" and "add_custom_target()" commands now
  support "generator expressions" in their "COMMENT" option.

* The "message()" command gained a "CONFIGURE_LOG" mode to record an
  entry in the "cmake-configure-log(7)".

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%z" and "%Z" specifiers for the time zone.

* The "try_compile()" and "try_run()" commands gained a
  "LOG_DESCRIPTION" option specifying text to be recorded in the
  "cmake-configure-log(7)".

* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
  option to skip recording a "cmake-configure-log(7)" entry.


Variables
-

* The "CMAKE__COMPILER_FRONTEND_VARIANT" variable is now set for
  "GNU", "MSVC", and "AppleClang" compilers that have only one
  frontend variant.

* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
  Studio Generators for VS 2017 and above to report the four-component
  Visual Studio version number.


Properties
--

* The "_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added
  to allow the "clang-tidy" tool to export its suggested fixes to a
  set of ".yaml" files. A new
  "CMAKE__CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
  initialize this property.

* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
  to tell the "Xcode" generator to ExtensionKit-based extensions such
  as extensions using the Background Assets framework.  Aspects of the
  embedding can be customized with:

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"


Modules
---

* The "ExternalProject" module "ExternalProject_Add()" command gained
  an "INSTALL_BYPRODUCTS" option to specify files generated by the
  "install" step.

* The "FindCUDAToolkit" module:

  * gained support for the "sbsa-linux" cross compilation target, and

  * now provides an imported target for "nvrtc_static", if found.

* The "FindImageMagick" module now provides imported targets.

* The "FindPython3" and "FindPython" modules gained support for the
  Stable Application Binary Interface.

* The "UseSWIG" module gained the support for the "perl5" language.


Generator Expressions
-

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.


CTest
-

* The "CTEST_NO_TESTS_ACTION" environment variable was added to
  provide a default value for the "--no-tests=" command line
  argument of "ctest(1)".


Deprecated and Removed Features
===

* The "CMakeFiles/CMakeOutput.log"

[ANNOUNCE] CMake 3.24.4 available for download

2023-03-08 Thread John Parent
We are pleased to announce that CMake 3.24.4 is now available for download.

Please use the previous release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.24.3:

Brad King (11):
  Source: Tell Git not to check whitespace in third-party curses form code
  gitlab-ci: update macOS jobs to use Xcode 14.1
  Tests: Update FindBoost.TestPython for Python 3.11 and 3.12
  MinGW: Fix regression when windres is not found
  Utilities/Release: Use explicit digest for Win7-compatible signature
  gitlab-ci: update macOS jobs to use Xcode 14.2
  Tests: Fix CTest.UpdateGIT under repo-local defaultBranch config
  Help: Restore cmake-buildsystem(7) header-only library example
  GoogleTest: Restore suite name for type-parametrized tests
  file(INSTALL): Fix file ownership regression when running as root on macOS
  CMake 3.24.4

Michael Hirsch (1):
  IntelLLVM: Avoid finding not-yet-supported icpx on Windows

Raul Tambre (1):
  expat: Activate POSIX APIs even without compiler extensions

Sean McBride (1):
  Source: Replace uses of sprintf with safer snprintf in CMake 3.24 branch

Werner, Joerg (1):
  cmGlobalVisualStudioGenerator: Fix compiling as C++20 in VS 2022

leha-bot (1):
  zlib: Fix typo in mangling the crc32() function


[ANNOUNCE] CMake 3.25.3 available for download

2023-03-08 Thread John Parent
  We are pleased to announce that CMake 3.25.3 is now available for
download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.25.2:

Ben Boeckel (1):
  Ninja: require Ninja 1.11 for C++ module support

Brad King (6):
  Android: Provide CMAKE_ANDROID_NDK_VERSION with NDK legacy toolchain file
  curl: Backport upstream curl fixes for no_proxy to CMake 3.25 release
  ExternalProject: Restore driving install through build system
  GoogleTest: Restore suite name for type-parametrized tests
  file(INSTALL): Fix file ownership regression when running as root on macOS
  CMake 3.25.3

Kefu Chai (1):
  FindOpenSP: Use pkg-config only as hints for main code path

Marc Chevrier (1):
  FindPython: Policy CMP0007 must be set to NEW


[ANNOUNCE] CMake 3.26.0-rc6 is ready for testing

2023-03-08 Thread John Parent
I am proud to announce the sixth CMake 3.26 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.26

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.26/release/3.26.html

Some of the more significant changes in CMake 3.26 are:

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.

* Language Standard Flags, such as "-std=c++11", when generated due to
  "target_compile_features()" or "CMAKE__STANDARD", are now
  placed before flags added by "target_compile_options()", rather than
  after them.

* The top-level "project()" call will now emit an author warning if
  the documented command order in relation to
  "cmake_minimum_required()" is not respected.


CMake 3.26 Release Notes


Changes made since CMake 3.25 include the following.


New Features



Languages
-

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.


Command-Line


* The "cmake -E copy" command-line tool now supports a "-t" argument.

* The "cmake -E copy_directory_if_different" command-line tool was
  added.


Configure Log
-

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "cmake-file-api(7)" gained a new "configureLog" object kind that
  enables stable access to the "cmake-configure-log(7)".


Commands


* The "add_custom_command()" and "add_custom_target()" commands now
  support "generator expressions" in their "COMMENT" option.

* The "message()" command gained a "CONFIGURE_LOG" mode to record an
  entry in the "cmake-configure-log(7)".

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%z" and "%Z" specifiers for the time zone.

* The "try_compile()" and "try_run()" commands gained a
  "LOG_DESCRIPTION" option specifying text to be recorded in the
  "cmake-configure-log(7)".

* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
  option to skip recording a "cmake-configure-log(7)" entry.


Variables
-

* The "CMAKE__COMPILER_FRONTEND_VARIANT" variable is now set for
  "GNU", "MSVC", and "AppleClang" compilers that have only one
  frontend variant.

* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
  Studio Generators for VS 2017 and above to report the four-component
  Visual Studio version number.


Properties
--

* The "_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added
  to allow the "clang-tidy" tool to export its suggested fixes to a
  set of ".yaml" files. A new
  "CMAKE__CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
  initialize this property.

* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
  to tell the "Xcode" generator to embed ExtensionKit-based extensions
  such as extensions using the Background Assets framework.  Aspects
  of the embedding can be customized with:

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"


Modules
---

* The "ExternalProject" module's "ExternalProject_Add()" command
  gained an "INSTALL_BYPRODUCTS" option to specify files generated by
  the "install" step.

* The "FindCUDAToolkit" module:

  * gained support for the "sbsa-linux" cross compilation target, and

  * now provides an imported target for "nvrtc_static", if found.

* The "FindImageMagick" module now provides imported targets.

* The "FindPython3" and "FindPython" modules gained support for the
  Stable Application Binary Interface.

* The "UseSWIG" module gained support for the "perl5" language.


Generator Expressions
-

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.


CTest
-

* The "CTEST_NO_TESTS_ACTION" environment variable was added to
  provide a default value for the "--no-tests=" command line
  argument of "ctest(1)".


Deprecated and Removed Features
===

* The "CMakeFiles/CMakeOutput.

[ANNOUNCE] CMake 3.26.0 available for download

2023-03-14 Thread John Parent
We are pleased to announce that CMake 3.26.0 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.26

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.26/release/3.26.html

Some of the more significant changes in CMake 3.26 are:

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.

* Language Standard Flags, such as "-std=c++11", when generated due to
  "target_compile_features()" or "CMAKE__STANDARD", are now
  placed before flags added by "target_compile_options()", rather than
  after them.

* The top-level "project()" call will now emit an author warning if
  the documented command order in relation to
  "cmake_minimum_required()" is not respected.


CMake 3.26 Release Notes


Changes made since CMake 3.25 include the following.


New Features



Languages
-

* The "ASM_MARMASM" language was added to support the Microsoft ARM
  assembler language.


Command-Line


* The "cmake -E copy" command-line tool now supports a "-t" argument.

* The "cmake -E copy_directory_if_different" command-line tool was
  added.


Configure Log
-

* CMake now writes a YAML log of configure-time checks to
  "CMakeFiles/CMakeConfigureLog.yaml" under the top of the build tree.
  See the "cmake-configure-log(7)" manual.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "fileSets" field and associated "fileSetIndex" field to
  "sources" objects.

* The "cmake-file-api(7)" gained a new "configureLog" object kind that
  enables stable access to the "cmake-configure-log(7)".


Commands


* The "add_custom_command()" and "add_custom_target()" commands now
  support "generator expressions" in their "COMMENT" option.

* The "message()" command gained a "CONFIGURE_LOG" mode to record an
  entry in the "cmake-configure-log(7)".

* The "string(TIMESTAMP)" and "file(TIMESTAMP)" commands now support
  the "%z" and "%Z" specifiers for the time zone.

* The "try_compile()" and "try_run()" commands gained a
  "LOG_DESCRIPTION" option specifying text to be recorded in the
  "cmake-configure-log(7)".

* The "try_compile()" and "try_run()" commands gained a "NO_LOG"
  option to skip recording a "cmake-configure-log(7)" entry.


Variables
-

* The "CMAKE__COMPILER_FRONTEND_VARIANT" variable is now set for
  "GNU", "MSVC", and "AppleClang" compilers that have only one
  frontend variant.

* A "CMAKE_VS_VERSION_BUILD_NUMBER" variable is now set by Visual
  Studio Generators for VS 2017 and above to report the four-component
  Visual Studio version number.


Properties
--

* The "_CLANG_TIDY_EXPORT_FIXES_DIR" target property was added
  to allow the "clang-tidy" tool to export its suggested fixes to a
  set of ".yaml" files. A new
  "CMAKE__CLANG_TIDY_EXPORT_FIXES_DIR" variable was created to
  initialize this property.

* The "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS" target property was added
  to tell the "Xcode" generator to embed ExtensionKit-based extensions
  such as extensions using the Background Assets framework.  Aspects
  of the embedding can be customized with:

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_PATH"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_CODE_SIGN_ON_COPY"

  * "XCODE_EMBED_EXTENSIONKIT_EXTENSIONS_REMOVE_HEADERS_ON_COPY"


Modules
---

* The "ExternalProject" module's "ExternalProject_Add()" command
  gained an "INSTALL_BYPRODUCTS" option to specify files generated by
  the "install" step.

* The "FindCUDAToolkit" module:

  * gained support for the "sbsa-linux" cross compilation target, and

  * now provides an imported target for "nvrtc_static", if found.

* The "FindImageMagick" module now provides imported targets.

* The "FindPython3" and "FindPython" modules gained support for the
  Stable Application Binary Interface.

* The "UseSWIG" module gained support for the "perl5" language.


Generator Expressions
-

* The "$" generator expression was added to
  prevent usage requirements from being exported to dependent
  projects.


CTest
-

* The "CTEST_NO_TESTS_ACTION" environment variable was added to
  provide a default value for the "--no-tests=" command line
  argument of "ctest(1)".


Deprecated and Removed Features
===

* The "CMakeFiles

[ANNOUNCE] CMake 3.26.1 available for download

2023-03-23 Thread John Parent
  We are pleased to announce that CMake 3.26.1 is now available for
download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.0:

Brad King (13):
  WriteBasicConfigVersionFile: Fix regression in ARCH_INDEPENDENT check
  cmCxxModuleMapper: Remove redundant path conversion callbacks
  cmCxxModuleMapper: Use value semantics in path conversion callback
  cmGlobalNinjaGenerator: Factor out GNU-like command-line detection on
Windows
  cmGlobalNinjaGenerator: Detect GNU-like command-line for dyndep collator
  cmLocalNinjaGenerator: De-duplicate condition for using 'cmd /C' on
Windows
  cmDyndepCollation: Drop outdated mentions of
CXX_MODULE_INTERNAL_PARTITIONS
  cmGlobalNinjaGenerator: Use forward slashes in clang modmap format on
Windows
  Tests: Comment RunCMake.Ninja ShowIncludes sample input languages
  Clang: Record Clang 16.0 C++ modules flags only for GNU-like front-end
  Ninja: Wrap rules using '>' shell redirection with 'cmd /C' on Windows
  FindHDF5: Restore parallel HDF5 detection with only CXX enabled
  CMake 3.26.1

Marc Chevrier (1):
  FindPython: ensure Stable ABI is correctly handled

YR Chen (1):
  Ninja: Restore detection of clang-cl showIncludes prefix

scivision (1):
  FindMatlab: add version/release map for R2023a


[ANNOUNCE] CMake 3.26.2 available for download

2023-03-30 Thread John Parent
We are pleased to announce that CMake 3.26.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.1:

Brad King (4):
  cmGlobalGenerator: Factor out helper to check target ordering
  Ninja,Makefile: Restore Fortran module scanning in static library cycle
  Ninja: Restore slash style for MinGW tools when extra languages are
enabled
  CMake 3.26.2

YR Chen (1):
  Swift: Restore compatibility with old C++ driver


[ANNOUNCE] CMake 3.26.3 available for download

2023-04-04 Thread John Parent
We are pleased to announce that CMake 3.26.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.2:

Brad King (4):
  VS: Remove extra try_compile argument in Intel Fortran check
  Xcode: Fix detection of Swift compiler location for Xcode 14.3
  Tests: Teach RunCMake to ignore Xcode DVTCoreDeviceEnabledState warnings
  CMake 3.26.3


[ANNOUNCE] CMake 3.26.4 available for download

2023-05-18 Thread John Parent
  We are pleased to announce that CMake 3.26.4 is now available for
download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.3:

Ben Boeckel (1):
  FindPython: fix interpreter launcher variable spelling

Brad King (3):
  Help: Remove duplicated word in COMPILE_OPTIONS target property docs
  Ninja: Restore detection of msvc-wine showIncludes prefix
  CMake 3.26.4

Even Rouault (1):
  FindJNI: add Ubuntu specific paths for more recent JDK versions

Marc Chevrier (1):
  Help: CMP0105 policy: clarifications

Robert Maynard (5):
  FindCUDAToolkit: nvptxcompiler_static correctly specify dependencies
  FindCUDAToolkit: Add dependency between cusparse and nvJitLink
  FindCUDAToolkit: Fix nvrtc_static dependencies on Windows
  FindCUDAToolkit: Add missing static library dependencies on pthread and
libdl
  FindCUDAToolkit: Support CUDA version extraction from version.json


[ANNOUNCE] CMake 3.27.0-rc2 is ready for testing

2023-06-12 Thread John Parent
  I am proud to announce the second* CMake 3.27 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.27

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.27/release/3.27.html


*Note: The first release candidate, 3.27.0-rc1, was released but not
announced
due to regressions discovered prior to the announcement process.

Some of the more significant changes in CMake 3.27 are:

* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.

* The "SKIP_LINTING" source file property was added to suppress
  target-wide code checks on specific sources.

* The "COMPILE_ONLY" generator expression was added to specify
  compilation usage requirements without any linking requirements.

* Compatibility with versions of CMake older than 3.5 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* The "FindCUDA" module, which has been deprecated since CMake 3.10,
  has been removed by policy "CMP0146".  Port projects to CMake's
  first-class "CUDA" language support.

* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
  deprecated since CMake 3.12, have been removed by policy "CMP0148".
  Port projects to "FindPython3", "FindPython2", or "FindPython".

* "cmake --build $dir --verbose" will now print the working directory
  and command line used to perform the build.


CMake 3.27 Release Notes


Changes made since CMake 3.26 include the following.


New Features



Debugger


* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.


Presets
---

* "cmake-presets(7)" files now support schema version "7".

* "cmake-presets(7)" now supports "$penv{}" macro expansion in
  "include" fields.


Generators
--

* The Makefile and Ninja generators now support using the "--
  dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
  LLD 12.0.0, so that files read by the linker will cause a relink if
  they change (typically modified timestamps). See the
  "CMAKE_LINK_DEPENDS_USE_LINKER" variable.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.


Languages
-

* The "CXX" language now treats source file extensions ".ccm",
  ".cxxm", and ".c++m" as C++.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "frameworks" field in the "compileGroups" objects.


Platforms
-

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.


Commands


* The "add_custom_command()" command gained a new
  "DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
  add any dependencies implied by the target to which it is attached.
  The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
  added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
  "add_custom_command()" command.

* The "cmake_file_api()" command was added for projects to add "CMake
  file API" queries for the current CMake run.

* The "find_package()" command now searches prefixes specified by
  upper-case "_ROOT" CMake variables and upper-case
  "_ROOT" environment variables. See policy "CMP0144".

* The "install(CODE)" and "install(SCRIPT)" commands now support the
  "$" generator expression.


Variables
-

* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
  "DLL_NAME_WITH_SOVERSION" target property were added to optionally
  append the "SOVERSION" to the filename of the ".dll" part of a
  shared library on Windows.

* Variables "CMAKE_VS_DEBUGGER_COMMAND",
  "CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
  "CMAKE_VS_DEBUGGER_ENVIRONMENT", and
  "CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
  corresponding target properties.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
  added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
  target property on all targets when they are created.


Properties
--

* A "CUDA_CUBIN_COMPILATION" target property was added to Object
  Libraries to support compiling to ".cubin" files instea

[ANNOUNCE] CMake 3.27.0-rc3 is ready for testing

2023-06-20 Thread John Parent
  I am proud to announce the third CMake 3.27 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.27

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.27/release/3.27.html


Some of the more significant changes in CMake 3.27 are:

* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.

* The "SKIP_LINTING" source file property was added to suppress
  target-wide code checks on specific sources.

* The "COMPILE_ONLY" generator expression was added to specify
  compilation usage requirements without any linking requirements.

* Compatibility with versions of CMake older than 3.5 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* The "FindCUDA" module, which has been deprecated since CMake 3.10,
  has been removed by policy "CMP0146".  Port projects to CMake's
  first-class "CUDA" language support.

* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
  deprecated since CMake 3.12, have been removed by policy "CMP0148".
  Port projects to "FindPython3", "FindPython2", or "FindPython".

* "cmake --build $dir --verbose" will now print the working directory
  and command line used to perform the build.


CMake 3.27 Release Notes


Changes made since CMake 3.26 include the following.


New Features



Debugger


* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.


Presets
---

* "cmake-presets(7)" files now support schema version "7".

* "cmake-presets(7)" now supports "$penv{}" macro expansion in
  "include" fields.


Generators
--

* The Makefile and Ninja generators now support using the "--
  dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
  LLD 12.0.0, so that files read by the linker will cause a relink if
  they change (typically modified timestamps). See the
  "CMAKE_LINK_DEPENDS_USE_LINKER" variable.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.


Languages
-

* The "CXX" language now treats source file extensions ".ccm",
  ".cxxm", and ".c++m" as C++.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "frameworks" field in the "compileGroups" objects.


Platforms
-

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.


Commands


* The "add_custom_command()" command gained a new
  "DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
  add any dependencies implied by the target to which it is attached.
  The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
  added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
  "add_custom_command()" command.

* The "cmake_file_api()" command was added for projects to add "CMake
  file API" queries for the current CMake run.

* The "find_package()" command now searches prefixes specified by
  upper-case "_ROOT" CMake variables and upper-case
  "_ROOT" environment variables. See policy "CMP0144".

* The "install(CODE)" and "install(SCRIPT)" commands now support the
  "$" generator expression.


Variables
-

* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
  "DLL_NAME_WITH_SOVERSION" target property were added to optionally
  append the "SOVERSION" to the filename of the ".dll" part of a
  shared library on Windows.

* Variables "CMAKE_VS_DEBUGGER_COMMAND",
  "CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
  "CMAKE_VS_DEBUGGER_ENVIRONMENT", and
  "CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
  corresponding target properties.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
  added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
  target property on all targets when they are created.


Properties
--

* A "CUDA_CUBIN_COMPILATION" target property was added to Object
  Libraries to support compiling to ".cubin" files instead of host
  object files. Currently only supported with NVIDIA.

* A "CUDA_FATBIN_COMPILATION" target property was added to Object
  Libraries to s

[ANNOUNCE] CMake 3.27.0-rc4 is ready for testing

2023-06-30 Thread John Parent
I am proud to announce the fourth CMake 3.27 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.27

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.27/release/3.27.html


Some of the more significant changes in CMake 3.27 are:

* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.

* The "SKIP_LINTING" source file property was added to suppress
  target-wide code checks on specific sources.

* The "COMPILE_ONLY" generator expression was added to specify
  compilation usage requirements without any linking requirements.

* Compatibility with versions of CMake older than 3.5 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* The "FindCUDA" module, which has been deprecated since CMake 3.10,
  has been removed by policy "CMP0146".  Port projects to CMake's
  first-class "CUDA" language support.

* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
  deprecated since CMake 3.12, have been removed by policy "CMP0148".
  Port projects to "FindPython3", "FindPython2", or "FindPython".

* "cmake --build $dir --verbose" will now print the working directory
  and command line used to perform the build.


CMake 3.27 Release Notes


Changes made since CMake 3.26 include the following.


New Features



Debugger


* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.


Presets
---

* "cmake-presets(7)" files now support schema version "7".

* "cmake-presets(7)" now supports "$penv{}" macro expansion in
  "include" fields.


Generators
--

* The Makefile and Ninja generators now support using the "--
  dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
  LLD 12.0.0, so that files read by the linker will cause a relink if
  they change (typically modified timestamps). See the
  "CMAKE_LINK_DEPENDS_USE_LINKER" variable.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.


Languages
-

* The "CXX" language now treats source file extensions ".ccm",
  ".cxxm", and ".c++m" as C++.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "frameworks" field in the "compileGroups" objects.


Platforms
-

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.


Commands


* The "add_custom_command()" command gained a new
  "DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
  add any dependencies implied by the target to which it is attached.
  The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
  added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
  "add_custom_command()" command.

* The "cmake_file_api()" command was added for projects to add "CMake
  file API" queries for the current CMake run.

* The "find_package()" command now searches prefixes specified by
  upper-case "_ROOT" CMake variables and upper-case
  "_ROOT" environment variables. See policy "CMP0144".

* The "install(CODE)" and "install(SCRIPT)" commands now support the
  "$" generator expression.


Variables
-

* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
  "DLL_NAME_WITH_SOVERSION" target property were added to optionally
  append the "SOVERSION" to the filename of the ".dll" part of a
  shared library on Windows.

* Variables "CMAKE_VS_DEBUGGER_COMMAND",
  "CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
  "CMAKE_VS_DEBUGGER_ENVIRONMENT", and
  "CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
  corresponding target properties.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
  added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
  target property on all targets when they are created.


Properties
--

* A "CUDA_CUBIN_COMPILATION" target property was added to Object
  Libraries to support compiling to ".cubin" files instead of host
  object files. Currently only supported with NVIDIA.

* A "CUDA_FATBIN_COMPILATION" target property was added to Object
  Libraries to su

[ANNOUNCE] CMake 3.27.0-rc5 is ready for testing

2023-07-14 Thread John Parent
I am proud to announce the fifth CMake 3.27 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.27

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.27/release/3.27.html


Some of the more significant changes in CMake 3.27 are:

* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.

* The "SKIP_LINTING" source file property was added to suppress
  target-wide code checks on specific sources.

* The "COMPILE_ONLY" generator expression was added to specify
  compilation usage requirements without any linking requirements.

* Compatibility with versions of CMake older than 3.5 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* The "FindCUDA" module, which has been deprecated since CMake 3.10,
  has been removed by policy "CMP0146".  Port projects to CMake's
  first-class "CUDA" language support.

* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
  deprecated since CMake 3.12, have been removed by policy "CMP0148".
  Port projects to "FindPython3", "FindPython2", or "FindPython".

* "cmake --build $dir --verbose" will now print the working directory
  and command line used to perform the build.


CMake 3.27 Release Notes


Changes made since CMake 3.26 include the following.


New Features



Debugger


* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.


Presets
---

* "cmake-presets(7)" files now support schema version "7".

* "cmake-presets(7)" now supports "$penv{}" macro expansion in
  "include" fields.


Generators
--

* The Makefile and Ninja generators now support using the "--
  dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
  LLD 12.0.0, so that files read by the linker will cause a relink if
  they change (typically modified timestamps). See the
  "CMAKE_LINK_DEPENDS_USE_LINKER" variable.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.


Languages
-

* The "CXX" language now treats source file extensions ".ccm",
  ".cxxm", and ".c++m" as C++.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "frameworks" field in the "compileGroups" objects.


Platforms
-

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.


Commands


* The "add_custom_command()" command gained a new
  "DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
  add any dependencies implied by the target to which it is attached.
  The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
  added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
  "add_custom_command()" command.

* The "cmake_file_api()" command was added for projects to add "CMake
  file API" queries for the current CMake run.

* The "find_package()" command now searches prefixes specified by
  upper-case "_ROOT" CMake variables and upper-case
  "_ROOT" environment variables. See policy "CMP0144".

* The "install(CODE)" and "install(SCRIPT)" commands now support the
  "$" generator expression.


Variables
-

* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
  "DLL_NAME_WITH_SOVERSION" target property were added to optionally
  append the "SOVERSION" to the filename of the ".dll" part of a
  shared library on Windows.

* Variables "CMAKE_VS_DEBUGGER_COMMAND",
  "CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
  "CMAKE_VS_DEBUGGER_ENVIRONMENT", and
  "CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
  corresponding target properties.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
  added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
  target property on all targets when they are created.


Properties
--

* A "CUDA_CUBIN_COMPILATION" target property was added to Object
  Libraries to support compiling to ".cubin" files instead of host
  object files. Currently only supported with NVIDIA.

* A "CUDA_FATBIN_COMPILATION" target property was added to Object
  Libraries to sup

[ANNOUNCE] CMake 3.27.0 available for download

2023-07-18 Thread John Parent
We are pleased to announce that CMake 3.27.0 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.27

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.27/release/3.27.html


Some of the more significant changes in CMake 3.27 are:

* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.

* The "SKIP_LINTING" source file property was added to suppress
  target-wide code checks on specific sources.

* The "COMPILE_ONLY" generator expression was added to specify
  compilation usage requirements without any linking requirements.

* Compatibility with versions of CMake older than 3.5 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* The "FindCUDA" module, which has been deprecated since CMake 3.10,
  has been removed by policy "CMP0146".  Port projects to CMake's
  first-class "CUDA" language support.

* The "FindPythonInterp" and "FindPythonLibs" modules, which have been
  deprecated since CMake 3.12, have been removed by policy "CMP0148".
  Port projects to "FindPython3", "FindPython2", or "FindPython".

* "cmake --build $dir --verbose" will now print the working directory
  and command line used to perform the build.


CMake 3.27 Release Notes


Changes made since CMake 3.26 include the following.


New Features



Debugger


* "cmake(1)" now supports interactive debugging of the CMake language.
  See the "--debugger" option.


Presets
---

* "cmake-presets(7)" files now support schema version "7".

* "cmake-presets(7)" now supports "$penv{}" macro expansion in
  "include" fields.


Generators
--

* The Makefile and Ninja generators now support using the "--
  dependency-file" linker flag, added by GNU Binutils 2.35 and LLVM's
  LLD 12.0.0, so that files read by the linker will cause a relink if
  they change (typically modified timestamps). See the
  "CMAKE_LINK_DEPENDS_USE_LINKER" variable.

* The Visual Studio Generators for VS 2015 and above learned to select
  the Windows SDK version explicitly using a "version=" field in the
  "CMAKE_GENERATOR_PLATFORM" variable. See Visual Studio Platform
  Selection.


Languages
-

* The "CXX" language now treats source file extensions ".ccm",
  ".cxxm", and ".c++m" as C++.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 "target" object gained
  a new "frameworks" field in the "compileGroups" objects.


Platforms
-

* Apple text-based stubs (i.e. ".tbd" files) may now be created for
  shared libraries on macOS.  See the "ENABLE_EXPORTS" property.


Commands


* The "add_custom_command()" command gained a new
  "DEPENDS_EXPLICIT_ONLY" option to tell the Ninja Generators not to
  add any dependencies implied by the target to which it is attached.
  The "CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY" variable was
  added to enable "DEPENDS_EXPLICIT_ONLY" on all calls to
  "add_custom_command()" command.

* The "cmake_file_api()" command was added for projects to add "CMake
  file API" queries for the current CMake run.

* The "find_package()" command now searches prefixes specified by
  upper-case "_ROOT" CMake variables and upper-case
  "_ROOT" environment variables. See policy "CMP0144".

* The "install(CODE)" and "install(SCRIPT)" commands now support the
  "$" generator expression.


Variables
-

* The "CMAKE_DLL_NAME_WITH_SOVERSION" variable and associated
  "DLL_NAME_WITH_SOVERSION" target property were added to optionally
  append the "SOVERSION" to the filename of the ".dll" part of a
  shared library on Windows.

* Variables "CMAKE_VS_DEBUGGER_COMMAND",
  "CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS",
  "CMAKE_VS_DEBUGGER_ENVIRONMENT", and
  "CMAKE_VS_DEBUGGER_WORKING_DIRECTORY" were added to initialize
  corresponding target properties.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION" variable was
  added to initialize the "VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION"
  target property on all targets when they are created.


Properties
--

* A "CUDA_CUBIN_COMPILATION" target property was added to Object
  Libraries to support compiling to ".cubin" files instead of host
  object files. Currently only supported with NVIDIA.

* A "CUDA_FATBIN_COMPILATION" target property was added to Object
  Lib

[ANNOUNCE] CMake 3.26.5 available for download

2023-07-19 Thread John Parent
We are pleased to announce that CMake 3.26.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.4:

Brad King (2):
  Help: Restore project command docs for default languages and NONE
  CMake 3.26.5

Craig Scott (3):
  Sphinx: Specify encoding when opening files for title extraction
  Sphinx: Modernize UTF-8 encoding handling when updating CMake.qhp
  Tests: Always load presets schema as UTF-8

Daniel Brondani (1):
  ARMClang: Fix computation of compiler semantic version patch level

Jared Dillard (1):
  Utilities/Sphinx: Fix parallel documentation builds for 3.26

Raul Tambre (1):
  CMakeDetermineCompilerABI: Avoid removing the flag after -Werror


[ANNOUNCE] CMake 3.27.1 available for download

2023-07-25 Thread John Parent
We are pleased to announce that CMake 3.27.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.0:

Ben Boeckel (4):
  Tests/FortranOnly: add a test case for issue #25112
  Tests/RunCMake/CXXModules: add a test for issue #25112
  cmComputeLinkInformation: track OBJECT library dependencies
  cmTarget: Restore Fortran_PREPROCESS property initialization

Brad King (2):
  FindOpenSSL: Prefer OPENSSL_ROOT_DIR only if non-empty
  CMake 3.27.1

Kyle Edwards (1):
  CTest: Fix regression in calculating test timeout

Tomoharu Kitawaki (1):
  FindCUDAToolkit: Fix nvrtc_builtins library name

Zack Galbreath (1):
  ctest: Update ctest_submit for CDash behavior change


[ANNOUNCE] CMake 3.27.2 available for download

2023-08-10 Thread John Parent
We are pleased to announce that CMake 3.27.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.1:

Adrien Ollier (1):
  Help/guide/importing-exporting: Update line numbers in prose

Brad King (12):
  Help: Document that if(EXISTS) requires paths to be readable
  Source: Link libatomic when needed on Linux 32-bit ARM
  VS: Revert "Add CMake input files to ZERO_CHECK"
  Help: Add 3.27 release note on VS default SDK selection
  ci: Suppress cmake.org html documentation search results for index entries
  Tests: Remove redundant condition in RunCMake.GeneratorPlatform test
  VS: Do not print empty Windows SDK version when none is selected
  VS: Consolidate Windows SDK major version selection dispatch
  VS: Teach CMAKE_GENERATOR_PLATFORM to use Windows 10 SDKs for
older versions
  VS: Teach CMAKE_GENERATOR_PLATFORM to support Windows 8.1 SDK selection
  VS: Select latest Windows SDK even when targeting Windows 8.1 and below
  CMake 3.27.2

Christian Oyarzun (1):
  FindJNI: Update for Xcode greater than 12.1 on macOS

Craig Scott (4):
  Help: Fix indenting within TARGET_RUNTIME_DLLS genex docs
  Help: Improve formatting and cross-references for DEPENDS_EXPLICIT_ONLY
  Help: Improve formatting and fix wording for ENABLE_EXPORTS
  cmLocalGenerator: Fix trivial spelling error in code comment

Evan Wilde (1):
  file(GENERATE): Restore INPUT|CONTENT parse checking

Marc Chevrier (2):
  FindPython: Restore Python_SITE* values for versions below 3.10
  cmList: Fix performance regression in append/prepend


[ANNOUNCE] CMake 3.27.3 available for download

2023-08-16 Thread John Parent
We are pleased to announce that CMake 3.27.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.2:

Brad King (3):
  FindJNI: Restore support for macOS without Xcode
  Utilities/Release: Remove unused documentation build settings
  CMake 3.27.3

Marc Chevrier (1):
  Apple Text Stubs (.tbd): various fixes

Raul Tambre (1):
  Clang: use -std=c23 for Clang 18+

Sylvain Joubert (1):
  Unity: use C-style comments to work both with C and C++

Vasily Ryabov (1):
  FindPython: add support for Python 3.13

William Sciaroni (1):
  GHS: Escape custom command comments

Đoàn Trần Công Danh (1):
  testDebuggerNamedPipe: fix for cppdap with nlohmann_json


[ANNOUNCE] CMake 3.27.4 available for download

2023-08-23 Thread John Parent
We are pleased to announce that CMake 3.27.4 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.3:

Brad King (5):
  cppdap: Update script to get version as of 2023-08-17
  VS: Remove duplicate import in compiler id vcxproj
  Help: Document cmake_minimum_required deprecation of old versions
  FindZLIB: Fix extraction of two-component version number 1.3
  CMake 3.27.4

Marc Chevrier (1):
  list(INSERT): restore old behavior

Tarun Prabhu (1):
  LLVMFlang-Fortran: Add flags for build types

cppdap Upstream (1):
  cppdap 2023-08-17 (cc2f2058)


[ANNOUNCE] CMake 3.27.5 available for download

2023-09-14 Thread John Parent
We are pleased to announce that CMake 3.27.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.4:

Ben Boeckel (4):
  cmGeneratorTarget: support config-independent Fortran source queries
  cmComputeLinkInformation: compute link info for module-using targets
  FortranCInterface: forward `CMAKE_OSX_DEPLOYMENT_TARGET`
  cxxmodules: detect and message about non-compiled sources

Brad King (5):
  Source: Link libatomic when needed on any Linux architecture
  Help: MSVC_DEBUG_INFORMATION_FORMAT is initialized from associated
variable
  FindBoost: Add support for Boost 1.83
  Autogen: Evaluate INTERFACE_AUTOMOC_MACRO_NAMES efficiently
  CMake 3.27.5

Robert Maynard (1):
  VS: Avoid unnecessary CUDA device linking for OBJECT libraries

Zack Galbreath (1):
  ctest: Restore support for http redirects during Submit step


[ANNOUNCE] CMake 3.27.6 available for download

2023-09-20 Thread John Parent
We are pleased to announce that CMake 3.27.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.5:

Ben Boeckel (5):
  Tests/FortranModules: move issue 25112 fix from FortranOnly
  Tests/FortranModules: add a test case for #25223
  add_custom_target: Fix regression with Fortran sources
  Tests/FortranModules: also test INTERFACE targets with Fortran sources
  Tests/FortranModules: add a test for iface Fortran sources

Brad King (1):
  CMake 3.27.6


[ANNOUNCE] CMake 3.27.7 available for download

2023-10-06 Thread John Parent
We are pleased to announce that CMake 3.27.7 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.6:

Brad King (6):
  Android: Require Clang 18 for -std=c++23
  Tests: Clarify RunCMake.CTestTimeout case name
  ctest: Restore support for --timeout values higher than default test
timeout
  Help: Document CMP0124 behavior on already-set variables
  FindPostgreSQL: Add support for version 16
  CMake 3.27.7

Orkun Tokdemir (1):
  Linting: Fix empty evaluated genex


[ANNOUNCE] CMake 3.28.0-rc1 is ready for testing

2023-10-11 Thread John Parent
  I am proud to announce the first CMake 3.28 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was a

[ANNOUNCE] CMake 3.28.0-rc2 is ready for testing

2023-10-18 Thread John Parent
I am proud to announce the second CMake 3.28 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was ad

[ANNOUNCE] CMake 3.28.0-rc3 is ready for testing

2023-10-25 Thread John Parent
I am proud to announce the third CMake 3.28 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was add

CMake 3.28.0-rc4 is ready for testing

2023-11-06 Thread John Parent
I am proud to announce the fourth CMake 3.28 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was ad

[ANNOUNCE] CMake 3.28.0-rc5 is ready for testing

2023-11-15 Thread John Parent
I am proud to announce the fifth CMake 3.28 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was add

[ANNOUNCE] CMake 3.27.8 available for download

2023-11-15 Thread John Parent
We are pleased to announce that CMake 3.27.8 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.7:

Ben Boeckel (4):
  Tests/ObjectLibrary: fix comment
  cmComputeLinkDepends: also copy the target from object link items
  cmComputeLinkInformation: skip over linking to items for object purposes
  Fortran: Restore support for TARGET_OBJECTS providing modules

Brad King (5):
  curl: Backport SOCKS5 heap buffer overflow fix from curl 8.4.0
  GetPrerequisites: Revert "Ignore relative paths printed by ldd"
  cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop body
  cmComputeLinkInformation: Track targets named by TARGET_OBJECTS sources
  CMake 3.27.8

Christoph Reiter (1):
  FindOpenMP: Add support for openmp 5.1 (llvm 17) and 5.2


[ANNOUNCE] CMake 3.26.6 available for download

2023-11-27 Thread John Parent
We are pleased to announce that CMake 3.26.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.26.5:

Brad King (3):
  curl: Backport SOCKS5 heap buffer overflow fix from curl 8.4.0
  Help: Fix ctest(1) manual links to www.cdash.org
  CMake 3.26.6

Kyle Edwards (1):
  fileapi: Fix file sets' base directories relative to top source

Tomoharu Kitawaki (1):
  FindCUDAToolkit: Fix nvrtc_builtins library name

Zack Galbreath (2):
  ctest: Update ctest_submit for CDash behavior change
  ctest: Restore support for http redirects during Submit step


[ANNOUNCE] CMake 3.27.9 available for download

2023-11-28 Thread John Parent
We are pleased to announce that CMake 3.27.9 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.27.8:

Ben Boeckel (3):
  Tests/FortranModules: add test for TARGET_OBJECTS-as-sources module usage
  Tests/FortranModules: add test for TARGET_OBJECTS-as-linked-items module
usage
  Ninja: Revert exact collation dependencies for 3.27

Brad King (3):
  Help: Document that CMP0149 should be set before project()
  Help: Fix ctest(1) manual links to www.cdash.org
  CMake 3.27.9

Kyle Edwards (1):
  fileapi: Fix file sets' base directories relative to top source

Marc Chevrier (1):
  Ninja: depfile: keep rules without dependencies


CMake 3.28.0 available for download

2023-12-06 Thread John Parent
We are pleased to announce that CMake 3.28.0 is now available for download.

  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.28

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.28/release/3.28.html

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target pr

[ANNOUNCE] CMake 3.28.1 available for download

2023-12-14 Thread John Parent
We are pleased to announce that CMake 3.28.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

Thanks for your support!


Changes made since CMake 3.28.0:

Ben Boeckel (12):
  Help/create_test_sourcelist: reflow prose
  Help/create_test_sourcelist: add formatting markup
  Help/create_test_sourcelist: format arguments in the signature docs
  cmGeneratorTarget: disable C++ module scanning for verify targets
  cmQtAutoGenInitializer: disable C++ module scanning for autogen sources
  cmLocalGenerator: disable C++ module scanning for copied PCH sources
  cmLocalGenerator: disable C++ module scanning for unity sources
  cmGlobalXCodeGenerator: disable C++ module scanning for force-lang files
  FindFreetype: always find the config module quietly
  FindFreetype: also consider RelWithDebInfo-built libraries
  FindTIFF: always find the config module quietly
  FindTIFF: consider `IMPLIB`-using platforms

Brad King (8):
  FindCUDAToolkit: Fix stub library representation on reconfigure
  Tests: Update for changes to upstream ninja development version
  gitlab-ci: update macOS jobs to use Xcode 15.1
  FindMatlab: Fix regression on Windows Registry lookup failure
  FindFreetype: Fix success message when config module is found
  FindTIFF: Restore support for projects that do not enable CMP0057
  FindMatlab: Fix processing of multiple versions from Windows Registry
  CMake 3.28.1

Craig Scott (4):
  Help: Fix malformed cross-reference in FetchContent docs
  Help: Add missing versionadded directives for IMPORTED_IMPLIB
  Help: XCFrameworks and stubs are supported on all Apple, not just macOS
  Help: Note case where IMPORTED_IMPLIB isn't needed for (xc)frameworks

Mattias Ellert (1):
  Tests: Do not expect EINTR when sleep is interrupted on GNU/Hurd

Robert Maynard (1):
  CUDAToolkit: Restore ability to find cupti headers


[ANNOUNCE] CMake 3.28.2 available for download

2024-01-29 Thread John Parent
We are pleased to announce that CMake 3.28.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.28.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/141

Thanks for your support!


Changes made since CMake 3.28.1:

Ben Boeckel (12):
  cmNinjaTargetGenerator: use scan flag for modmap usage in exported
commands
  cmDyndepCollation: clarify CXX_MODULES-without-BMI error message
  Help: update lua.org links to be HTTPS
  ExternalProject: revert `BYPRODUCTS` for download outputs
  Tests/CXXModules: add a test with unity build support
  cmGlobalGenerator: add unity sources after computing target compile
features
  cmLocalGenerator: ignore scanned sources for unity builds
  cmVisualStudio10TargetGenerator: fix typo in flag name
  Tests/CXXModules: add a test case for VS generation without flags
  cmVisualStudio10TargetGenerator: always specify scanning
  Tests/CXXModules/scan_properties: use `ixx` extension
  cxxmodules: make export trampoline script files unique

Brad King (12):
  FindBoost: Add support for Boost 1.84
  zlib: Update script to get zlib 1.2.13
  CUDA/Clang: Update architectures supported by CUDA 12
  CUDA/Clang: Record architectures supported by Clang 16
  Source: Simplify hasher object construction
  Tests: Add missing include in testUVProcessChainHelper on Windows
  cmUVProcessChain: Simplify builder initialization
  cmUVProcessChain: Simplify SetExternalStream usage
  cmUVProcessChain: Tolerate fileno() of invalid FILE stream
  Revert use of libuv for process execution for 3.28
  FindFreetype: Revert use of upstream freetype cmake package
  CMake 3.28.2

Craig Scott (7):
  Help: Fix typo not accounting for addition of visionOS
  Help: Note CMAKE_IOS_INSTALL_COMBINED deprecation in toolchains
example
  Help: Update missed text for dynamically generated resource spec files
  Help: Use  for non-keyword arguments in property command
signatures
  Help: Use  consistently in property getter commands
  Help: Add missing DIRECTORY keyword to set_tests_properties()
signature
  Help: Fix wrong return values for unset inherited properties

Florian Weimer (1):
  Tests: Improve C compatibility of LoadCommand tests

Gergely Meszaros (2):
  HIP: Really forward CMAKE_HIP_HOST_COMPILER in check_language(HIP)
  HIP: Propagate CMAKE_HIP_PLATFORM from/to the test project in
check_language

Hermann von Kleist (8):
  FindMatlab: Restore support for versions without VersionInfo.xml
  FindMatlab: use correct registry view when extracting versions
  FindMatlab: Restore support for finding EXACT major.minor version
  FindMatlab: matlab_get_release_name_from_version is a function now
  FindMatlab: Document all registry paths for version lookup
  FindMatlab: Fix error message from function
  FindMatlab: Some versions use major.minor.patch in the registry
  FindMatlab: Document that version mappings do not apply to MCR

Jason E. Hale (1):
  UsePkgConfig: Restore removal of trailing whitespace from pkg-config
output

Marc Chevrier (3):
  Xcode: Restore support for standalone IMPORTED_LOCATION_
  Ninja: LINK_OPTIONS property should support newlines
  Help: string(LENGTH): Fix synopsis link to command description

Matheus Izvekov (1):
  cxxmodules: compute link information for C++ module-consuming targets

Orkun Tokdemir (4):
  Makefile: Reduce string copies
  Makefile: Fix double escaping when DEPFILE is used
  cmQtAutoGenInitializer: Improve Const-correctness
  Autogen: Forward dependencies when both Makefile and DEPFILE are used

Rafael Sadowski (1):
  Source: Restore compilation on OpenBSD

Robert Maynard (2):
  CUDAToolkit: Correctly search all include paths from compiler
  Tests: Verify CUDA::cupti existence on a subset of machines

scivision (2):
  FindMatlab: Fix major.minor version lookups in Windows Registry
  FindMatlab: Accept long version in
matlab_get_release_name_from_version

zlib upstream (1):
  zlib 2022-10-12 (04f42cec)


[ANNOUNCE] CMake 3.28.3 available for download

2024-02-05 Thread John Parent
We are pleased to announce that CMake 3.28.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.28.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/143

Thanks for your support!


Changes made since CMake 3.28.2:

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)


[ANNOUNCE] CMake 3.29.0-rc1 is ready for testing

2024-02-13 Thread John Parent
I am proud to announce the first CMake 3.29 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.29

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.29/release/3.29.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/136

Some of the more significant changes in CMake 3.29 are:

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

* 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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  Its "TARGET" option's "XCFRAMEWORK_LOCATION"
  setting specifies the location of a ".xcframework" that can be
  substituted for an installed target.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.

* The "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.



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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  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.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.


Variables
-

* The "CMAKE_INSTALL_PREFIX" environment variable was added to provide
  a default value for the "CMAKE_INSTALL_PREFIX" 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__COMPILER_LINKER",
  "CMAKE__COMPILER_LINKER_ID",
  "CMAKE__COMPILER_LINKER_VERSION" and
  "CMAKE__COMPILER_LINKER_FRONTEND_VARIANT" variables were added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT__INCLUDE", and "CMAKE_PROJECT__INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.


Properties
--

* The "CROSSCOMPILING_EMULATOR" ta

[ANNOUNCE] CMake 3.29.0-rc2 is ready for testing

2024-02-22 Thread John Parent
  I am proud to announce the second CMake 3.29 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.29

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.29/release/3.29.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/136

Some of the more significant changes in CMake 3.29 are:

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

* 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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  Its "TARGET" option's "XCFRAMEWORK_LOCATION"
  setting specifies the location of a ".xcframework" that can be
  substituted for an installed target.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.

* The "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.



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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  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.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.


Variables
-

* The "CMAKE_INSTALL_PREFIX" environment variable was added to provide
  a default value for the "CMAKE_INSTALL_PREFIX" 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__COMPILER_LINKER",
  "CMAKE__COMPILER_LINKER_ID",
  "CMAKE__COMPILER_LINKER_VERSION" and
  "CMAKE__COMPILER_LINKER_FRONTEND_VARIANT" variables were added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT__INCLUDE", and "CMAKE_PROJECT__INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.


Properties
--

* The "CROSSCOMPILING_EMULATOR"

[ANNOUNCE] CMake 3.29.0-rc3 is ready for testing

2024-03-04 Thread John Parent
I am proud to announce the third CMake 3.29 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.29

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.29/release/3.29.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/136

Some of the more significant changes in CMake 3.29 are:

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

* 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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  Its "TARGET" option's "XCFRAMEWORK_LOCATION"
  setting specifies the location of a ".xcframework" that can be
  substituted for an installed target.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.

* The "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.



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 "PACKAGE_DEPENDENCY" option configures how "find_dependency()"
  calls are exported.  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.

* "install(EXPORT)" and "export(EXPORT)" learned a new
  "EXPORT_PACKAGE_DEPENDENCIES" argument, which can be used to
  generate "find_dependency()" calls based on what targets the
  exported targets depend on.


Variables
-

* The "CMAKE_INSTALL_PREFIX" environment variable was added to provide
  a default value for the "CMAKE_INSTALL_PREFIX" 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__COMPILER_LINKER",
  "CMAKE__COMPILER_LINKER_ID",
  "CMAKE__COMPILER_LINKER_VERSION" and
  "CMAKE__COMPILER_LINKER_FRONTEND_VARIANT" variables were added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT__INCLUDE", and "CMAKE_PROJECT__INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.


Properties
--

* The "CROSSCOMPILING_EMULATOR" ta

[ANNOUNCE] CMake 3.29.0-rc4 is ready for testing

2024-03-14 Thread John Parent
I am proud to announce the fourth CMake 3.29 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.29

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.29/release/3.29.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/136

Some of the more significant changes in CMake 3.29 are:

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

* 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 "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.

* The "ctest -j" option may now be given without a value to let ctest
  choose a default level of parallelism, or with "0" to let ctest use
  unbounded parallelism.  The corresponding "CTEST_PARALLEL_LEVEL"
  environment variable, if set to the empty string, is now equivalent
  to passing "-j" with no value.


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_PREFIX" environment variable was added to provide
  a default value for the "CMAKE_INSTALL_PREFIX" 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__COMPILER_LINKER",
  "CMAKE__COMPILER_LINKER_ID",
  "CMAKE__COMPILER_LINKER_VERSION" and
  "CMAKE__COMPILER_LINKER_FRONTEND_VARIANT" variables were added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT__INCLUDE", and "CMAKE_PROJECT__INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.


Properties
--

* The "CROSSCOMPILING_EMULATOR" target property now supports
  "generator expressions".

* The "UNITY_BUILD" target property now supports the Objective C
  ("OBJC") and Objective C++ ("OBJCXX") languages.

* The "XCODE_EMBED_XPC_SERVICES" target property was added to tell the
  "Xcode" generator what targets to put in the "Em

[ANNOUNCE] CMake 3.29.0 available for download

2024-03-21 Thread John Parent
We are pleased to announce that CMake 3.29 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.29

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.29/release/3.29.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/136

Some of the more significant changes in CMake 3.29 are:

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

* 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 "CMAKE_LINKER_TYPE" variable and corresponding "LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.

* The "ctest -j" option may now be given without a value to let ctest
  choose a default level of parallelism, or with "0" to let ctest use
  unbounded parallelism.  The corresponding "CTEST_PARALLEL_LEVEL"
  environment variable, if set to the empty string, is now equivalent
  to passing "-j" with no value.


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_PREFIX" environment variable was added to provide
  a default value for the "CMAKE_INSTALL_PREFIX" 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__COMPILER_LINKER",
  "CMAKE__COMPILER_LINKER_ID",
  "CMAKE__COMPILER_LINKER_VERSION" and
  "CMAKE__COMPILER_LINKER_FRONTEND_VARIANT" variables were added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT__INCLUDE", and "CMAKE_PROJECT__INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding "TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.


Properties
--

* The "CROSSCOMPILING_EMULATOR" target property now supports
  "generator expressions".

* The "UNITY_BUILD" target property now supports the Objective C
  ("OBJC") and Objective C++ ("OBJCXX") languages.

* The "XCODE_EMBED_XPC_SERVICES" target property was added to tell the
  "Xcode" generator what targets to put 

[ANNOUNCE] CMake 3.28.4 available for download

2024-03-21 Thread John Parent
We are pleased to announce that CMake 3.28.4 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.28.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/144

Thanks for your support!


Changes made since CMake 3.28.3:

Ben Boeckel (26):
  cmDyndepCollation: collapse full path before looking up
  Tests/CXXModules: support testing rebuild conditions
  cxxmodules: return failure from the collator when private usage is found
  Tests/CXXModules: test that objects depend on their modmap files
  cxxmodules: depend on the modmap contents
  cmNinjaTargetGenerator: use `emplace_back` for scanning deps
  Tests/CXXModules: test that objects depend on dependent modules json files
  cmNinjaTargetGenerator: scanning depends on the module metadata
  Tests/CXXModules: add a test to ensure that `restat` works for collation
  Ninja: make the collator rule use `restat = 1`
  Tests/CXXModules: document `CMake_TEST_MODULE_COMPILATION` items
  Tests/CXXModules: support building a project with `Ninja`
  Tests/CXXModules: add a test importing from a `Ninja` install
  cmGeneratorTarget: store synthetic targets in its cache
  Tests/CXXModules: add a test with transitive targets
  cmTarget: copy link libraries from the right properties
  Tests/CXXModules: test transitive modules usage
  cmExportFileGenerator: export link libraries as-is
  cmGeneratorTarget: discover synthetic targets recursively
  Tests/CXXModules: test `cxx_std_20` coming from a dependency
  Clang: detect -resource-dir for clang-scan-deps
  cmGeneratorTarget: collapse paths before querying the fileset cache
  CMakeDetermineCompilerId: use `_ARG1` to query the clang resource dir
  cmExportFileGenerator: only export include paths for HEADERS file sets
  cmImportedCxxModuleInfo: remove unused pointer field
  Tests/CXXModules: add a test using `TARGET_OBJECTS` from modules

Brad King (21):
  Tests/RunCMake/Ninja: Rename showIncludes case for clang-cl <= 17
  gitlab-ci: update macOS jobs to use Xcode 15.2
  cmUVProcessChain: Implement no-extension-on-Windows support with libuv
1.48
  libuv: win/spawn: optionally run executable paths with no file extension
  cmLocalGenerator: Avoid unnecessary lookup without a deployment target
  visionOS: Update deployment-target flag for Xcode 15.1 beta
  Tests: Update RunCMake.XcodeProject-Device for visionOS in Xcode 15.1 beta
  Tests: Enable visionOS tests with Xcode 15.2
  Tests/CommandLength: Refactor test commands to reduce test run time
  Help: Add 3.28.4 release note draft for visionOS updates
  Tests: Update RunCMake.TargetObjects cmake_minimum_required version
  Restore support for TARGET_OBJECTS in link interfaces with unity builds
  Tests/RunCMake/CXXModules: Update VS circular error message
  FindTIFF: Fix name of upstream TIFF cmake package
  Tests: Update RunCMake.CompileFeatures for Xcode 15.3
  Tests: Update RunCMake.CheckCompilerFlag for Xcode 15.3
  gitlab-ci: update macOS jobs to use Xcode 15.3
  Autogen: Restore target-ordering dependencies in Makefiles with DEPFILE
  cmQtAutoGenInitializer: De-duplicate autogen/timestamp target depend logic
  Ninja: Fix Fortran module deps in files INCLUDEd by preprocessed sources
  CMake 3.28.4

Hermann von Kleist (1):
  FindMatlab: Revert undocumented and now-unnecessary full version lookup

Martin Storsjö (1):
  Ninja: Update showIncludes prefix detection for clang-cl 18

Robert Maynard (1):
  FindCUDAToolkit: Fix cudart dependencies


[ANNOUNCE] CMake 3.29.1 available for download

2024-04-03 Thread John Parent
We are pleased to announce that CMake 3.29.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/145

Thanks for your support!


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 < 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: Fix finding IntelLLVM wrappers on Windows
  ctest: Restore enforcement of RESOURCE_LOCK test property
  ARTOS: Add support for finding library files named with 'lib' prefix
  IntelLLVM: Fix link flags with Visual Studio generators
  CMake 3.29.1

Charlotte Koch (1):
  cmSystemTools: Fix 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__USING_LINKER_
  Help: CMAKE__USING_LINKER_ can be a list of flags
  Help: Restructure and improve LINKER_TYPE docs
  CMakePackageConfigHelpers: Remove unused variable
  CMakePackageConfigHelpers: Use unique variable name for pkg prefix

Evan Wilde (1):
  Swift: Add CMAKE_LINKER_TYPE support

FeRD (Frank Dana) (1):
  Help: Fix location of install() note about superseded commands

scivision (2):
  FindMatlab: R2024a version map
  Help: emphasize need for VS Integrations with oneAPI Fortran


[ANNOUNCE] CMake 3.29.2 available for download

2024-04-11 Thread John Parent
We are pleased to announce that CMake 3.29.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/146

Thanks for your support!


Changes made since CMake 3.29.1:

Brad King (4):
  Tests/RunCMake/CompilerChange: Simplify test cases
  Fix regression on reconfigure with unnormalized -DCMAKE__COMPILER=
  CMakePackageConfigHelpers: Restore undocumented PACKAGE_PREFIX_DIR
variable
  CMake 3.29.2

Evan Wilde (1):
  Swift: Ninja: Remove module dependency for executables

Kai Pastor (1):
  FindJasper: Fix Jasper::Jasper IMPORTED_CONFIGURATIONS

Matthias Isele (2):
  FindOpenSSL: Update layout for Shining Light Productions 32-bit package
  FindOpenSSL: Update layout for Shining Light Productions debug libraries


[ANNOUNCE] CMake 3.28.5 available for download

2024-05-07 Thread John Parent
We are pleased to announce that CMake 3.28.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.28.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/148

Thanks for your support!


Changes made since CMake 3.28.4:

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 (3):
  libuv: Avoid posix_spawn on macOS < 10.8
  cxxmodules: Do not scan sources while testing the compiler
  CMake 3.28.5


[ANNOUNCE] CMake 3.29.3 available for download

2024-05-07 Thread John Parent
We are pleased to announce that CMake 3.29.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/147

Thanks for your support!


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 closer 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: Fix 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_PREFIX_DIR

Raul Tambre (1):
  Help/OBJC_STANDARD: Document Objective C17 and C23 support

Mehdi Chinoune (1):
  FindHDF5: Fix detection of versions with more than three components


[ANNOUNCE] CMake 3.29.4 available for download

2024-06-03 Thread John Parent
We are pleased to announce that CMake 3.29.4 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/149

Thanks for your support!


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: Fix compiler identification of nvcc with unsupported host compiler
  Tests/RunCMake/execute_process: Check STARTUPINFOW reserved members
  KWSys: ConsoleBuf: Fix 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


[ANNOUNCE] CMake 3.28.6 available for download

2024-06-03 Thread John Parent
We are pleased to announce that CMake 3.28.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.28.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/151

Thanks for your support!


Changes made since CMake 3.28.5:

Ben Boeckel (1):
  cmCxxModuleMapper: add a query for the open mode for the modmap

Brad King (5):
  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
  KWSys: ConsoleBuf: Fix test case when running under Windows Terminal
  CMake 3.28.6


[ANNOUNCE] CMake 3.29.5 available for download

2024-06-07 Thread John Parent
We are pleased to announce that CMake 3.29.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/152

Thanks for your support!


Changes made since CMake 3.29.4:

Brad King (2):
  CPack/WiX: Restore default (missing) InstallScope from 3.28 and lower
  CMake 3.29.5

Joan Bruguera Micó (1):
  ctest: Set close-on-exec for jobserver FIFO


[ANNOUNCE] CMake 3.30.0-rc1 is ready for testing

2024-06-07 Thread John Parent
I am proud to announce the first CMake 3.30 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.30

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.30/release/3.30.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/142

Some of the most significant changes in CMake 3.30 are:

* "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.

* 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.

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" language standard CMake supports for the
  selected compiler.

* 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "FindPython", "FindPython2", and "FindPython3" modules, on
  Windows, now offer better support for the Python debug variant.

* The "TARGET_PROPERTY" generator expression learned to evaluate
  custom transitive properties defined by new
  "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
  target properties.

* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
  "CPACK_WIX_VERSION" variable.

* The "FindBoost" module has been removed by policy "CMP0167". Port
  projects to upstream Boost's "BoostConfig.cmake" package
  configuration file, for which "find_package(Boost)" now searches.

* The precompiled Windows ".msi" installers provided on cmake.org,
  when performing a fresh installation, now modify the system-wide
  "PATH" by default.



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 "UseDebugLibraries" indicators to
  ".vcxproj" files to denote which configurations are debug
  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 " option to specify the minimum TLS version for
  connections to "https://"; URLs.


Variables
-

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
  "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
  control "UseDebugLibraries" indicators in ".vcxproj" files.


Properties
--

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
  can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into
 

[ANNOUNCE] CMake 3.30.0-rc2 is ready for testing

2024-06-12 Thread John Parent
I am proud to announce the second CMake 3.30 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.30

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.30/release/3.30.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/142

Some of the most significant changes in CMake 3.30 are:

* "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.

* 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.

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" language standard CMake supports for the
  selected compiler.

* 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "FindPython", "FindPython2", and "FindPython3" modules, on
  Windows, now offer better support for the Python debug variant.

* The "TARGET_PROPERTY" generator expression learned to evaluate
  custom transitive properties defined by new
  "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
  target properties.

* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
  "CPACK_WIX_VERSION" variable.

* The "FindBoost" module has been removed by policy "CMP0167". Port
  projects to upstream Boost's "BoostConfig.cmake" package
  configuration file, for which "find_package(Boost)" now searches.

* The precompiled Windows ".msi" installers provided on cmake.org,
  when performing a fresh installation, now modify the system-wide
  "PATH" by default.



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 "UseDebugLibraries" indicators to
  ".vcxproj" files to denote which configurations are debug
  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 " option to specify the minimum TLS version for
  connections to "https://"; URLs.


Variables
-

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
  "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
  control "UseDebugLibraries" indicators in ".vcxproj" files.


Properties
--

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
  can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into

[ANNOUNCE] CMake 3.30.0-rc3 is ready for testing

2024-06-14 Thread John Parent
I am proud to announce the third CMake 3.30 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.30

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.30/release/3.30.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/142

Some of the most significant changes in CMake 3.30 are:

* "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.

* 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.

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" language standard CMake supports for the
  selected compiler.

* 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "FindPython", "FindPython2", and "FindPython3" modules, on
  Windows, now offer better support for the Python debug variant.

* The "TARGET_PROPERTY" generator expression learned to evaluate
  custom transitive properties defined by new
  "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
  target properties.

* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
  "CPACK_WIX_VERSION" variable.

* The "FindBoost" module has been removed by policy "CMP0167". Port
  projects to upstream Boost's "BoostConfig.cmake" package
  configuration file, for which "find_package(Boost)" now searches.

* The precompiled Windows ".msi" installers provided on cmake.org,
  when performing a fresh installation, now modify the system-wide
  "PATH" by default.



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 "UseDebugLibraries" indicators to
  ".vcxproj" files to denote which configurations are debug
  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 " option to specify the minimum TLS version for
  connections to "https://"; URLs.


Variables
-

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
  "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
  control "UseDebugLibraries" indicators in ".vcxproj" files.


Properties
--

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
  can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into
 

[ANNOUNCE] CMake 3.29.6 available for download

2024-06-17 Thread John Parent
We are pleased to announce that CMake 3.29.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/153

Thanks for your support!


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


[ANNOUNCE] CMake 3.30.0-rc4 is ready for testing

2024-06-24 Thread John Parent
I am proud to announce the fourth CMake 3.30 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.30

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.30/release/3.30.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/142

Some of the most significant changes in CMake 3.30 are:

* "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.

* 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.

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" language standard CMake supports for the
  selected compiler.

* 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "FindPython", "FindPython2", and "FindPython3" modules, on
  Windows, now offer better support for the Python debug variant.

* The "TARGET_PROPERTY" generator expression learned to evaluate
  custom transitive properties defined by new
  "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
  target properties.

* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
  "CPACK_WIX_VERSION" variable.

* The "FindBoost" module has been removed by policy "CMP0167". Port
  projects to upstream Boost's "BoostConfig.cmake" package
  configuration file, for which "find_package(Boost)" now searches.

* The precompiled Windows ".msi" installers provided on cmake.org,
  when performing a fresh installation, now modify the system-wide
  "PATH" by default.



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 "UseDebugLibraries" indicators to
  ".vcxproj" files to denote which configurations are debug
  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 " option to specify the minimum TLS version for
  connections to "https://"; URLs.


Variables
-

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
  "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
  control "UseDebugLibraries" indicators in ".vcxproj" files.


Properties
--

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
  can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into

[ANNOUNCE] CMake 3.30.0 available for download

2024-07-02 Thread John Parent
We are pleased to announce that CMake 3.30 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.30

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.30/release/3.30.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/142

Some of the most significant changes in CMake 3.30 are:

* "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.

* 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.

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" language standard CMake supports for the
  selected compiler.

* 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "FindPython", "FindPython2", and "FindPython3" modules, on
  Windows, now offer better support for the Python debug variant.

* The "TARGET_PROPERTY" generator expression learned to evaluate
  custom transitive properties defined by new
  "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES"
  target properties.

* The "CPack WIX Generator" gained support for WiX Toolset v4. See the
  "CPACK_WIX_VERSION" variable.

* The "FindBoost" module has been removed by policy "CMP0167". Port
  projects to upstream Boost's "BoostConfig.cmake" package
  configuration file, for which "find_package(Boost)" now searches.

* The precompiled Windows ".msi" installers provided on cmake.org,
  when performing a fresh installation, now modify the system-wide
  "PATH" by default.



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 "UseDebugLibraries" indicators to
  ".vcxproj" files to denote which configurations are debug
  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 " option to specify the minimum TLS version for
  connections to "https://"; URLs.


Variables
-

* The "CMAKE__STANDARD_LATEST" variable was added to describe
  the latest "" 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(DOWNLOAD)" and
  "file(UPLOAD)" commands.

* The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding
  "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly
  control "UseDebugLibraries" indicators in ".vcxproj" files.


Properties
--

* The "GENERATED" source file property is now visible in all
  directories.  See policy "CMP0163".  Policy "CMP0118"'s
  documentation has been revised to describe its actual effects.

* The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property
  can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLU

[ANNOUNCE] CMake 3.29.7 available for download

2024-07-16 Thread John Parent
We are pleased to announce that CMake 3.29.7 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/154

Thanks for your support!


Changes made since CMake 3.29.6:

Brad King (5):
  ctest: Fix 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: Fix '-T version=14.4x' under VS 17.1x
  CMake 3.29.7


[ANNOUNCE] CMake 3.30.1 available for download

2024-07-19 Thread John Parent
We are pleased to announce that CMake 3.30.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/155

Thanks for your support!


Changes made since CMake 3.30.0:

Brad King (8):
  ci: Update CMake version to 3.30.0
  Tests: Fix 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 fixes
  macOS: Work around bug 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: Fix command echo for DEBUG and 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


[ANNOUNCE] CMake 3.30.2 available for download

2024-08-02 Thread John Parent
We are pleased to announce that CMake 3.30.2 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/156

Thanks for your support!


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: Fix 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: Fix bad indenting for uses_terminal
  FetchContent: Ensure can_fetch_default is set early enough

Evan Wilde (1):
  Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior

Marc Chevrier (1):
  FindPython: Fix usage of cached variable _Python_EXECUTABLE_DEBUG

ojab ojab (1):
  bootstrap: Restore support for system jsoncpp and uv without pkg-config


[ANNOUNCE] CMake 3.29.8 available for download

2024-08-29 Thread John Parent
We are pleased to announce that CMake 3.29.8 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/158

Thanks for your support!


Changes made since CMake 3.29.7:

Brad King (2):
  Tests/RunCMake/file-DOWNLOAD: Update bad host name message for curl 8.9
  CMake 3.29.8

Christoph Grüninger (1):
  cppdap: include/dap/network.h: add  include for GCC 15

Evan Wilde (1):
  Swift: Fix INSTALL_NAME_DIR under CMP0157 NEW behavior


[ANNOUNCE] CMake 3.30.3 available for download

2024-08-29 Thread John Parent
We are pleased to announce that CMake 3.30.3 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/157

Thanks for your support!


Changes made since CMake 3.30.2:

Brad King (7):
  file(DOWNLOAD): Fix User-Agent to use run-time curl version
  curl: Avoid using HTTP/2 with curl 8.7.x due to bug 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  include for GCC 15

Even Rouault (1):
  FindPython: fix regression of NumPy detection with Intel MKL library

K. R. Walker (1):
  CPack/NSIS: Fix matching of reserved component names

Lars Schmertmann (1):
  Android: Fix 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  prefix variables are also created

WANG Xuerui (1):
  FindJNI: Support finding libjvm.so for all OpenJDK variants


[ANNOUNCE] CMake 3.30.5 available for download

2024-10-09 Thread John Parent
We are pleased to announce that CMake 3.30.5 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/161

Thanks for your support!


Changes made since CMake 3.30.4:

Brad King (1):
  CMake 3.30.5

Craig Scott (1):
  project: Only check non-cache vars when setting project vars


[ANNOUNCE] CMake 3.31.0-rc1 is ready for testing

2024-10-10 Thread John Parent
I am proud to announce the first CMake 3.31 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.31

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.31/release/3.31.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/150

Some of the most significant changes in CMake 3.31 are:

* "cmake-presets(7)" files may now include comments using the key
  "$comment" at any level within the JSON object to provide
  documentation.

* 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.

* The "CMAKE_LINK_LIBRARIES_STRATEGY" variable and corresponding
  "LINK_LIBRARIES_STRATEGY" target property were added to optionally
  specify the strategy CMake uses to generate link lines.

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE__HOST_COMPILER_ID" and
  "CMAKE__HOST_COMPILER_VERSION" variables were added, where
  "" is either "CUDA" or "HIP".  They are populated when
  "CMAKE__COMPILER_ID" is "NVIDIA" to identify NVCC's host
  compiler.

* Compatibility with versions of CMake older than 3.10 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* When static libraries on link lines are de-duplicated (by policy
  "CMP0156"), the first occurrence is now kept on all platforms. See
  policy "CMP0179".

* The "file(DOWNLOAD)" and "file(UPLOAD)" commands now verify TLS
  server certificates for connections to "https://"; URLs by default.
  See the "CMAKE_TLS_VERIFY" variable for details. This change was
  made without a policy so that users are protected even when building
  projects that have not been updated. Users may set the
  "CMAKE_TLS_VERIFY" environment variable to "0" to restore the old
  default.



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
  ".

* 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 "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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE_HOST_EXECUTABLE_SUFFIX" variable was added to provide the
  suffix for executable names on the host platform.

* The "CMAKE__HOST_COMPI

[ANNOUNCE] CMake 3.31.0-rc2 is ready for testing

2024-10-18 Thread John Parent
I am proud to announce the second CMake 3.31 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.31

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.31/release/3.31.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/150

Some of the most significant changes in CMake 3.31 are:

* "cmake-presets(7)" files may now include comments using the key
  "$comment" at any level within the JSON object to provide
  documentation.

* 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.

* The "CMAKE_LINK_LIBRARIES_STRATEGY" variable and corresponding
  "LINK_LIBRARIES_STRATEGY" target property were added to optionally
  specify the strategy CMake uses to generate link lines.

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE__HOST_COMPILER_ID" and
  "CMAKE__HOST_COMPILER_VERSION" variables were added, where
  "" is either "CUDA" or "HIP".  They are populated when
  "CMAKE__COMPILER_ID" is "NVIDIA" to identify NVCC's host
  compiler.

* Compatibility with versions of CMake older than 3.10 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* When static libraries on link lines are de-duplicated (by policy
  "CMP0156"), the first occurrence is now kept on all platforms. See
  policy "CMP0179".

* The "file(DOWNLOAD)" and "file(UPLOAD)" commands now verify TLS
  server certificates for connections to "https://"; URLs by default.
  See the "CMAKE_TLS_VERIFY" variable for details. This change was
  made without a policy so that users are protected even when building
  projects that have not been updated. Users may set the
  "CMAKE_TLS_VERIFY" environment variable to "0" to restore the old
  default.



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
  ".

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE_HOST_EXECUTABLE_SUFFIX" vari

[ANNOUNCE] CMake 3.31.0-rc3 is ready for testing

2024-10-29 Thread John Parent
I am proud to announce the third CMake 3.31 release candidate.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.31

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.31/release/3.31.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/150

Some of the most significant changes in CMake 3.31 are:

* "cmake-presets(7)" files may now include comments using the key
  "$comment" at any level within the JSON object to provide
  documentation.

* 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.

* The "CMAKE_LINK_LIBRARIES_STRATEGY" variable and corresponding
  "LINK_LIBRARIES_STRATEGY" target property were added to optionally
  specify the strategy CMake uses to generate link lines.

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE__HOST_COMPILER_ID" and
  "CMAKE__HOST_COMPILER_VERSION" variables were added, where
  "" is either "CUDA" or "HIP".  They are populated when
  "CMAKE__COMPILER_ID" is "NVIDIA" to identify NVCC's host
  compiler.

* Compatibility with versions of CMake older than 3.10 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* When static libraries on link lines are de-duplicated (by policy
  "CMP0156"), the first occurrence is now kept on all platforms. See
  policy "CMP0179".

* The "file(DOWNLOAD)" and "file(UPLOAD)" commands now verify TLS
  server certificates for connections to "https://"; URLs by default.
  See the "CMAKE_TLS_VERIFY" variable for details. This change was
  made without a policy so that users are protected even when building
  projects that have not been updated. Users may set the
  "CMAKE_TLS_VERIFY" environment variable to "0" to restore the old
  default.



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
  ".

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE_HOST_EXECUTABLE_SUFFIX" varia

[ANNOUNCE] CMake 3.30.4 available for download

2024-09-27 Thread John Parent
We are pleased to announce that CMake 3.30.4 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/159

Thanks for your support!


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 < 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


[ANNOUNCE] CMake 3.31.0 available for download

2024-11-07 Thread John Parent
We are pleased to announce that CMake 3.31 is now available for download.
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.31

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.31/release/3.31.html

Release milestone is available at:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/150

Some of the most significant changes in CMake 3.31 are:

* "cmake-presets(7)" files may now include comments using the key
  "$comment" at any level within the JSON object to provide
  documentation.

* 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.

* The "CMAKE_LINK_LIBRARIES_STRATEGY" variable and corresponding
  "LINK_LIBRARIES_STRATEGY" target property were added to optionally
  specify the strategy CMake uses to generate link lines.

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE__HOST_COMPILER_ID" and
  "CMAKE__HOST_COMPILER_VERSION" variables were added, where
  "" is either "CUDA" or "HIP".  They are populated when
  "CMAKE__COMPILER_ID" is "NVIDIA" to identify NVCC's host
  compiler.

* Compatibility with versions of CMake older than 3.10 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set the policy
  version to an older value now issue a deprecation diagnostic.

* When static libraries on link lines are de-duplicated (by policy
  "CMP0156"), the first occurrence is now kept on all platforms. See
  policy "CMP0179".

* The "file(DOWNLOAD)" and "file(UPLOAD)" commands now verify TLS
  server certificates for connections to "https://"; URLs by default.
  See the "CMAKE_TLS_VERIFY" variable for details. This change was
  made without a policy so that users are protected even when building
  projects that have not been updated. Users may set the
  "CMAKE_TLS_VERIFY" environment variable to "0" to restore the old
  default.



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
  ".

* 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" variable, a corresponding
  "CMAKE_EXPORT_BUILD_DATABASE" environment variable, and an
  "EXPORT_BUILD_DATABASE" target property, were added to enable
  exporting C++ module compile commands. This is only supported with
  Ninja Generators.

* The "CMAKE_HOST_EXECUTABLE_SU

[ANNOUNCE] CMake 3.31.1 available for download

2024-11-25 Thread John Parent
We are pleased to announce that CMake 3.31.1 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.31.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/162

Thanks for your support!


Changes made since CMake 3.31.0:

Brad King (10):
  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

Craig Scott (3):
  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)

LibArchive Upstream (1): LibArchive 2024-10-13 (b439d586)

Marc Chevrier (2):
  Linker configuration: Add missing platforms
  LLD linker: avoid regression on archive libraries deduplication

Matthew Woehlke (1):
  cmExperimental: Make CPS-export experimental notice more consistent

Peter Kokot (2):
  FindSQLite3: Guard calls to pkg_check_modules
  Help: Guard calls to pkg_check_modules in cmake-developer(7) example

Timo Röhling (2):
  FindImageMagick: Fix ARCH_INCLUDE_DIR detection for version 7 and newer
  Linux: Recognize multiarch directories for musl-linux-any


[ANNOUNCE] CMake 3.30.6 available for download

2024-11-25 Thread John Parent
We are pleased to announce that CMake 3.30.6 is now available for download.

Please use the latest release from our download page:
  https://cmake.org/download/

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.30.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/164

Thanks for your support!


Changes made since CMake 3.30.5:

Ben Boeckel (2):
  ci: use JSON to transfer environment variables
  gitlab-ci: remove `dependencies` from jobs

Brad King (3):
  FindBoost: Add support for Boost 1.86
  execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors
  CMake 3.30.6

Miro Hrončok (1):
  FindPython: Add support for Python 3.14

Robert Maynard (2):
  Tests: Simplify CUDA kernels avoid crash with nvidia driver 550
  Tests: Ensure CUDA bin2c output is null terminated


[ANNOUNCE] CMake 3.29.9 available for download

2024-11-25 Thread John Parent
We are pleased to announce that CMake 3.29.9 is now available for download.

Please use the latest release from our github releases page:
  https://github.com/Kitware/CMake/releases/tag/v3.29.9

See also the release notes:
  https://cmake.org/cmake/help/latest/release/3.29.html

and release milestone:
  https://gitlab.kitware.com/cmake/cmake/-/milestones/163

Thanks for your support!


Changes made since CMake 3.29.8:

Brad King (3):
  Help: Add 3.29 release note for try_compile LINKER_LANGUAGE option
  execute_process: Restore CLOEXEC on OUTPUT_FILE and ERROR_FILE descriptors
  CMake 3.29.9

Dilshod Mukhtarov (1):
  librhash: aligned_alloc is not available with glibc < 2.16

Robert Maynard (2):
  Tests: Simplify CUDA kernels avoid crash with nvidia driver 550
  Tests: Ensure CUDA bin2c output is null terminated


  1   2   >