[ANNOUNCE] CMake 3.19.3 available for download

2021-01-13 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.2:

Brad King (14):
  cmSystemTools: Revert use of MOVEFILE_WRITE_THROUGH by RenameFile on Windows
  Tests: Fix ConfigSources test with empty CMAKE_BUILD_TYPE
  gitlab-ci: consolidate Linux release package job spec for x86_64
  Help: Add 3.19.3 release note for Linux aarch64 binary
  gitlab-ci: update macOS jobs to use Xcode 12.3
  cmGlobalXCodeGenerator: Adopt pbxproj object id generation
  cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids
  Xcode: Use deterministic object ids for script build phases
  gitlab-ci: update upload jobs to go to cmake.org
  cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+
  Utilities/Release: Fix macOS Qt 5.9 build script umask
  Utilities/Release: Add script to build Qt 5.15.2 macOS universal binaries
  ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+
  CMake 3.19.3

Craig Scott (2):
  Help: Fix Sphinx not recognising list in XCODE_LINK_BUILD_PHASE_MODE
  FetchContent: Relative SOURCE_DIR override cannot be a hard error

Eduard Valeyev (1):
  FindMPI: remove single quotes from include path

Hi Key (2):
  Utilities/Release: Add docker specs for Linux aarch64 binaries
  gitlab-ci: add jobs to make Linux release packages for aarch64 on 3.19 branch

Kris Thielemans (1):
  FindHDF5: Fix finding both debug and release libs

Kyle Edwards (1):
  cmake-gui: Restore linking of Qt resources

Raul Tambre (1):
  cmMakefile: Don't expand bracket arguments in --trace-expand


[ANNOUNCE] CMake 3.19.4 available for download

2021-01-28 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.3:

Ben Boeckel (2):
  FindHDF5: avoid writing to the output when testing h5cc
  FindHDF5: silence STATUS messages when found with QUIET

Bianca van Schaik (2):
  GetPrerequisites: Include weak macOS dependencies
  file(GET_RUNTIME_DEPENDENCIES): Fix weak macOS libraries not detected

Brad King (5):
  ci: speed up cmake and ninja downloads on Windows
  ci: download WiX on Windows
  Intel: Replace deprecated Fortran flag -nofor_main with -nofor-main
  Help: Add Ninja Multi-Config to list in GENERATOR_IS_MULTI_CONFIG
  CMake 3.19.4

Kelly Walker (1):
  IRSL: Install msvcp${v}${d}_atomic_wait.dll if available with CRT

Marc Chevrier (1):
  Restore support for cross-compiling CMake itself

jonathan molinatto (1):
  VS: Generalize Win10 max SDK version to all VS generators


[ANNOUNCE] CMake 3.18.6 available for download

2021-02-11 Thread Tom Osika
We are pleased to announce that CMake 3.18.6 is now available for download.

You can find the 3.18.6 release at:
  https://github.com/Kitware/CMake/releases/tag/v3.18.6

Thanks for your support!


Changes made since CMake 3.18.5:

Ben Boeckel (1):
  FindPython2: avoid doubling the extension in CPython2 SOABI

Brad King (5):
  Ninja: Remove cleandead on regeneration
  ci: speed up cmake and ninja downloads on Windows
  ci: download WiX on Windows
  LexerParser: Do not override existing _POSIX_C_SOURCE definition
  CMake 3.18.6

Raul Tambre (1):
  CUDA: Fix user-set architectures during detection with Visual Studio


[ANNOUNCE] CMake 3.19.5 available for download

2021-02-15 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.4:

Brad King (7):
  Apple: Fix linking to frameworks that do not exist until build time
  FindBoost: Add support for Boost 1.75
  Help: Restore docs that find_library considers LIB, not INCLUDE
  LexerParser: Do not override existing _POSIX_C_SOURCE definition
  CTest: Restore running dashboard client Test step with modified files
  Clang: Use -imsvc for system include only with MSVC-like front-end
  CMake 3.19.5

Craig Scott (4):
  cmComputeLinkInformation: Fix misspelt private variable name
  Xcode: Don't hard-code SDK-provided implicit framework search paths
  IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)
  Help: Add 3.19.5 release notes for Xcode iOS-related changes

Robert Maynard (1):
  FindCUDAToolkit: Restore use of CUDA_PATH environment variable

Yauheni Khnykin (1):
  FindXCTest: Fix output directory for test bundle with new build system


[ANNOUNCE] CMake 3.20.0-rc1 is ready for testing

2021-02-16 Thread Tom Osika
I am proud to announce the first CMake 3.20 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and 

[ANNOUNCE] CMake 3.19.6 available for download

2021-02-24 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.5:

Brad King (3):
  Intel: Make explicit Fortran preprocessing under Ninja more robust
  Tests: Update for upstream ninja change to write status on stderr
  CMake 3.19.6

Kyle Edwards (1):
  CMakePresets.json: Remove undocumented support for comments

Marc Chevrier (1):
  FindPython: fix erroneous variable handling


[ANNOUNCE] CMake 3.20.0-rc2 is ready for testing

2021-02-24 Thread Tom Osika
I am proud to announce the second CMake 3.20 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and

[ANNOUNCE] CMake 3.20.0-rc3 is ready for testing

2021-03-03 Thread Tom Osika
I am proud to announce the third CMake 3.20 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ.

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

  * The "CMAKE_ANDROID_NDK_VERSION" variable was added to report the
 version of the NDK.


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control 

[ANNOUNCE] CMake 3.20.0-rc4 is ready for testing

2021-03-11 Thread Tom Osika
I am proud to announce the fourth CMake 3.20 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ.

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

  * The "CMAKE_ANDROID_NDK_VERSION" variable was added to report the
 version of the NDK.


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control

[ANNOUNCE] CMake 3.19.7 available for download

2021-03-15 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.6:

Brad King (6):
  Revert "Cray: Fix Cray compiler detection on new platforms"
  Xcode: Restore support for spaces in framework names
  cmGlobalVisualStudioVersionedGenerator: Clarify local variable name
  VS: Fix '-T version=14.28' under VS 16.9
  VS: Accept and translate '-T version=' values with three components
  CMake 3.19.7

Justin LaPolla (1):
  Cray: Enable Cray compiler wrapper detection on all platforms


[ANNOUNCE] CMake 3.20.0-rc5 is ready for testing

2021-03-17 Thread Tom Osika
I am proud to announce the fifth CMake 3.20 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ.

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

  * The "CMAKE_ANDROID_NDK_VERSION" variable was added to report the
 version of the NDK.


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control 

[ANNOUNCE] CMake 3.20.0 available for download

2021-03-23 Thread Tom Osika
I am happy to announce that CMake 3.20.0 is now available for download at:
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.20 are:

* "cmake-presets(7)" gained support for build and test presets.

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ.

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.

* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "cmake_path()" command was added for operations on filesystem
  paths.

* The "target_sources()" command now supports targets created by the
  "add_custom_target()" command.

* The "ExternalProject" module "ExternalProject_Add()" function gained
  a "CONFIGURE_HANDLED_BY_BUILD" option.  This can be used to make
  subsequent runs of the configure step be triggered by the build step
  when an external project dependency rebuilds instead of always re-
  running the configure step in such cases.

* "ctest(1)" gained a "--test-dir" option to specify the directory in
  which to look for tests.

