Subject: CVS commit: pkgsrc/devel/cmake
From: Adam Ciarcinski
Date: 2024-04-02 19:27:41
Message id: 20240402172741.C409CFA2C@cvs.NetBSD.org

Log Message:
cmake: updated to 3.29.0

CMake 3.29 Release Notes
************************

Changes made since CMake 3.28 include the following.

New Features
============

Command-Line
------------

* "cmake(1)" "-E cat" can now print the standard input by \ 
passing the
  "-" argument.

Generators
----------

* Visual Studio Generators now support selecting between the Intel
  oneAPI Fortran compiler ("ifx") and the Intel classic Fortran
  compiler ("ifort") using a "fortran=" field in
  "CMAKE_GENERATOR_TOOLSET".

File-Based API
--------------

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

* The "cmake-file-api(7)" "codemodel" version 2 \ 
"target" object gained
  a new "launchers" field.

Compilers
---------

* The LLVM/Clang GNU-like frontend on Windows ("clang++") may now be
  used to compile "CUDA" language sources.

* Compilers targeting the GNU ABI on Windows (MinGW) may now be used
  to compile Objective C ("OBJC") and Objective C++ \ 
("OBJCXX").  These
  include GNU compilers ("gcc" and "g++") and the LLVM/Clang \ 
GNU-like
  frontends ("clang" and "clang++").

* TI Clang-based compilers are now supported with compiler id
  "TIClang".

Commands
--------

* The add_custom_command(TARGET) signature now supports adding build
  events through Alias Targets.

* The "cmake_language(EXIT)" sub-command was added to terminate "cmake
  -P" scripts with a specified exit code.

* The "export(SETUP)" sub-command was added to configure export sets.
  Its "TARGET" option's "XCFRAMEWORK_LOCATION" setting \ 
specifies the
  location of a ".xcframework" that can be substituted for an
  installed target.

* The "if()" command gained new tests "IS_READABLE", \ 
"IS_WRITABLE" and
  "IS_EXECUTABLE" to check file or directory permissions.

Variables
---------

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

* The "CMAKE_LINKER_TYPE" variable and corresponding \ 
"LINKER_TYPE"
  target property were added to specify what linker to use with some
  toolchains.

* The "CMAKE_<LANG>_COMPILER_LINKER",
  "CMAKE_<LANG>_COMPILER_LINKER_ID",
  "CMAKE_<LANG>_COMPILER_LINKER_VERSION" and
  "CMAKE_<LANG>_COMPILER_LINKER_FRONTEND_VARIANT" variables were \ 
added
  to describe the linker used by the language's link step.

* The "CMAKE_PROJECT_INCLUDE", "CMAKE_PROJECT_INCLUDE_BEFORE",
  "CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE", and \ 
"CMAKE_PROJECT_<PROJECT-
  NAME>_INCLUDE_BEFORE" variables learned to support a semicolon-
  separated list of CMake language files to be included sequentially.
  These variables can also reference module names to be found in
  "CMAKE_MODULE_PATH" or builtin to CMake.

* The "CMAKE_SKIP_TEST_ALL_DEPENDENCY" variable was added to control
  whether the "test" (or "RUN_TESTS") buildsystem target \ 
depends on
  the "all" (or "ALL_BUILD") target.

* A "CMAKE_TEST_LAUNCHER" variable and corresponding \ 
"TEST_LAUNCHER"
  target property were added to specify a launcher to be used by
  executable targets when invoked by tests added by the "add_test()"
  command.

Properties
----------

* The "CROSSCOMPILING_EMULATOR" target property now supports
  "generator expressions".

* The "UNITY_BUILD" target property now supports the Objective C
  ("OBJC") and Objective C++ ("OBJCXX") languages.

* The "XCODE_EMBED_XPC_SERVICES" target property was added to tell the
  "Xcode" generator what targets to put in the "Embed XPC \ 
Resources"
  build phase.

Modules
-------

