head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.14 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.12 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.10 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.8 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.6 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.4 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.2 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.1.0.8 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.6 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.4 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.2 pkgsrc-2023Q3-base:1.1; locks; strict; comment @# @; 1.2 date 2024.07.04.06.06.22; author adam; state Exp; branches; next 1.1; commitid eninCcYDo5mU6ugF; 1.1 date 2023.08.09.06.45.06; author tnn; state Exp; branches; next ; commitid 87j9dehVMISkV4AE; desc @@ 1.2 log @cmake cmake-gui: updated to 3.30.0 CMake 3.30 Release Notes ************************ Changes made since CMake 3.29 include the following. New Features ============ Presets ------- * "cmake-presets(7)" files now support schema version "9". "include" fields now expand all macros except "$env{}" and preset-specific macros, i.e., those derived from the fields inside a preset's definition. File-Based API -------------- * The "cmake-file-api(7)" "cmakeFiles" version 1 object's "version" field has been updated to 1.1. It gained a "globsDependent" field to report "file(GLOB)" calls using "CONFIGURE_DEPENDS". Generators ---------- * Visual Studio Generators now add "UseDebugLibraries" indicators to ".vcxproj" files to denote which configurations are debug configurations. See policy "CMP0162". Languages --------- * The "Compile Features" functionality now implements support for the "cxx_std_26" and "cuda_std_26" meta-features to indicate that the compiler mode must be at least C++26. These meta-features were first documented by CMake 3.25, but were not fully implemented. Commands -------- * The "add_library()" command, on platforms that do not support shared libraries, now rejects creation of shared libraries instead of automatically converting them to static libraries. See policy "CMP0164". * The "enable_language()" command now fails with an error if it is called before the first "project()" call. See policy "CMP0165". * The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained a "TLS_VERSION " option to specify the minimum TLS version for connections to "https://" URLs. Variables --------- * The "CMAKE__STANDARD_LATEST" variable was added to describe the latest "" language standard CMake supports for the selected compiler. * The "CMAKE_TLS_VERIFY" environment variable was added as a fallback to the existing "CMAKE_TLS_VERIFY" variable. It specifies whether to verify the server certificate for "https://" URLs by default. * The "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION" environment variable were added to specify a default minimum TLS version for connections to "https://" URLs by the "file(DOWNLOAD)" and "file(UPLOAD)" commands. * The "CMAKE_VS_USE_DEBUG_LIBRARIES" variable and corresponding "VS_USE_DEBUG_LIBRARIES" target property were added to explicitly control "UseDebugLibraries" indicators in ".vcxproj" files. Properties ---------- * The "GENERATED" source file property is now visible in all directories. See policy "CMP0163". Policy "CMP0118"'s documentation has been revised to describe its actual effects. * The "PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE" global property can be used to propagate "CMAKE_PROJECT_TOP_LEVEL_INCLUDES" into "try_compile()" calls that use the whole-project signature. This is primarily intended as a way for dependency providers to be enabled in such "try_compile()" calls. * A "VS_FILTER_PROPS" target property was added to tell Visual Studio Generators to use a custom MSBuild filter ".props" file. Modules ------- * The "ExternalProject" module's "ExternalProject_Add()" command gained a "TLS_VERSION " option, and support for the "CMAKE_TLS_VERSION" variable and "CMAKE_TLS_VERSION" environment variable, to specify the minimum TLS version for connections to "https://" URLs. * The "FindBacktrace" module now provides an imported target. * The "FindBLAS" and "FindLAPACK" modules gained support for "libblastrampoline". * The "FindCUDAToolkit" module now provides a target for "libnvfatbin" and "libnvfatbin_static", if found. * The "FindCUDAToolkit" module now searches the "CMAKE_CUDA_COMPILER" variable and the "CUDACXX" environment variable even when the "CUDA" language isn't enabled. * The "FindOpenMP" module gained an "OpenMP_RUNTIME_MSVC" option to control the OpenMP runtime used with MSVC. * The "FindPython" and "FindPython3" modules gained support for the free threaded Python version. * The "FindPython", "FindPython2", and "FindPython3" modules, on Windows, now offer better support for the Python debug variant: * new variables: * "Python_EXECUTABLE_DEBUG" * "Python_INTERPRETER" * "Python_DEBUG_POSTFIX" * new targets: * "Python::InterpreterDebug" * "Python::InterpreterMultiConfig" The "python_add_library()" command now manages the "DEBUG_POSTFIX" target property based on the value of the "Python_DEBUG_POSTFIX" variable. Generator Expressions --------------------- * The "_COMPILER_FRONTEND_VARIANT" family of generator expressions were added to access the value of the associated "CMAKE__COMPILER_FRONTEND_VARIANT" variables. * Link features, as used with the "LINK_LIBRARY" generator expression, gained the ability to have attributes that describe their behavior by specifying the "CMAKE_LINK_LIBRARY__ATTRIBUTES" or "CMAKE__LINK_LIBRARY__ATTRIBUTES" variables. * The "QUOTE" generator expression was added to evaluate to """. * The "TARGET_PROPERTY" generator expression learned to evaluate custom transitive properties defined by new "TRANSITIVE_COMPILE_PROPERTIES" and "TRANSITIVE_LINK_PROPERTIES" target properties. * The "TARGET_PROPERTY" generator expression now evaluates target properties "INTERFACE_LINK_OPTIONS", "INTERFACE_LINK_DIRECTORIES", and "INTERFACE_LINK_DEPENDS" correctly by following private dependencies of static libraries. See policy "CMP0166". CTest ----- * The "ctest_submit()" command and "ctest -T Submit" step gained "TLSVersion" and "TLSVerify" options to control negotiation with "https://" URLs. See the "CTEST_TLS_VERSION" and "CTEST_TLS_VERIFY" variables. CPack ----- * The "CPack Inno Setup Generator" is now available on non-Windows hosts. * The "CPack NuGet Generator" gained the "CPACK_NUGET_PACKAGE_README", "CPACK_NUGET_PACKAGE_REPOSITORY_URL", "CPACK_NUGET_PACKAGE_REPOSITORY_TYPE", "CPACK_NUGET_PACKAGE_REPOSITORY_BRANCH", and "CPACK_NUGET_PACKAGE_REPOSITORY_COMMIT" variables. * The "CPack NuGet Generator" can now generate dependency groups for framework-specific dependencies. The "CPACK_NUGET_PACKAGE_TFMS" variable was added to specify a list of target framework monikers (TFMs) for which groups should be generated. * The "CPack WIX Generator" gained support for WiX Toolset v4. See the "CPACK_WIX_VERSION" variable. Deprecated and Removed Features =============================== * The "FindBoost" module has been removed by policy "CMP0167". Port projects to upstream Boost's "BoostConfig.cmake" package configuration file, for which "find_package(Boost)" now searches. * Calling "FetchContent_Populate()" with just the name of a dependency is now deprecated. Projects should call "FetchContent_MakeAvailable()" instead. See policy "CMP0169". Calling "FetchContent_Populate()" with full population details rather than just a dependency name remains fully supported. * The "Visual Studio 9 2008" generator has been removed. Other Changes ============= * The precompiled Windows ".msi" installers provided on cmake.org, when performing a fresh installation, now modify the system-wide "PATH" by default. When replacing an existing installation of 3.30 or later, the "PATH" modification preference is preserved by default. * The official ".zip" source archive provided on cmake.org now uses LF newlines, instead of CRLF newlines, for consistency with modern conventions. * The durations printed after "Configuring done" and "Generating done" messages now reflect time spent in generator-specific steps, and in a code model evaluation step at the beginning of generation that was not previously captured. Printed durations may appear longer than in previous versions of CMake, but are more accurate. * "FetchContent" now prefers to populate content directly rather than using a separate sub-build. This may significantly improve configure times on some systems (Windows especially, but also on macOS when using the Xcode generator). "cmake --fresh" also forces the download, update, and patch steps of directly populated dependencies to be re-executed. Policy "CMP0168" provides backward compatibility for those projects that still rely on using a sub-build for content population. * When "FETCHCONTENT_FULLY_DISCONNECTED" is set to true, "FetchContent_MakeAvailable()" and the single-argument form of "FetchContent_Populate()" require that the dependency's source directory has already been populated. CMake 3.29 and earlier did not check this requirement, but it is now enforced, subject to policy "CMP0170". @ text @$NetBSD: patch-Modules_FortranCInterface_CMakeLists.txt,v 1.1 2023/08/09 06:45:06 tnn Exp $ Don't attempt to use LTO with GCC 12 when building Fortran code. It breaks FortranCInterface (math/lapack and others) when the compiler lacks working LTO support. Such as with lang/gcc12 from pkgsrc. Upstream PR about the problem: https://gitlab.kitware.com/cmake/cmake/-/issues/23525 --- Modules/FortranCInterface/CMakeLists.txt.orig 2024-07-02 14:40:35.000000000 +0000 +++ Modules/FortranCInterface/CMakeLists.txt @@@@ -114,13 +114,13 @@@@ if(CMAKE_Fortran_COMPILER_ID STREQUAL "G CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 12) target_compile_options(FortranCInterface PRIVATE "-fno-lto") if(NOT APPLE) - target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects") + target_compile_options(myfort PRIVATE "-fno-lto") endif() endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12) if(NOT APPLE) - target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects") + target_compile_options(symbols PRIVATE "-fno-lto") endif() endif() @ 1.1 log @cmake: don't attempt to use LTO with GCC 12 when building Fortran code @ text @d1 1 a1 1 $NetBSD$ d9 1 a9 1 --- Modules/FortranCInterface/CMakeLists.txt.orig 2023-07-25 17:58:09.000000000 +0000 d11 1 a11 2 @@@@ -113,11 +113,11 @@@@ target_link_libraries(FortranCInterface if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND d14 4 a17 2 - target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects") + target_compile_options(myfort PRIVATE "-fno-lto") d21 4 a24 2 - target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects") + target_compile_options(symbols PRIVATE "-fno-lto") a26 1 file(GENERATE OUTPUT exe-$.cmake CONTENT [[ @