* The "cmake-server(7)" mode has been removed. Clients should use the
  "cmake-file-api(7)" instead.

* The "WriteCompilerDetectionHeader" module has been deprecated via
  policy "CMP0120".  Projects should be ported away from it.

* The "AddFileDependencies" module is deprecated. Port projects to use
  "set_property()" directly.


CMake 3.20 Release Notes


Changes made since CMake 3.19 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for build and test presets.


Generators
--

* Makefile Generators, for some toolchains, now use the compiler to
  extract implicit dependencies while compiling source files.


Languages
-

* C++23 compiler modes may now be specified via the "CXX_STANDARD",
  "CUDA_STANDARD", or "OBJCXX_STANDARD" target properties, or via the
  "Compile Features" functionality’s "cxx_std_23" meta-feature.

* "CUDA" language support now works when "nvcc" is a symbolic link,
  for example due to a "ccache" or "colornvcc" wrapper script.

* The "CUDAARCHS" environment variable was added for initializing
  "CMAKE_CUDA_ARCHITECTURES". Useful in cases where the compiler
  default is unsuitable for the machine’s GPU.


Compilers
-

* The NVIDIA HPC SDK compilers are now supported with compiler id
  "NVHPC".

* The Intel oneAPI NextGen LLVM compilers are now supported with
  compiler id "IntelLLVM":

  * The "icx"/"icpx" C/C++ compilers on Linux, and the "icx" C/C++
compiler on Windows, are fully supported as of oneAPI 2021.1.

  * The "ifx" Fortran compiler on Linux is partially supported. As of
oneAPI 2021.1, "ifx" does not define several identification
macros, so CMake identifies it as the classic "Intel" compiler.
This works in many cases because "ifx" accepts the same command
line parameters as "ifort".  A future version of oneAPI may fix
this.

  * The "ifx" Fortran compiler on Windows is not yet supported.

  The Intel oneAPI Classic compilers ("icc", "icpc", and "ifort")
  continue to be supported with compiler id "Intel".

* Support was added for the IAR STM8 compiler.


Platforms
-

* CMake’s support for Cross Compiling for Android is now merged with
  the Android NDK’s toolchain file. They now have similar behavior,
  though some variable names differ. User-facing changes include:

  * "find_*" functions will search NDK ABI / API specific paths by
default.

  * The default "CMAKE_BUILD_TYPE" for Android is now
"RelWithDebInfo".

  * The "CMAKE_ANDROID_NDK_VERSION" variable was added to report the
 version of the NDK.


File-Based API
--

* The "cmake-file-api(7)" gained a new “toolchains” object kind that
  describes the compiler used for each enabled language.


Commands


* "add_custom_command()" and "add_custom_target()" now support
  "generator expressions" in their "OUTPUT" and "BYPRODUCTS" options.

  Their "COMMAND", "WORKING_DIRECTORY", and "DEPENDS" options gained
  support for new generator expressions "$" and
  "$" t

[ANNOUNCE] CMake 3.19.8 available for download

2021-04-06 Thread Tom Osika
We are pleased to announce that CMake 3.19.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.19.7:

Brad King (7):
  FindPkgConfig: Restore preference for first pkg-config in PATH
  Ninja: Do not recompact deps log in regeneration during a build
  Tests: Add RunCMake helper to run a plain script
  Help: CMAKE_APPLE_SILICON_PROCESSOR cannot be set in a toolchain file
  libarchive: Use uint8_t instead of u_char
  Utilities/Release: Add script to generate a table of files
  CMake 3.19.8


[ANNOUNCE] CMake 3.20.1 available for download

2021-04-08 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.0:

Alexander Neumann (1):
  Help: Add Q_NAMESPACE_EXPORT to CMAKE_AUTOMOC_MACRO_NAMES default values

Ben Boeckel (1):
  FindHDF5: search for the new Fortran HL library name

Brad King (20):
  gitlab-ci: Update Windows builds to MSVC 19.28-16.9 toolset
  FindIntl: Fix detection of intl built in to C library
  GNUInstallDirs: Clarify that CMAKE_INSTALL_ may be absolute
  Tests: Teach RunCMake to ignore incidental 'Recompacting log' ninja output
  Ninja Multi-Config: Fix crash on custom command config with no output
  Tests: Add RunCMake helper to run a plain script
  Help: CMAKE_APPLE_SILICON_PROCESSOR cannot be set in a toolchain file
  gitlab-ci: Tell CDash when a test-ext job is done
  Help: Document in add_library how to import libraries with SONAME
  libarchive: Use uint8_t instead of u_char
  Utilities/Release: Add script to generate a table of files
  Utilities/Release: Add deprecation fields to File Table v1
  UseSWIG: Transform swig depfile to match Ninja generator paths
  ci: add jq and DevIL to Debian and Fedora base images
  ci: Enable jq-based tests on Linux builds
  BinUtils: Avoid clobbering a variable named without a private prefix
  Makefiles: Fix dependency extraction with CUDA < 10.2 and host compiler
  FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC
  Restore support for backslashes in initial language-wide flags
  CMake 3.20.1

Craig Scott (7):
  CPack: Validate and document NSIS branding text trim positions
  Help: Custom OUTPUT and BYPRODUCTS genexes cannot refer to targets
  Tests: Remove redundant files for configure_file() tests
  Tests: Check host platform instead of target for running stat
  Cleanup: Fix misspelt name of local C++ variable
  Help: Clarify permission-related command options
  Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too

Haibo Huang (1):
  Android: Fix search for binutils

Justin LaPolla (1):
  Cray: Detect Fortran compiler version patch level if available

Kyle Edwards (3):
  Ninja Multi-Config: Include configs in long CC scripts
  autogen: Don't include SKIP_AUTOMOC files in depfile
  Tests: Add test for Ninja automoc dependency cyle

Marc Chevrier (5):
  Makefiles dependencies: normalize windows paths
  CUDA Device link: Ensure all link options are correctly formatted
  Genex: $ and $ must be usable in try_compile
  FindMPI: avoid host link options to be propagated to device link step
  UseSWIG: Run using policy settings from includer

Robert Maynard (3):
  cmCommandLineArgument: correctly compute next parse index
  CMakeDetermineCompilerABI: Revert "Parse library arch from versioned
paths"
  CMakeDetermineCompilerABI: Extract lib arch from implicit object file
paths

Sibi Siddharthan (1):
  FindIntl: Improve documentation formatting

mcc (1):
  Help: Clarify IMPORTED_LOCATION documentation


[ANNOUNCE] CMake 3.20.2 available for download

2021-04-29 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.1:

Ben Boeckel (2):
  ci: pay attention to the machine load when running tests
  ci: limit builds by machine load

Brad King (8):
  Help: Add 3.20 release note for error on unknown arguments
  gitlab-ci: equally delay all jobs on integration branches
  Autogen: Restore mocs_compilation in OBJECT libraries
  Help: Fix typos in cmake-compile-features(7)
  Help: Do not recommend WCDH in cmake-compile-features(7)
  Intel: Update Classic compiler version detection for 2021
  IntelLLVM: Add special case for ifx 2021.1 version extraction
  CMake 3.20.2

Craig Scott (2):
  Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform
  Help: Document special cases for if(IS_ABSOLUTE)

Joel Johnson (1):
  Add missing 'not' in error messages

KWIML Upstream (1):
  KWIML 2021-04-21 (49d91529)

