CMake

Version: 
3.20.6
Release date: 
Thursday, 26 January, 2017

License:

Interface:

CMake is a cross-platform, open-source build system.

CMake is a family of tools designed to build, test and package software.

CMake is used to control the software compilation process using simple platform and compiler independent configuration files.

CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice.

This software is distributed in two modes:
  • as compressed package that you have to download and manually install; if prerequisites are required, you will have to manually install them too;
  • as RPM package; you can install it using your favorite rpm package manager, that will take care to download and install both the software and its prerequisites.
Choose the installation mode that you prefer. Please note that not all the versions are available in both the installation modes.

Installation with rpm

This program is installable using the rpm package manager. See below for the install string. Required prerequisites are automatically processed by the package manager and, if needed, downloaded and installed.

cmake-3.20.6-3.oc00 (22/03/2023)
Repository: Netlabs stable
CMake 3.20 Release Notes ************************ .. only:: html .. contents:: Changes made since CMake 3.19 include the following. New Features ============ Presets ------- * :manual:`cmake-presets(7)` gained support for build and test presets. Generators ---------- * :ref:`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 :prop_tgt:`CXX_STANDARD`, :prop_tgt:`CUDA_STANDARD`, or :prop_tgt:`OBJCXX_STANDARD` target properties, or via the :manual:`Compile Features <cmake-compile-features(7)>` 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 :envvar:`CUDAARCHS` environment variable was added for initializing :variable:`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 supported as of oneAPI 2021.1. * 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 :ref:`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 :variable:`CMAKE_BUILD_TYPE` for Android is now ``RelWithDebInfo``. - The :variable:`CMAKE_ANDROID_NDK_VERSION` variable was added to report the version of the NDK. File-Based API -------------- * The :manual:`cmake-file-api(7)` gained a new "toolchains" object kind that describes the compiler used for each enabled language. Commands -------- * :command:`add_custom_command` and :command:`add_custom_target` now support :manual:`generator expressions <cmake-generator-expressions(7)>` in their ``OUTPUT`` and ``BYPRODUCTS`` options. Their ``COMMAND``, ``WORKING_DIRECTORY``, and ``DEPENDS`` options gained support for new generator expressions ``$<COMMAND_CONFIG:...>`` and ``$<OUTPUT_CONFIG:...>`` that control cross-config handling when using the :generator:`Ninja Multi-Config` generator. * The :command:`add_custom_command` command gained ``DEPFILE`` support on :ref:`Makefile Generators`. * The :command:`add_library` command previously prohibited imported object libraries when using potentially multi-architecture configurations. This mostly affected the :generator:`Xcode` generator, e.g. when targeting iOS or one of the other device platforms. This restriction has now been removed. * The :command:`cmake_path` command was added for operations on filesystem paths. * The :command:`configure_file` command gained ``USE_SOURCE_PERMISSIONS`` and ``FILE_PERMISSIONS`` options to support copying of permissions of the source file and using specified permissions respectively. * The :command:`file(GENERATE)` command gained a ``NEWLINE_STYLE`` option to specify how newlines are handled for the generated file. * The :command:`file(GENERATE)` command gained ``NO_SOURCE_PERMISSIONS``, ``USE_SOURCE_PERMISSIONS``, and ``FILE_PERMISSIONS`` options for controlling the permissions of the generated file. * The :command:`install(FILES)` command ``RENAME`` option learned to support :manual:`generator expressions <cmake-generator-expressions(7)>`. * The :command:`target_include_directories` command gained a new option ``AFTER``. * The :command:`target_sources` command now supports targets created by the :command:`add_custom_target` command. * The :command:`try_run` command gained a ``WORKING_DIRECTORY`` option to set the working directory in which to run the compiled check executable. Variables --------- * The :variable:`CMAKE_<LANG>_BYTE_ORDER` variable was added to provide the target architecture byte order detected from the toolchain. * The :variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY`, :variable:`CMAKE_LIBRARY_OUTPUT_DIRECTORY`, and :variable:`CMAKE_ARCHIVE_OUTPUT_DIRECTORY` variables now support target-dependent generator expressions. Properties ---------- * The :prop_tgt:`<LANG>_CLANG_TIDY` target property and the associated :variable:`CMAKE_<LANG>_CLANG_TIDY` variable learned to support the ``OBJC`` and ``OBJCXX`` languages. * The :prop_tgt:`EXPORT_COMPILE_COMMANDS` target property was added for the associated :variable:`CMAKE_EXPORT_COMPILE_COMMANDS` variable to allow for configuration of exporting compile commands per target. * The :prop_sf:`GENERATED` source-file property is now visible from any directory scope, regardless of the scope in which it is set. See policy :policy:`CMP0118`. * The :prop_tgt:`UNITY_BUILD_UNIQUE_ID` target property was added to support generation of an identifier that is unique per source file in unity builds. It can help to resolve duplicate symbol problems with anonymous namespaces. * The :prop_tgt:`WIN32_EXECUTABLE` target property now works with Clang on Windows. * The :prop_tgt:`XCODE_EMBED_FRAMEWORKS <XCODE_EMBED_<type>>` target property was added to tell the :generator:`Xcode` generator to embed frameworks. Aspects of the embedding can be customized with the :prop_tgt:`XCODE_EMBED_FRAMEWORKS_PATH <XCODE_EMBED_<type>>`, :prop_tgt:`XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY`, and :prop_tgt:`XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY` target properties. Modules ------- * The :module:`ExternalData` module :command:`ExternalData_Add_Target` function gained a ``SHOW_PROGRESS <bool>`` option for controlling whether or not to show progress output during the build. * The :module:`ExternalProject` module :command:`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. * The :module:`FindBoost` module gained a ``Boost_NO_WARN_NEW_VERSIONS`` option to silence the warning about unknown dependencies for new Boost versions. * The :module:`FindCUDAToolkit` module gained support for finding CUDA toolkits when ``nvcc`` is a symbolic link, for example due to a ``ccache`` or ``colornvcc`` wrapper script. * The :module:`FindGDAL` module has been improved to document and mark as advanced its cache variables. There is a new ``FindGDAL_SKIP_GDAL_CONFIG`` variable which may be used to skip over the ``gdal-config``-based search. Users may also set ``GDAL_ADDITIONAL_LIBRARY_VERSIONS`` to add additional versions to the library name search strategy. * The :module:`FindIntl` module now provides an imported target. * The :module:`FindOpenSSL` module learned to support a version range. * The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython` modules gained options controlling how unversioned interpreter names are searched. * The :module:`UseJava` module ``add_jar()`` command's ``GENERATE_NATIVE_HEADERS`` feature gained options to export the generated target. * The :module:`UseSWIG` module gained the capability, for :ref:`Makefile <Makefile Generators>` and :ref:`Ninja <Ninja Generators>` generators, to use the ``swig`` tool to generate implicit dependencies. Autogen ------- * The :ref:`Qt AUTOMOC` feature now works with per-config sources. CTest ----- * :manual:`ctest(1)` gained a ``--test-dir`` option to specify the directory in which to look for tests. CPack ----- * :module:`CPack` gained the :variable:`CPACK_THREADS` variable to control the number of threads used for parallelized operations, such as compressing the installer package. * The :cpack_gen:`CPack DEB Generator` learned a new :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS` variable to specify additional search directories for resolving private library dependencies when using ``dpkg-shlibdeps``. * The :cpack_gen:`CPack IFW Generator` gained a new :variable:`CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST` variable to control visibility of the widget listing installer pages on the left side of the wizard. This feature available only since QtIFW 4.0. * The :cpack_gen:`CPack NSIS Generator` gained new :variable:`CPACK_NSIS_BRANDING_TEXT` and :variable:`CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION` variables to change the text at the bottom of the install window and change its trim position * The :cpack_gen:`CPack NSIS Generator` now correctly handles Unicode characters. If you want to have a :variable:`CPACK_RESOURCE_FILE_LICENSE` with UTF-8 characters, it needs to be encoded in UTF-8 BOM. * The :cpack_gen:`CPack NuGet Generator` gained options: - :variable:`CPACK_NUGET_PACKAGE_ICON` and :variable:`CPACK_NUGET_<compName>_PACKAGE_ICON` allow package icons to be specified by local files. - :variable:`CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION` and :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION` add support for specifying licenses recognized by the `Software Package Data Exchange`_ (SPDX). - :variable:`CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME` and :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME` allow licenses to be specified by local files. - :variable:`CPACK_NUGET_PACKAGE_LANGUAGE` and :variable:`CPACK_NUGET_<compName>_PACKAGE_LANGUAGE` allow the locale for a package to be specified, for example ``en_CA``. .. _Software Package Data Exchange: https://spdx.org/ Deprecated and Removed Features =============================== * The :manual:`cmake-server(7)` mode has been removed. Clients should use the :manual:`cmake-file-api(7)` instead. * The :module:`WriteCompilerDetectionHeader` module has been deprecated via policy :policy:`CMP0120`. Projects should be ported away from it. * The :module:`TestBigEndian` module has been deprecated in favor of the :variable:`CMAKE_<LANG>_BYTE_ORDER` variable. * The :module:`AddFileDependencies` module is deprecated. Port projects to use :command:`set_property` directly. * The :cpack_gen:`CPack NuGet Generator` deprecated some variables to reflect changes in the NuGet specification: - :variable:`CPACK_NUGET_PACKAGE_ICONURL` and :variable:`CPACK_NUGET_<compName>_PACKAGE_ICONURL` have been deprecated; replace with a reference to a local icon file. - :variable:`CPACK_NUGET_PACKAGE_LICENSEURL` and :variable:`CPACK_NUGET_<compName>_PACKAGE_LICENSEURL` have been deprecated; replace with a reference to the project's license file or SPDX license expression. Other Changes ============= * When running :manual:`cmake(1)` to :ref:`Generate a Project Buildsystem`, unknown command-line arguments starting with a hyphen (``-``) are now rejected with an error. Previously they were silently ignored. * Source file extensions must now be explicit. See policy :policy:`CMP0115` for details. * The :prop_sf:`LANGUAGE` source file property now forces compilation as the specified language. See policy :policy:`CMP0119`. * On AIX, installation of XCOFF executables and shared libraries no longer requires relinking to change the runtime search path from the build-tree RPATH to the install-tree RPATH. CMake now edits the XCOFF binaries directly during installation, as has long been done on ELF platforms. * With MSVC-like compilers the value of :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` no longer contains the ``/GR`` flag for runtime type information by default. See policy :policy:`CMP0117`. * Ninja generators now transform the ``DEPFILE`` generated by an :command:`add_custom_command`. See policy :policy:`CMP0116` for details. * The precompiled Linux binaries provided on `cmake.org <https://cmake.org/download/>`_ have changed their naming pattern to ``cmake-$ver-linux-$arch``, where ``$arch`` is either ``x86_64`` or ``aarch64``. * The precompiled Windows binaries provided on `cmake.org <https://cmake.org/download/>`_ have changed their naming pattern to ``cmake-$ver-windows-$arch``, where ``$arch`` is either ``x86_64`` or ``i386``. Updates ======= Changes made since CMake 3.20.0 include the following. 3.20.1 ------ * The :module:`FindIntl` module in CMake 3.20.0 added checks ``Intl_HAVE_GETTEXT_BUILTIN``, ``Intl_HAVE_DCGETTEXT_BUILTIN``, and ``Intl_IS_BUILTIN``, but they were not implemented correctly. These have been removed and replaced with a single ``Intl_IS_BUILT_IN`` check, whose name is consistent with the :module:`FindIconv` module. * The ``-rpath`` linker flag is now specified as supported on all Apple platforms, not just macOS. The ``install_name_dir`` used for iOS, tvOS and watchOS should now default to ``@rpath`` instead of using a full absolute path and failing at runtime when the library or framework is embedded in an application bundle (see :prop_tgt:`XCODE_EMBED_<type>`). 3.20.2 ------ * The Intel Classic 2021 compiler version numbers are now detected correctly as having major version 2021. CMake 3.20.1 and below were not aware of a change to the identification macro version scheme made by Intel starting in version 2021, and detected the version as 20.2. * The Intel oneAPI Fortran compiler is now identified as ``IntelLLVM``. The oneAPI 2021.1 Fortran compiler is missing an identification macro, so CMake 3.20.1 and below identified it as ``Intel``. CMake now has a special case to recognize oneAPI 2021.1 Fortran as ``IntelLLVM``. The oneAPI 2021.2 Fortran compiler defines the proper identification macro and so is identified as ``IntelLLVM`` by all CMake 3.20 versions. 3.20.3, 3.20.4, 3.20.5, 3.20.6 ------------------------------ These versions made no changes to documented features or interfaces. Some implementation updates were made to support ecosystem changes and/or fix regressions.
cmake-gui-3.20.6-3.oc00 (22/03/2023)
Repository: Netlabs stable
cmake-debuginfo-3.20.6-3.oc00 (22/03/2023)
Repository: Netlabs stable
cmake-filesystem-3.20.6-3.oc00 (22/03/2023)
Repository: Netlabs stable

Manual installation

Program is distributed as ZIP package: download to temporary directory and unpack to destination folder (Prefer in PATH). See below for download link(s).

Set statements in config.sys considering your personal develop environment (read included documentation).

The Netlabs GCC compiler is referred only for the shared license, based upon opensource models: the tool, very versatile, can be indeed adapted to many development toolkit

Record updated last time on: 29/11/2023 - 18:55

Translate to...

Add new comment