* The "CMakePackageConfigHelpers" module gained new
  "generate_apple_platform_selection_file()" and
  "generate_apple_architecture_selection_file()" functions, which can
  be used to generate a file that includes another Apple-platform-
  specific file or the includes an architecture-specific
  implementation of a package for an Apple platform, respectively.

* The "FindOpenGL" module learned to find a GLU include directory
  different than the GL include directory.  A new
  "OPENGL_INCLUDE_DIRS" result variable provides all include
  directories.

CTest
-----

* "ctest(1)" gained a "--http-header" option to add custom \ 
headers on
  submission to CDash.

* "ctest(1)" gained the "--tests-from-file" and \ 
"--exclude-from-file"
  options to run or exclude tests named in a file.

* "ctest(1)" now supports job server integration on POSIX systems.

* The "ctest -j" option may now be given without a value to let ctest
  choose a default level of parallelism, or with "0" to let ctest use
  unbounded parallelism.  The corresponding "CTEST_PARALLEL_LEVEL"
  environment variable, if set to the empty string, is now equivalent
  to passing "-j" with no value.

* The "ctest_test()" command gained options \ 
"INCLUDE_FROM_FILE" and
  "EXCLUDE_FROM_FILE" to run or exclude tests named in a file.

CPack
-----

* The "CPack DEB Generator" "CPACK_DEBIAN_FILE_NAME" \ 
variable may now
  be set without any suffix, and the ".deb" suffix will be added
  automatically.

* The "CPack RPM Generator" "CPACK_RPM_FILE_NAME" variable \ 
may now be
  set without any suffix, and the ".rpm" suffix will be added
  automatically.

* The "CPack WIX Generator" gained a new variable,
  "CPACK_WIX_INSTALL_SCOPE", to control the "InstallScope" \ 
property of
  WiX MSI installers.

Other Changes
=============

* CMake learned to de-duplicate libraries on link lines based on
  linker capabilities.  See policy "CMP0156".

* The "add_test()" command now honors \ 
"CMAKE_CROSSCOMPILING_EMULATOR"
  only when cross-compiling. See policy "CMP0158".

* On Windows, when targeting the MSVC ABI, the "find_library()"
  command now accepts ".a" file names after first considering \ 
".lib".
  This is symmetric with existing behavior when targeting the GNU ABI,
  in which the command accepts ".lib" file names after first
  considering ".a".

* On Windows, when targeting the MSVC ABI, the "find_library()"
  command now considers ".dll.lib" file names before ".lib". \ 
 This is
  the default suffix for DLL import libraries created by Rust
  toolchains for the MSVC ABI.

* The "Ninja" and "NMake Makefiles" generators now use the
  "-external:I" flag for system includes when using IntelLLVM as of
  version 2021.4. The "-external:W0" flag is also used as of version
  2022.2.

* The "create_test_sourcelist()" command now provides a full path to
  the generated driver source file.

* The "CPACK_PRODUCTBUILD_DOMAINS" variable now defaults to true. See
  policy "CMP0161".

* The "CPack WIX Generator" now produces WiX MSI installers that
  create start menu and uninstall entries for all users by default, as
  documented by the "CPACK_WIX_INSTALL_SCOPE" variable \ 
"perMachine"
  value.  Previously, without a custom WiX template, it produced
  installers that would only create start menu and uninstall entries
  for the current user, even though they install for all users.

Files:
RevisionActionfile
1.79modifypkgsrc/devel/cmake/PLIST
1.230modifypkgsrc/devel/cmake/distinfo
1.55modifypkgsrc/devel/cmake/version.mk
1.2modifypkgsrc/devel/cmake/patches/patch-Modules_Compiler_GNU.cmake
1.4modifypkgsrc/devel/cmake/patches/patch-Source_Checks_Curses_CMakeLists.txt
1.3modifypkgsrc/devel/cmake/patches/patch-Source_Checks_Curses_CheckCurses.c