Kyle Edwards (2):
  autogen: fix race in depfile parsing
  Ninja Multi-Config: Correctly generate POST_BUILD custom targets

Lihua Zhao (1):
  BinUtils: Restore toolchain prefix detection from compiler name 'c++'

Rafael Sadowski (1):
  OpenBSD: Fix system feature definitions


[ANNOUNCE] CMake 3.20.3 available for download

2021-05-27 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.2:

Brad King (7):
  Help: Use relative path for IDE Integration guide link to preset schema
  BinUtils: Use more-private temporary variable names
  ObjectiveC: Respect OSX_ARCHITECTURES for OBJC
  FindBoost: Add support for Boost 1.76
  Ninja: Restore support for Fortran in a symlinked build tree
  Utilities/Sphinx: Update man page config for Sphinx 4
  CMake 3.20.3

Craig Scott (2):
  ExternalProject: Ensure git fetch if updating to hash we don't have yet
  ExternalProject: Only add git config setting with git 1.7.7 or later

Kyle Edwards (2):
  Ninja Multi-Config: Split long command lines by config
  CMP0082: Check EXCLUDE_FROM_ALL property at generate time

Raul Tambre (3):
  GNU: C++17 default version
  GNU: Final C++20 flags
  GNU: C++23 support

Robert Maynard (6):
  CUDA: improve regex for CUDA Toolkit root from nvcc verbose output
  cmCommandLineArgument: Correctly record parsing failures
  cmake: `--build` and `--install` error out when encountering bad flags
  cmCommandLineArgument: Provide more information syntax error messages
  NVHPC: Support explicit language flags
  NVHPC: Support Ninja dependency scanning


[ANNOUNCE] CMake 3.20.4 available for download

2021-06-14 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.3:

Ben Boeckel (1):
  ci: use consistent sccache builds

Brad King (8):
  VS: Add special case for '-T version=14.29.16.10' under VS 16.10
  VS: Add flag table entries for '/external:W*' flags in VS 16.10
  gitlab-ci: Update Windows builds to MSVC 19.29-16.10 toolset
  Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile
rule
  presets: Fix buildPreset "jobs" field test case
  IRSL: Add Intel oneAPI redist location on Windows
  fileapi: Fix codemodel-v2 link command fragment relative paths
  CMake 3.20.4

John Drouhard (1):
  FindBoost: Add check for json component header in Boost 1.75+

Marc Chevrier (1):
  Help: cmake_path: fix erroneous example for IS_PREFIX

Raul Tambre (2):
  MSVC: C++20 final flag, C++23 support
  Clang/MSVC: C++20 final flag, C++23 support

Sam Freed (2):
  presets: Fix buildPreset "jobs"
  presets: Fix buildPreset "targets" not allowing a single string


[ANNOUNCE] CMake 3.20.5 available for download

2021-06-21 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.4:

Brad King (7):
  gitlab-ci: update macOS jobs to use Xcode 12.5
  cmGlobalVisualStudio10Generator: Move static functions to anonymous
namespace
  cmGlobalVisualStudio10Generator: Adopt GetVSInstanceVersion method
  VS: Do not apply '/external:W*' flag table mapping on VS < 16.10
  Tests: Fix xcode version detection for Xcode 13 on ARM
  Help: Add 3.20 release note section for 3.20.{3,4,5}
  CMake 3.20.5

Craig Scott (1):
  ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions

Kyle Edwards (1):
  CMake: Allow override of unexpected non-flow-control commands


[ANNOUNCE] CMake 3.21.0-rc1 is ready for testing

2021-06-23 Thread Tom Osika
I am proud to announce the first CMake 3.21 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.21 are:

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* Messages printed to a terminal now may be colored by message type.

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.

* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "install(TARGETS)" command gained new "RUNTIME_DEPENDENCIES" and
  "RUNTIME_DEPENDENCY_SET" arguments, which can be used to install
  runtime dependencies using "file(GET_RUNTIME_DEPENDENCIES)".

* A new "TARGET_RUNTIME_DLLS" generator expression was added.

* "ctest(1)" gained a "--output-junit" option to write test results to
  a JUnit XML file.

* The "ctest_build()" command gained a "PARALLEL_LEVEL" option.

* "ARMClang" cpu/arch compile and link flags are no longer added
  automatically based on the "CMAKE_SYSTEM_PROCESSOR" variable or the
  undocumented "CMAKE_SYSTEM_ARCH" variable. They must be specified
  explicitly.  See policy "CMP0123".

* The "foreach()" command now isolates loop variables in the loop
  scope. See policy "CMP0124" for details.


CMake 3.21 Release Notes


Changes made since CMake 3.20 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for specifying the install prefix
  in a configure preset.

* "cmake-presets(7)" gained support for conditional enabling of
  presets.

* "cmake-presets(7)" gained support for a "${hostSystemName}" macro.

* "cmake-presets(7)" gained support for omitting the "generator" and
  "binaryDir" fields.


Generators
--

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.


Languages
-

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* Source file extensions ".ixx" and ".cppm" are now treated as C++.


Command-Line


* "cmake(1)" gained the "--install-prefix " command-line option
  to specify the location of the install prefix.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* "cmake(1)" "-E capabilities" output now contains for each generator
  a "supportedPlatforms" field listing platforms known to be supported
  in "CMAKE_GENERATOR_PLATFORM".

* Messages printed to a terminal now may be colored by message type.


Compilers
-

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.


Platforms
-

* CMake now supports the MSYS runtime environment, much like CYGWIN.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 gained a new
  "directory" object containing directory-level information. This
  includes a list of installers generated by the "install()" command.


Commands


* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "build_command()" command gained a "PARALLEL_LEVEL" option.

* The "file(COPY_FILE)" command was added to copy a single file.

* The "file(GET_RUNTIME_DEPENDENCIES)" command gained new
  "POST_

[ANNOUNCE] CMake 3.21.0-rc2 is ready for testing

2021-06-30 Thread Tom Osika
I am proud to announce the second CMake 3.21 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.21 are:

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* Messages printed to a terminal now may be colored by message type.

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.

* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "install(TARGETS)" command gained new "RUNTIME_DEPENDENCIES" and
  "RUNTIME_DEPENDENCY_SET" arguments, which can be used to install
  runtime dependencies using "file(GET_RUNTIME_DEPENDENCIES)".

* A new "TARGET_RUNTIME_DLLS" generator expression was added.

* "ctest(1)" gained a "--output-junit" option to write test results to
  a JUnit XML file.

* The "ctest_build()" command gained a "PARALLEL_LEVEL" option.

* "ARMClang" cpu/arch compile and link flags are no longer added
  automatically based on the "CMAKE_SYSTEM_PROCESSOR" variable or the
  undocumented "CMAKE_SYSTEM_ARCH" variable. They must be specified
  explicitly.  See policy "CMP0123".

* The "foreach()" command now isolates loop variables in the loop
  scope. See policy "CMP0124" for details.


CMake 3.21 Release Notes


Changes made since CMake 3.20 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for specifying the install prefix
  in a configure preset.

* "cmake-presets(7)" gained support for conditional enabling of
  presets.

* "cmake-presets(7)" gained support for a "${hostSystemName}" macro.

* "cmake-presets(7)" gained support for omitting the "generator" and
  "binaryDir" fields.


Generators
--

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.


