[ANNOUNCE] CMake 3.28.0-rc3 is ready for testing

2023-10-25 Thread John Parent
I am proud to announce the third CMake 3.28 release candidate.
  https://cmake.org/download/

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

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

Some of the more significant changes in CMake 3.28 are:

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.

* On Apple platforms, ".xcframework" folders are now supported.

* The "exec_program()" command, which has been deprecated since CMake
  3.0, has been removed by policy "CMP0153". Use the
  "execute_process()" command instead.

* Generated files, in targets using File Sets, are now considered
  private by default.  Generated public headers must be specified
  using file sets.  This allows Ninja Generators to produce more
  efficient build graphs.  See policy "CMP0154".

* The "find_library()", "find_path()", and "find_file()" commands no
  longer search in installation prefixes derived from the "PATH"
  environment variable.  This behavior was added in CMake 3.3 to
  support MSYS and MinGW ("MSYSTEM") development environments on
  Windows, but it can search undesired prefixes that happen to be in
  the "PATH" for unrelated reasons.  Users who keep some
  "/bin" directories in the "PATH" just for their tools do not
  necessarily want any corresponding "/lib" or
  "/include" directories searched. The behavior was reverted
  for non-Windows platforms by CMake 3.6. Now it has been reverted on
  Windows platforms too.


CMake 3.28 Release Notes


Changes made since CMake 3.27 include the following.


New Features



Languages
-

* C++ 20 named modules are now supported by Ninja Generators and
  Visual Studio Generators for VS 2022 and newer, in combination with
  the MSVC 14.34 toolset (provided with VS 17.4) and newer, LLVM/Clang
  16.0 and newer, and GCC 14 (after the 2023-09-20 daily bump) and
  newer. See "cmake-cxxmodules(7)" for details.

* "HIP" language code may now be compiled for NVIDIA GPUs using the
  NVIDIA CUDA Compiler (NVCC). See the "CMAKE_HIP_PLATFORM" variable.


Platforms
-

* On Apple platforms, ".xcframework" folders are now supported:

  * The "find_library()" command now finds ".xcframework" folders.

  * The "target_link_libraries()" command now supports linking against
a ".xcframework" folder.

  * The "IMPORTED_LOCATION" target property of an imported library
target may now be the path to a ".xcframework" folder.

* Apple visionOS and its "xros" and "xrsimulator" SDKs are now
  supported. Compiling for Apple visionOS can be requested by setting
  "CMAKE_SYSTEM_NAME" to "visionOS". See Cross Compiling for iOS,
  tvOS, visionOS, or watchOS for more information.


Presets
---

* "cmake-presets(7)" files now support schema version "8". It adds
  support for a "$schema" field.


Compilers
-

* Cray Clang-based compilers are now supported with "compiler id"
  "CrayClang".

* The OrangeC compiler is now supported with "compiler id" "OrangeC".


Commands


* The "add_custom_command()" and "add_custom_target()" commands gained
  a "JOB_SERVER_AWARE" option.

* The "cmake_host_system_information()" command gained a
  "MSYSTEM_PREFIX" query for the installation prefix of a MSYS or
  MinGW development environment on Windows hosts.

* The "set_property()" command "TEST" mode gained a "DIRECTORY" option
  to set properties on tests in other directories.

* The "set_tests_properties()" command gained a "DIRECTORY" option to
  set properties on tests in other directories.

* The "get_property()" command "TEST" mode gained a "DIRECTORY" option
  to get properties on tests in other directories.

* The "get_test_property()" command gained a "DIRECTORY" option to get
  properties on tests in other directories.


Variables
-

* The "CMAKE_CROSSCOMPILING_EMULATOR" environment variable was added
  to initialize the "CMAKE_CROSSCOMPILING_EMULATOR" cache variable.

* The "CMAKE_HIP_PLATFORM" variable was added to specify the GPU
  platform for which HIP language sources are to be compiled ("amd" or
  "nvidia").


Properties
--

* On imported shared libraries, the "IMPORTED_IMPLIB" target property
  may now be used without "IMPORTED_LOCATION". This can be used to
  represent a stub library whose location should not be added as a
  runtime search path to dependents that link it.

* The "IMPORTED_LOCATION" property of a macOS framework may now be a
  path to the ".framework" folder itself.

* The "XCODE_EMBED_RESOURCES" target property was add

We need to remove exec_program() from our Cmake files

2023-10-25 Thread Ömer Fadıl USTA
We need to hurry to remove exec_program() from our cmake files because
It will be removed with the upcoming CMake's 3.28.0 version which is really
near to release. ( Just 2 hours ago its rc3 was released ).
And from a quick search for our repo ( with ripgrep) I have seen that we
got at least 18 repo using that execure_program(...)

CMake Release Notes :
https://cmake.org/cmake/help/v3.28/release/3.28.html#deprecated-and-removed-features

```
The exec_program()

command, which has been deprecated since CMake 3.0, has been removed by
policy CMP0153
.
Use the execute_process()

command instead.
```


[Sorry for cross post to kde-devel and kde-core-devel ]

Ömer Fadıl Usta
PGP key : 0xfd11561976b1690b
about.me/omerusta


Re: We need to remove exec_program() from our Cmake files

2023-10-25 Thread Johnny Jazeix
Hi,

for the list:
https://lxr.kde.org/search?%21v=kf5-qt5&_filestring=&_string=exec_program&_casesensitive=1

Cheers,
Johnny

Le jeu. 26 oct. 2023 à 05:10, Ömer Fadıl USTA  a écrit :

> We need to hurry to remove exec_program() from our cmake files because
> It will be removed with the upcoming CMake's 3.28.0 version which is really
> near to release. ( Just 2 hours ago its rc3 was released ).
> And from a quick search for our repo ( with ripgrep) I have seen that we
> got at least 18 repo using that execure_program(...)
>
> CMake Release Notes :
> https://cmake.org/cmake/help/v3.28/release/3.28.html#deprecated-and-removed-features
>
> ```
> The exec_program()
> 
> command, which has been deprecated since CMake 3.0, has been removed by
> policy CMP0153
> .
> Use the execute_process()
> 
> command instead.
> ```
>
>
> [Sorry for cross post to kde-devel and kde-core-devel ]
>
> Ömer Fadıl Usta
> PGP key : 0xfd11561976b1690b
> about.me/omerusta
>


Re: We need to remove exec_program() from our Cmake files

2023-10-25 Thread David Redondo
Am Donnerstag, 26. Oktober 2023, 03:49:57 CEST schrieb Ömer Fadıl USTA:
> 
> ```
> The exec_program()
>  rogram> command, which has been deprecated since CMake 3.0, has been removed
> by policy CMP0153
> .
> Use the execute_process()
>  cute_process> command instead.
> ```
This is behind a policy so if we don't have

cmake_minimum_required(VERSION 3.28)

in my understanding we can continue to call it for now and not have to rush 
though it.
Otherwise we would have to change things every time a policy changes behavior.

David