Languages
-

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* Source file extensions ".ixx" and ".cppm" are now treated as C++.


Command-Line


* "cmake(1)" gained the "--install-prefix " command-line option
  to specify the location of the install prefix.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* "cmake(1)" "-E capabilities" output, for some generators, may now
  contain a "supportedPlatforms" field listing platforms known to be
  supported in "CMAKE_GENERATOR_PLATFORM".

* Messages printed to a terminal now may be colored by message type.


Compilers
-

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.


Platforms
-

* CMake now supports the MSYS runtime environment, much like CYGWIN.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 gained a new
  "directory" object containing directory-level information. This
  includes a list of installers generated by the "install()" command.


Commands


* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by th

[ANNOUNCE] CMake 3.21.0-rc3 is ready for testing

2021-07-08 Thread Tom Osika
I am proud to announce the third CMake 3.21 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.21 are:

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* Messages printed to a terminal now may be colored by message type.

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.

* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "install(TARGETS)" command gained new "RUNTIME_DEPENDENCIES" and
  "RUNTIME_DEPENDENCY_SET" arguments, which can be used to install
  runtime dependencies using "file(GET_RUNTIME_DEPENDENCIES)".

* A new "TARGET_RUNTIME_DLLS" generator expression was added.

* "ctest(1)" gained a "--output-junit" option to write test results to
  a JUnit XML file.

* The "ctest_build()" command gained a "PARALLEL_LEVEL" option.

* "ARMClang" cpu/arch compile and link flags are no longer added
  automatically based on the "CMAKE_SYSTEM_PROCESSOR" variable or the
  undocumented "CMAKE_SYSTEM_ARCH" variable. They must be specified
  explicitly.  See policy "CMP0123".

* The "foreach()" command now isolates loop variables in the loop
  scope. See policy "CMP0124" for details.


CMake 3.21 Release Notes


Changes made since CMake 3.20 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for specifying the install prefix
  in a configure preset.

* "cmake-presets(7)" gained support for conditional enabling of
  presets.

* "cmake-presets(7)" gained support for a "${hostSystemName}" macro.

* "cmake-presets(7)" gained support for omitting the "generator" and
  "binaryDir" fields.


Generators
--

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.


Languages
-

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* Source file extensions ".ixx" and ".cppm" are now treated as C++.


Command-Line


* "cmake(1)" gained the "--install-prefix " command-line option
  to specify the location of the install prefix.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* "cmake(1)" "-E capabilities" output, for some generators, may now
  contain a "supportedPlatforms" field listing platforms known to be
  supported in "CMAKE_GENERATOR_PLATFORM".

* Messages printed to a terminal now may be colored by message type.


Compilers
-

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.


Platforms
-

* CMake now supports the MSYS runtime environment, much like CYGWIN.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 gained a new
  "directory" object containing directory-level information. This
  includes a list of installers generated by the "install()" command.


Commands


* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the

[ANNOUNCE] CMake 3.21.0 available for download

2021-07-14 Thread Tom Osika
I am happy to announce that CMake 3.21.0 is now available for download at:
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.21 are:

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* Messages printed to a terminal now may be colored by message type.

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.

* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "install(TARGETS)" command gained new "RUNTIME_DEPENDENCIES" and
  "RUNTIME_DEPENDENCY_SET" arguments, which can be used to install
  runtime dependencies using "file(GET_RUNTIME_DEPENDENCIES)".

* A new "TARGET_RUNTIME_DLLS" generator expression was added.

* "ctest(1)" gained a "--output-junit" option to write test results to
  a JUnit XML file.

* The "ctest_build()" command gained a "PARALLEL_LEVEL" option.

* "ARMClang" cpu/arch compile and link flags are no longer added
  automatically based on the "CMAKE_SYSTEM_PROCESSOR" variable or the
  undocumented "CMAKE_SYSTEM_ARCH" variable. They must be specified
  explicitly.  See policy "CMP0123".

* The "foreach()" command now isolates loop variables in the loop
  scope. See policy "CMP0124" for details.


CMake 3.21 Release Notes


Changes made since CMake 3.20 include the following.


New Features



Presets
---

* "cmake-presets(7)" gained support for specifying the install prefix
  in a configure preset.

* "cmake-presets(7)" gained support for conditional enabling of
  presets.

* "cmake-presets(7)" gained support for a "${hostSystemName}" macro.

* "cmake-presets(7)" gained support for omitting the "generator" and
  "binaryDir" fields.


Generators
--

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", "CXX", "OBJC",
  and "OBJCXX" languages. See the "CMAKE__LINKER_LAUNCHER"
  variable and "_LINKER_LAUNCHER" target property for details.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.


Languages
-

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile Features"
  functionality gained support for C17 and C23.

* Source file extensions ".ixx" and ".cppm" are now treated as C++.


Command-Line


* "cmake(1)" gained the "--install-prefix " command-line option
  to specify the location of the install prefix.

* "cmake(1)" gained the "--toolchain " command-line
  option to specify a toolchain file.

* "cmake(1)" "-E capabilities" output, for some generators, may now
  contain a "supportedPlatforms" field listing platforms known to be
  supported in "CMAKE_GENERATOR_PLATFORM".

* Messages printed to a terminal now may be colored by message type.


Compilers
-

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" in "Clang"
  mode.


Platforms
-

* CMake now supports the MSYS runtime environment, much like CYGWIN.


File-Based API
--

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

* The "cmake-file-api(7)" "codemodel" version 2 gained a new
  "directory" object containing directory-level information. This
  includes a list of installers generated by the "install()" command.


Commands


* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supp

[ANNOUNCE] CMake 3.21.1 available for download

2021-07-27 Thread Tom Osika
We are pleased to announce that CMake 3.21.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.21.0:

Alexey Edelev (2):
  AUTOUIC: Fix cyclic dependency between generated UI headers and timestamp
  AUTOUIC: Fix generating of dependency rules for UI header files

Ben Boeckel (5):
  ci: use CMake 3.21.0
  Help/ctest_memcheck: mention `ctest_test` arguments
  TestDriver: suppress deprecated header lints for time.h
  TestDriver: use `CM_NULL` to avoid lints about `nullptr` usage
  Help/ctest_test: add a comment to also update `ctest_memcheck`

Brad King (29):
  enable_language: Fix test for working compiler with CMP0126 NEW behavior
  VS: Recognize CSharp VS 2019 compiler version v142
  VS: Improve v142 CL flag table LanguageStandard ordering
  VS: Add CSharp VS 2022 compiler version and flag table v143
  VS: Add v143 flag tables for VS 17.0 Preview 2
  VS: Fix `/MANIFESTUAC:` link flag mapping for v143
  VS: Map the link `/debug` flag for v143
  VS: Remove the /MERGE flag from v143 link flag table
  VS: Fix `/analyze:log` flag mapping for v143
  VS: Add `-Zc:inline[-]` flag table entry for v143
  VS: Populate `/Y-` flag table entry for v143
  VS: Populate `-Qspectre-` flag table entry for v143
  VS: Populate `/JMC-` flag table entry for v143
  VS: Remove empty ConformanceMode entry from flag table for v143
  VS: Remove empty LanguageStandard entries from flag table for v143
  VS: Remove empty ExternalWarningLevel entry from flag table for v143
  VS: Remove broken EnableASAN entry from flag table for v143
  VS: Fix `/sourceDependencies` flag table entries for v143
  VS: Update Visual Studio 17 2022 generator for Preview 2
  CMakeDetermineCompilerId: Fix CMAKE_EXECUTABLE_FORMAT in CMP0126 NEW
behavior
  try_compile: Propagate CMP0126 to the generated test project
  CMakeDependentOption: Revert "Allow parentheses in the depends string"
  cmMessenger: Revert to non-color messages on Windows
  cmGeneratorExpressionNode: Factor out local variable for global generator
  Swift: Update test case to try CMP0126 NEW behavior
  Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configs
  VS: Remove cl /FS entry from flag table for v142 and v143
  VS: Remove C++ module CompileAs flag table entries for v142 and v143
  CMake 3.21.1

Craig Scott (10):
  Help: Clarify wording of CMP0124
  Help: Explain policy CMP0125 in more detail
  Help: Make policy CMP0126 wording more accurate
  Help: Fix trivial typo
  Help: Clarify which project() call PROJECT_IS_TOP_LEVEL is for
  Help: Re-order file() sub-commands in Filesystem section
  Help: Expand details for file(COPY_FILE)
  Help: Clarify and correct wording around DEPFILE option
  Help: Improve wording and cross-referencing for ctest JUnit output
  Help: Add cross-references between test output size ctest variables

Jean-Marc Hengen (1):
  IAR: Moved search logic to BinUtils.

Joerg Bornemann (1):
  AutoGen: Fix needless compilation of mocs_compilation.cpp

KWSys Upstream (1):
  KWSys 2021-07-26 (d5fd6ca2)

Kyle Edwards (2):
  CMakePresets.json: Fix expansion issue with empty binaryDir
  Tests: Clean up Ninja Multi-Config test from cb777dd

Lorenzo Cappelletti (3):
  Compiler/IAR: search for both IAR's binaries * and *.exe
  Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX
  Help: Document CMAKE_EXECUTABLE_SUFFIX_ explicitly

Martin Storsjö (1):
  libuv: Fix building with mingw toolchains for ARM/AArch64

Raul Tambre (1):
  GNU: Correct C23 flags

Yauheni Khnykin (1):
  FindXCTest: Fix output directory for test bundle with Xcode 12.5

Đoàn Trần Công Danh (2):
  Tests/CompileOptions: allow CMAKE_BUILD_TYPE=None
  Add option to explicitly avoid using execinfo for backtraces


[ANNOUNCE] CMake 3.21.2 available for download

2021-08-25 Thread Tom Osika
We are pleased to announce that CMake 3.21.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.21.1:

Alexey Edelev (1):
  AUTOUIC: Add test for cyclic dependency between UI headers and timestamp

Artur Samarin (1):
  CPackRPM: avoid a spurious `;` in the `%pre` and other sections
with scripts

Ben Boeckel (2):
  FindMPI: do not detect `-framework` as a compile flag
  GNUInstallDirs: avoid unwanted variable dereference

Brad King (7):
  VS: Fix assertion failure on INCLUDE_DIRECTORIES in INTERFACE libraries
  VS: Fix /reference and /headerUnit flag table entries for v142 and v143
  CheckLanguage: Avoid CMP0126 warning
  AUTOUIC: Revert "Fix generating of dependency rules for UI header files"
  VS: Add special case for '-T version=14.29.16.11' under VS 16.11
  VS: Update Visual Studio 17 2022 generator for Preview 3.1
  CMake 3.21.2

Craig Scott (2):
  Help: Add missing versionadded annotation for CPACK_DMG_FILESYSTEM
  Help: Fix unlinked mention of CMAKE_TOOLCHAIN_FILE

Cristian Adam (1):
  BinUtils: Avoid searching CMAKE_PREFIX_PATH

Evan Miller (1):
  macOS: Restore support for Mac OS X 10.4 (Tiger)

Jessica Hamilton (1):
  Platform/Haiku: Remove the include-once behavior

Kyle Edwards (2):
  CMakePresets: Check presets with their own file version
  CTest: Reset multi-options to persistent multi-options

Marc Chevrier (3):
  add_custom_command(DEPFILE) independent from CMAKE_DEPENDS_USE_COMPILER
  Help: get_filename_component: fix version info for cmake_path
  FindPkgConfig: Restore legacy behavior when CMP0126 is set to NEW

Michael Hirsch (1):
  Help: cmake_path: add missing parameter

Robert Maynard (3):
  NVHPC: Support 21.07 change to '-MD' where it behaves like gcc
  NVHPC-CXX: Add support for C++20
  NVHPC-C: Add support for C17

Thomas Bernard (1):
  FindBinUtils: Fall back to ld for Clang without lld

WangBin (1):
  Android: Fix NDK toolchain dir on arm64 mac

Raul Tambre (2):
  CUDA/Clang: Fix separable compilation in non-root directories
with Makefiles
  CUDA/Clang: Simplify --register-link-binaries logic

Đoàn Trần Công Danh (1):
  Ninja: Revert accidental LINK_WHAT_YOU_USE impl for static libraries


[ANNOUNCE] CMake 3.20.6 available for download

2021-09-20 Thread Tom Osika
We are pleased to announce that CMake 3.20.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.20.5:

Ben Boeckel (1):
  GNUInstallDirs: avoid unwanted variable dereference

Brad King (4):
  IntelLLVM: Fix C/C++ standard level flags on Windows
  FindJPEG: Revert "Search for 'turbojpeg' and 'turbojpeg-static' too"
  Tests: Fix RunCMake.try_compile C/CXX standards with IntelLLVM MSVC mode
  CMake 3.20.6

Evan Miller (1):
  macOS: Restore support for Mac OS X 10.4 (Tiger)

Haibo Huang (1):
  Android: Restore searching PATH for executables

Marc Chevrier (1):
  Makefiles: Normalize compiler-generated depfile paths

Raul Tambre (1):
  CMakeCCompilerId: Fix C standard detection in Clang and
  IntelLLVM MSVC mode

Robert Maynard (1):
  Check*CompilerFlag: Do not set result as a normal variable too


[ANNOUNCE] CMake 3.21.3 available for download

2021-09-20 Thread Tom Osika
We are pleased to announce that CMake 3.21.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.21.2:

Brad King (10):
  FindBoost: Add support for Boost 1.77
  MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset
  IRSL: Add discovery of VS 2022 v143 toolset redistributables
  gitlab-ci: Update Windows builds to MSVC 19.29-16.11 toolset
  VS: Fix managed C++ project generation for VS 2022
  VS: Update Visual Studio 17 2022 generator for Preview 4
  HIP: Detect ROCm path earlier
  HIP: Remove ROMClang compiler id and use Clang directly
  HIP: Simplify detection of HIP runtime CMake package
  CMake 3.21.3

Haibo Huang (1):
  Android: Restore searching PATH for executables

Jean-Marc Hengen (1):
  IAR: Restore support for projects not enabling policy CMP0057

Marc Chevrier (1):
  FindPython: Ensure homebrew on Mac M1 is used

Martin Kojtal (1):
  Ninja: fix ARMClang paths for Windows

Zack Galbreath (1):
  HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES

ulatekh (1):
  KWSys: SystemTools: Ensure Windows Vista APIs are available before using
them


[ANNOUNCE] CMake 3.22.0-rc1 is ready for testing

2021-10-14 Thread Tom Osika
I am proud to announce the first CMake 3.22 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.22 are:

* The "Compile Features" functionality now correctly disables or
  enables compiler extensions when no standard level is specified and
  avoids unnecessarily adding language standard flags if the requested
  settings match the compiler's defaults. See "CMP0128".

* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "Visual Studio 10 2010" generator is now deprecated and will be
  removed in a future version of CMake.


CMake 3.22 Release Notes


Changes made since CMake 3.21 include the following.


New Features



Commands


* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "string(TIMESTAMP)" command now supports the "%V" specifier for
  ISO 8601 week numbers.


Variables
-

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_CONFIGURATION_TYPES" environment variable was added to
  provide a default value for the "CMAKE_CONFIGURATION_TYPES"
  variable.

* The "CMAKE_INSTALL_MODE" environment variable was added to tell
  "install()" rules (implemented by "file(INSTALL)") to install
  symbolic links instead of copying of files.

* The "CMAKE__LINK_WHAT_YOU_USE_FLAG" and
  "CMAKE_LINK_WHAT_YOU_USE_CHECK" variables were added to control the
  linker flag and check used by the "LINK_WHAT_YOU_USE" target
  property.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.


Properties
--

* The "_EXTENSIONS" target property is now initialized to
  "CMAKE__EXTENSIONS_DEFAULT", detected from the compiler. See
  "CMP0128".

* The "VS_SETTINGS" source file property is now supported for all
  source file types.  Previously it worked only for non-built sources.


Modules
---

* The "CMakeDependentOption" module "cmake_dependent_option()" macro
  now supports full Condition Syntax. See policy "CMP0127".

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "FindBLAS" and "FindLAPACK" modules gained a
  "BLA_SIZEOF_INTEGER" option to find a BLAS/LAPACK whose ABI uses a
  specific integer size.

* The "FindJasper" module now provides an imported target.

* The "FindMatlab" module now provides imported targets.

* The "FindPkgConfig" module gained a "PKG_CONFIG_ARGN" variable to
  specify arguments to "pkg-config" calls.

* The "GoogleTest" module "gtest_discover_tests()" function gained a
  "TEST_FILTER" option to filter tests using "--gtest_filter" during
  test discovery.

* The "UseSWIG" module, for Visual Studio Generators, can now use the
  "swig" tool to generate implicit dependencies.


CTest
-

* "ctest(1)" learned to recognize labels attached to a test at run
  time. Previously it was only possible to attach labels to tests at
  configure time by using the "LABELS" test property. See Additional
  Test Measurements for more information.

* "ctest(1)" learned to be able to modify the environment for a test
  through the "ENVIRONMENT_MODIFICATION" property. This is allows for
  updates to environment variables based on the environment present at
  test time.

* The "ctest_memcheck()" command now also generates a
  "DynamicAnalysis-Test.xml" file which may be used to submit test
  results to CDash.


CPack
-

* The "CPack DEB Generator" gained the option to set
  "CPACK_DEBIAN_COMPRESSION_TYPE" to "zstd", which enables Zstandard
  compression for deb packages.

* The "CPack NSIS Generator" gained a new
  "CPACK_NSIS_IGNORE_LICENSE_PAGE" variable to suppress the license
  page in the installer.

* The "CPack RPM Generator" gained the
  "CPACK_RPM_REQUIRES_EXCLUDE_FROM" option to avoid scanning specific
  paths for dependencies.


Deprecated and Removed Features
=

[ANNOUNCE] CMake 3.21.4 available for download

2021-10-27 Thread Tom Osika
We are pleased to announce that CMake 3.21.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.21.3:

Ben Boeckel (2):
  Tests/RunCMake/Autogen: test CMP0111 behavior
  cmQtAutoGenInitializer: support IMPLIB-only imported targets

Brad King (11):
  Tests: Fix RunCMake.XcodeProject XcodeIOSInstallCombined cases for Xcode
13.0
  gitlab-ci: update macOS jobs to use Xcode 13.0
  bootstrap: Enable cmake_language command to support cmake-gui with Qt 6.2
  ci: Enable CTest.Update{CVS,SVN,HG} tests
  MSVC: Tolerate cxx_std_23 feature on older compiler versions
  zstd: Backport fix for SIGBUS on armv6 from zstd 1.5.0
  IRSL: Fix discovery of VS 2022 v143 toolset redistributables for preview 5
  Source: Fix typo in _WIN32 preprocessor checks
  BinUtils: Avoid llvm-strip versions older than Clang 11
  VS: Update Visual Studio 17 2022 generator for the Release Candidates
  CMake 3.21.4

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

Gregor Jasny (1):
  Tests: Specify destination for Xcode scheme

Michael Hirsch (1):
  FindMatlab: Add R2021b => 9.11 version

Robert Maynard (1):
  NVHPC: only use '-MD' for the C and CXX languages

Seth R Johnson (1):
  FortranCInterface: Fix regression in timestamp check

Sylvain Joubert (1):
  TestDriver: Fix old-style-cast warning in C++ mode

Timo Röhling (1):
  GNUInstallDirs: Fix misinterpretation of Debian Policy on LIBEXECDIR


[ANNOUNCE] CMake 3.22.0-rc2 is ready for testing

2021-10-28 Thread Tom Osika
I am proud to announce the second CMake 3.22 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.22 are:

* The "Compile Features" functionality now correctly disables or
  enables compiler extensions when no standard level is specified and
  avoids unnecessarily adding language standard flags if the requested
  settings match the compiler's defaults. See "CMP0128".

* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "Visual Studio 10 2010" generator is now deprecated and will be
  removed in a future version of CMake.


CMake 3.22 Release Notes


Changes made since CMake 3.21 include the following.


New Features



Commands


* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "string(TIMESTAMP)" command now supports the "%V" specifier for
  ISO 8601 week numbers.


Variables
-

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_CONFIGURATION_TYPES" environment variable was added to
  provide a default value for the "CMAKE_CONFIGURATION_TYPES"
  variable.

* The "CMAKE_INSTALL_MODE" environment variable was added to tell
  "install()" rules (implemented by "file(INSTALL)") to install
  symbolic links instead of copying of files.

* The "CMAKE__LINK_WHAT_YOU_USE_FLAG" and
  "CMAKE_LINK_WHAT_YOU_USE_CHECK" variables were added to control the
  linker flag and check used by the "LINK_WHAT_YOU_USE" target
  property.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.


Properties
--

* The "_EXTENSIONS" target property is now initialized to
  "CMAKE__EXTENSIONS_DEFAULT", detected from the compiler. See
  "CMP0128".

* The "VS_SETTINGS" source file property is now supported for all
  source file types.  Previously it worked only for non-built sources.


Modules
---

* The "CMakeDependentOption" module "cmake_dependent_option()" macro
  now supports full Condition Syntax. See policy "CMP0127".

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "FindBLAS" and "FindLAPACK" modules gained a
  "BLA_SIZEOF_INTEGER" option to find a BLAS/LAPACK whose ABI uses a
  specific integer size.

* The "FindJasper" module now provides an imported target.

* The "FindMatlab" module now provides imported targets.

* The "FindPkgConfig" module gained a "PKG_CONFIG_ARGN" variable to
  specify arguments to "pkg-config" calls.

* The "GoogleTest" module "gtest_discover_tests()" function gained a
  "TEST_FILTER" option to filter tests using "--gtest_filter" during
  test discovery.

* The "UseSWIG" module, for Visual Studio Generators, can now use the
  "swig" tool to generate implicit dependencies.


CTest
-

* "ctest(1)" learned to recognize labels attached to a test at run
  time. Previously it was only possible to attach labels to tests at
  configure time by using the "LABELS" test property. See Additional
  Test Measurements for more information.

* "ctest(1)" learned to be able to modify the environment for a test
  through the "ENVIRONMENT_MODIFICATION" property. This is allows for
  updates to environment variables based on the environment present at
  test time.

* The "ctest_memcheck()" command now also generates a
  "DynamicAnalysis-Test.xml" file which may be used to submit test
  results to CDash.


CPack
-

* The "CPack DEB Generator" gained the option to set
  "CPACK_DEBIAN_COMPRESSION_TYPE" to "zstd", which enables Zstandard
  compression for deb packages.

* The "CPack NSIS Generator" gained a new
  "CPACK_NSIS_IGNORE_LICENSE_PAGE" variable to suppress the license
  page in the installer.

* The "CPack RPM Generator" gained the
  "CPACK_RPM_REQUIRES_EXCLUDE_FROM" option to avoid scanning specific
  paths for dependencies.


Deprecated and Removed Features

[ANNOUNCE] CMake 3.22.0-rc3 is ready for testing

2021-11-12 Thread Tom Osika
I am proud to announce the third CMake 3.22 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.22 are:

* The "Compile Features" functionality now correctly disables or
  enables compiler extensions when no standard level is specified and
  avoids unnecessarily adding language standard flags if the requested
  settings match the compiler's defaults. See "CMP0128".

* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "Visual Studio 10 2010" generator is now deprecated and will be
  removed in a future version of CMake.


CMake 3.22 Release Notes


Changes made since CMake 3.21 include the following.


New Features



Commands


* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "string(TIMESTAMP)" command now supports the "%V" specifier for
  ISO 8601 week numbers.


Variables
-

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_CONFIGURATION_TYPES" environment variable was added to
  provide a default value for the "CMAKE_CONFIGURATION_TYPES"
  variable.

* The "CMAKE_INSTALL_MODE" environment variable was added to tell
  "install()" rules (implemented by "file(INSTALL)") to install
  symbolic links instead of copying of files.

* The "CMAKE__LINK_WHAT_YOU_USE_FLAG" and
  "CMAKE_LINK_WHAT_YOU_USE_CHECK" variables were added to control the
  linker flag and check used by the "LINK_WHAT_YOU_USE" target
  property.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.


Properties
--

* The "_EXTENSIONS" target property is now initialized to
  "CMAKE__EXTENSIONS_DEFAULT", detected from the compiler. See
  "CMP0128".

* The "VS_SETTINGS" source file property is now supported for all
  source file types.  Previously it worked only for non-built sources.


Modules
---

* The "CMakeDependentOption" module "cmake_dependent_option()" macro
  now supports full Condition Syntax. See policy "CMP0127".

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "FindBLAS" and "FindLAPACK" modules gained a
  "BLA_SIZEOF_INTEGER" option to find a BLAS/LAPACK whose ABI uses a
  specific integer size.

* The "FindJasper" module now provides an imported target.

* The "FindMatlab" module now provides imported targets.

* The "FindPkgConfig" module gained a "PKG_CONFIG_ARGN" variable to
  specify arguments to "pkg-config" calls.

* The "GoogleTest" module "gtest_discover_tests()" function gained a
  "TEST_FILTER" option to filter tests using "--gtest_filter" during
  test discovery.

* The "UseSWIG" module, for Visual Studio Generators, can now use the
  "swig" tool to generate implicit dependencies.


CTest
-

* "ctest(1)" learned to recognize labels attached to a test at run
  time. Previously it was only possible to attach labels to tests at
  configure time by using the "LABELS" test property. See Additional
  Test Measurements for more information.

* "ctest(1)" learned to be able to modify the environment for a test
  through the "ENVIRONMENT_MODIFICATION" property. This is allows for
  updates to environment variables based on the environment present at
  test time.

* The "ctest_memcheck()" command now also generates a
  "DynamicAnalysis-Test.xml" file which may be used to submit test
  results to CDash.


CPack
-

* The "CPack DEB Generator" gained the option to set
  "CPACK_DEBIAN_COMPRESSION_TYPE" to "zstd", which enables Zstandard
  compression for deb packages.

* The "CPack NSIS Generator" gained a new
  "CPACK_NSIS_IGNORE_LICENSE_PAGE" variable to suppress the license
  page in the installer.

* The "CPack RPM Generator" gained the
  "CPACK_RPM_REQUIRES_EXCLUDE_FROM" option to avoid scanning specific
  paths for dependencies.


Deprecated and Removed Features
=

[ANNOUNCE] CMake 3.22.0 available for download

2021-11-18 Thread Tom Osika
I am happy to announce that CMake 3.22.0 is now available for download at:
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.22 are:

* The "Compile Features" functionality now correctly disables or
  enables compiler extensions when no standard level is specified and
  avoids unnecessarily adding language standard flags if the requested
  settings match the compiler's defaults. See "CMP0128".

* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "Visual Studio 10 2010" generator is now deprecated and will be
  removed in a future version of CMake.


CMake 3.22 Release Notes


Changes made since CMake 3.21 include the following.


New Features



Commands


* The "cmake_host_system_information()" command can now query OS
  identification variables from the "/etc/os-release" file.

* The "string(TIMESTAMP)" command now supports the "%V" specifier for
  ISO 8601 week numbers.


Variables
-

* The "CMAKE_BUILD_TYPE" environment variable was added to provide a
  default value for the "CMAKE_BUILD_TYPE" variable.

* The "CMAKE_CONFIGURATION_TYPES" environment variable was added to
  provide a default value for the "CMAKE_CONFIGURATION_TYPES"
  variable.

* The "CMAKE_INSTALL_MODE" environment variable was added to tell
  "install()" rules (implemented by "file(INSTALL)") to install
  symbolic links instead of copying of files.

* The "CMAKE__LINK_WHAT_YOU_USE_FLAG" and
  "CMAKE_LINK_WHAT_YOU_USE_CHECK" variables were added to control the
  linker flag and check used by the "LINK_WHAT_YOU_USE" target
  property.

* The "CMAKE_REQUIRE_FIND_PACKAGE_" variable was added to
  turn a non-REQUIRED "find_package()" call into a REQUIRED one.


Properties
--

* The "_EXTENSIONS" target property is now initialized to
  "CMAKE__EXTENSIONS_DEFAULT", detected from the compiler. See
  "CMP0128".

* The "VS_SETTINGS" source file property is now supported for all
  source file types.  Previously it worked only for non-built sources.


Modules
---

* The "CMakeDependentOption" module "cmake_dependent_option()" macro
  now supports full Condition Syntax. See policy "CMP0127".

* The "FetchContent" module now passes through the "CMAKE_TLS_VERIFY",
  "CMAKE_TLS_CAINFO", "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables
  (when defined) to the underlying "ExternalProject" sub-build.
  Previously, those variables were silently ignored by "FetchContent".

* The "FindBLAS" and "FindLAPACK" modules gained a
  "BLA_SIZEOF_INTEGER" option to find a BLAS/LAPACK whose ABI uses a
  specific integer size.

* The "FindJasper" module now provides an imported target.

* The "FindMatlab" module now provides imported targets.

* The "FindPkgConfig" module gained a "PKG_CONFIG_ARGN" variable to
  specify arguments to "pkg-config" calls.

* The "GoogleTest" module "gtest_discover_tests()" function gained a
  "TEST_FILTER" option to filter tests using "--gtest_filter" during
  test discovery.

* The "UseSWIG" module, for Visual Studio Generators, can now use the
  "swig" tool to generate implicit dependencies.


CTest
-

* "ctest(1)" learned to recognize labels attached to a test at run
  time. Previously it was only possible to attach labels to tests at
  configure time by using the "LABELS" test property. See Additional
  Test Measurements for more information.

* "ctest(1)" learned to be able to modify the environment for a test
  through the "ENVIRONMENT_MODIFICATION" property. This is allows for
  updates to environment variables based on the environment present at
  test time.

* The "ctest_memcheck()" command now also generates a
  "DynamicAnalysis-Test.xml" file which may be used to submit test
  results to CDash.


CPack
-

* The "CPack DEB Generator" gained the option to set
  "CPACK_DEBIAN_COMPRESSION_TYPE" to "zstd", which enables Zstandard
  compression for deb packages.

* The "CPack NSIS Generator" gained a new
  "CPACK_NSIS_IGNORE_LICENSE_PAGE" variable to suppress the license
  page in the installer.

* The "CPack RPM Generator" gained the
  "CPACK_RPM_REQUIRES_EXCLUDE_FROM" option to avoid scanning specific
  paths for dependencies.


Deprecated and Removed Features
=

[ANNOUNCE] CMake 3.22.1 available for download

2021-12-07 Thread Tom Osika
We are pleased to announce that CMake 3.22.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.22.0:

Ben Boeckel (2):
  gitlab-ci: fix comment typo
  gitlab-ci: shorten job prefixes

Brad King (15):
  ci: add gmock to Debian base images
  try_compile: Do not use CMAKE_BUILD_TYPE or CMAKE_CONFIGURATION_TYPES env
vars
  Help: Document more use cases for CMAKE_POLICY_DEFAULT_CMP
  Help: Suggest CMAKE_POLICY_DEFAULT_CMP0077 in CMP0077 docs
  Help: Suggest CMAKE_POLICY_DEFAULT_CMP0126 in CMP0126 docs
  gitlab-ci: update macOS jobs to use Xcode 13.1
  CompilerId: Restore support for classic C by avoiding C++ style comments
  cmSystemTools: Remove unnecessary mark-as-used casts to void
  file(RPATH): Restore tolerance of unknown formats if new RPATH is empty
  FindPkgConfig: Restore finding pkg-config before pkgconf
  VS: Revert "Add missing label in C# project-build events"
  ci: Enable more VS tests that use managed code
  Utilities/Release: Add script to sign/notarize macOS application bundle
  HIP: Enable CMAKE_EXPORT_COMPILE_COMMANDS for HIP
  CMake 3.22.1

Christoph Reiter (1):
  mingw: fix calling convention for strftime()

Craig Scott (4):
  Help: ENVIRONMENT_MODIFICATION path_list_... separator is based on host
  Help: Use definition list for allowed values of CMAKE_INSTALL_MODE
  Help: Explicitly state that if(ENV{some_var}) is always false
  Help: Be more explicit about the behavior of if()

Felix Lelchuk (1):
  Help: Clarify CMAKE_INSTALL_MODE documentation

Marc Chevrier (2):
  UseSWIG: ensure directory for depfile exists
  FindPython: clarify static libraries hint usage

Raphael Gozzo (1):
  CMakeParseLibraryArchitecture: Fix parsing /lib/ implicit object
path

Robert Maynard (1):
  GNUInstallDirs: Prefer system lib64 over conda lib when ambiguous


[ANNOUNCE] CMake 3.22.2 available for download

2022-01-25 Thread Tom Osika
We are pleased to announce that CMake 3.22.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.22.1:

Benjamin Sluis (1):
  VS: Remove the '/guard:cf' flag from v143 link flag table

Björn Esser (1):
  FortranCInterface: Fix compatibility with GCC gfortran 12 LTO

Brad King (10):
  FindBoost: Add support for Boost 1.78
  ci: Explicitly disable Java tests on Windows
  FindGLUT: Provide legacy GLUT_INCLUDE_DIR result in pkg-config code path
  FindBoost: Do not warn about now-supported version 1.78
  ci: Explicitly disable Java tests on VS builds
  file: Restore error capture in undocumented READ_ELF mode
  MSVC: Use -external:I flag without space to support Clang tools
  Help: Add missing 3.22.1 section to the release notes
  gitlab-ci: update macOS jobs to use Xcode 13.2
  CMake 3.22.2

Jukka Jalkanen (1):
  ASM: Fix identification of armasm 6.17+

Oleg Sidorkin (1):
  FindBoost: Add support for Python 3.10

Raul Tambre (4):
  XL: Detect default extensions mode for legacy compiler
  CMP0128: Prefix test names with mode
  CMP0128: Avoid test code duplication
  CMP0128: Add flag in OLD mode even when standard matches the default

Ryan Prichard (1):
  Android: Fix linking android_support for pre-21 system STL

Tomáš Hrnciar (1):
  FindPython: Add support for Python 3.11

William R. Dieter (1):
  VS: Fix detecting icx.exe with Intel Compiler toolsets newer than 2021


[ANNOUNCE] CMake 3.21.5 available for download

2022-02-01 Thread Tom Osika
We are pleased to announce that CMake 3.21.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.21.4:

Benjamin Sluis (1):
  VS: Remove the '/guard:cf' flag from v143 link flag table

Brad King (9):
  GNUtoMS: Add search path for VS 2022 environment scripts
  cmScanDepFormat: Accept P1689r4 files with version 1
  Help: Clarify TARGET_RUNTIME_DLLS behavior on imported targets
  IntelLLVM: Enable Fortran module rebuild avoidance in Makefile generators
  gitlab-ci: update macOS jobs to use Xcode 13.2
  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
  CMake 3.21.5

Marc Chevrier (1):
  UseSWIG: ensure directory for depfile exists

Mattias Ellert (1):
  FindThreads: Honor THREADS_PREFER_PTHREAD_FLAG when pthread is found in
libc

William R. Dieter (3):
  IntelLLVM: Use MSVC linker with MSVC frontend variant
  Fortran: Save frontend variant persistently for IntelLLVM
  VS: Fix detecting icx.exe with Intel Compiler toolsets newer than 2021

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


[ANNOUNCE] CMake 3.23.0-rc1 is ready for testing

2022-02-08 Thread Tom Osika
I am proud to announce the first 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.


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
  actually names of existing targets.


Properties
--

* The "HEADER_SETS" and "INTERFACE_HEADER_SETS" target properties were
  added to list header sets associated with a target.

* The "HEADER_SET" and "HEADER_SET_" target properti

[ANNOUNCE] CMake 3.23.0-rc5 is ready for testing

2022-03-23 Thread Tom Osika
I am proud to announce the fifth 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_LIBRARIE

[ANNOUNCE] CMake 3.26.0-rc4 is ready for testing

2023-02-22 Thread Tom Osika
I am proud to announce the fourth 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-rc5 is ready for testing

2023-03-01 Thread Tom Osika
I am proud to announce the fifth 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.