./devel/cmake, Cross platform make

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.20.4, Package name: cmake-3.20.4, Maintainer: pkgsrc-users

CMake is an extensible, open-source system that manages the build
process in an operating system and compiler independent manner. Unlike
many cross-platform systems, CMake is designed to be used in
conjunction with the native build environment. Simple configuration
files placed in each source directory (called CMakeLists.txt files)
are used to generate standard build files (e.g., makefiles on Unix and
projects/workspaces in Windows MSVC) which are used in the usual
way. CMake can compile source code, create libraries, generate
wrappers, and build executables in arbitrary combinations. CMake
supports in-place and out-of-place builds, and can therefore support
multiple builds from a single source tree. CMake also supports static
and dynamic library builds. Another nice feature of CMake is that it
generates a cache file that is designed to be used with a graphical
editor. For example, when CMake runs, it locates include files,
libraries, and executable, and may encounter optional build
directives. This information is gathered into the cache, which may be
changed by the user prior to the generation of the native build files.


Required to run:
[www/curl] [archivers/libarchive] [devel/libuv]

Required to build:
[misc/rhash] [pkgtools/cwrappers]

Master sites:

SHA1: c6ebb973e788e60c9747279875979e88b63418b0
RMD160: 9216d7bd16fc95b1894d8c4864c2b4904b5d1c2e
Filesize: 9219.104 KB

Version history: (Expand)


CVS history: (Expand)


   2021-06-15 12:27:33 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.20.4

CMake 3.20.4
* ci: use consistent sccache builds
* 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
* FindBoost: Add check for json component header in Boost 1.75+
* Help: cmake_path: fix erroneous example for IS_PREFIX
* MSVC: C++20 final flag, C++23 support
* Clang/MSVC: C++20 final flag, C++23 support
* presets: Fix buildPreset "jobs"
* presets: Fix buildPreset "targets" not allowing a single string
   2021-05-29 08:14:40 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.20.3

CMake 3.20.3
* 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
* 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
* Ninja Multi-Config: Split long command lines by config
* CMP0082: Check EXCLUDE_FROM_ALL property at generate time
* GNU: C++17 default version
* GNU: Final C++20 flags
* GNU: C++23 support
* 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
   2021-04-30 08:45:14 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
cmake: updated to 3.20.2

CMake 3.20.2
* ci: pay attention to the machine load when running tests
* ci: limit builds by machine load
* 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
* Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform
* Help: Document special cases for if(IS_ABSOLUTE)
* Add missing 'not' in error messages
* KWIML 2021-04-21 (49d91529)
* autogen: fix race in depfile parsing
* Ninja Multi-Config: Correctly generate POST_BUILD custom targets
* BinUtils: Restore toolchain prefix detection from compiler name 'c++'
* OpenBSD: Fix system feature definitions
   2021-04-21 15:25:34 by Adam Ciarcinski | Files touched by this commit (864)
Log message:
revbump for boost-libs
   2021-04-10 10:35:12 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.20.1

CMake 3.20.1
* Help: Add Q_NAMESPACE_EXPORT to CMAKE_AUTOMOC_MACRO_NAMES default values
* FindHDF5: search for the new Fortran HL library name
* 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_<dir> 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
* 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
* Android: Fix search for binutils
* Cray: Detect Fortran compiler version patch level if available
* 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
* Makefiles dependencies: normalize windows paths
* CUDA Device link: Ensure all link options are correctly formatted
* Genex: $<HOST_LINK:> and $<DEVICE_LINK:> 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
* cmCommandLineArgument: correctly compute next parse index
* CMakeDetermineCompilerABI: Revert "Parse library arch from versioned \ 
paths"
* CMakeDetermineCompilerABI: Extract lib arch from implicit object file paths
* FindIntl: Improve documentation formatting
* Help: Clarify IMPORTED_LOCATION documentation
   2021-03-31 09:44:29 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
cmake: add patch
   2021-03-31 09:43:39 by Adam Ciarcinski | Files touched by this commit (5) | Package updated
Log message:
cmake cmake-gui: updated to 3.20.0

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 "<COMMAND_CONFIG:...>" and
  "<OUTPUT_CONFIG:...>" that control cross-config handling when using
  the "Ninja Multi-Config" generator.

* The "add_custom_command()" command gained "DEPFILE" support on
  Makefile Generators.

* The "add_library()" command previously prohibited imported object
  libraries when using potentially multi-architecture configurations.
  This mostly affected the "Xcode" generator, e.g. when targeting iOS
  or one of the other device platforms.  This restriction has now been
  removed.

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

* The "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 "file(GENERATE)" command gained a "NEWLINE_STYLE" option to
  specify how newlines are handled for the generated file.

* The "file(GENERATE)" command gained "NO_SOURCE_PERMISSIONS",
  "USE_SOURCE_PERMISSIONS", and "FILE_PERMISSIONS" options for
  controlling the permissions of the generated file.

* The "install(FILES)" command "RENAME" option learned to support
  "generator expressions".

* The "target_include_directories()" command gained a new option
  "AFTER".

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

* The "try_run()" command gained a "WORKING_DIRECTORY" \ 
option to set
  the working directory in which to run the compiled check executable.

Variables
---------

* The "CMAKE_<LANG>_BYTE_ORDER" variable was added to provide the
  target architecture byte order detected from the toolchain.

* The "CMAKE_RUNTIME_OUTPUT_DIRECTORY",
  "CMAKE_LIBRARY_OUTPUT_DIRECTORY", and
  "CMAKE_ARCHIVE_OUTPUT_DIRECTORY" variables now support target-
  dependent generator expressions.

Properties
----------

* The "<LANG>_CLANG_TIDY" target property and the associated
  "CMAKE_<LANG>_CLANG_TIDY" variable learned to support the \ 
"OBJC" and
  "OBJCXX" languages.

* The "EXPORT_COMPILE_COMMANDS" target property was added for the
  associated "CMAKE_EXPORT_COMPILE_COMMANDS" variable to allow for
  configuration of exporting compile commands per target.

* The "GENERATED" source-file property is now visible from any
  directory scope, regardless of the scope in which it is set. See
  policy "CMP0118".

* The "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 "WIN32_EXECUTABLE" target property now works with Clang on
  Windows.

* The "XCODE_EMBED_FRAMEWORKS" target property was added to tell the
  "Xcode" generator to embed frameworks. Aspects of the embedding can
  be customized with the "XCODE_EMBED_FRAMEWORKS_PATH",
  "XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY", and
  "XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY" target properties.

Modules
-------

* The "ExternalData" module "ExternalData_Add_Target()" function
  gained a "SHOW_PROGRESS <bool>" option for controlling whether or
  not to show progress output during the build.

* 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.

* The "FindBoost" module gained a \ 
"Boost_NO_WARN_NEW_VERSIONS" option
  to silence the warning about unknown dependencies for new Boost
  versions.

* The "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 "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 "FindIntl" module now provides an imported target.

* The "FindOpenSSL" module learned to support a version range.

* The "FindPython3", "FindPython2" and \ 
"FindPython" modules gained
  options controlling how unversioned interpreter names are searched.

* The "UseJava" module "add_jar()" command’s \ 
"GENERATE_NATIVE_HEADERS"
  feature gained options to export the generated target.

* The "UseSWIG" module gained the capability, for Makefile and Ninja
  generators, to use the "swig" tool to generate implicit
  dependencies.

Autogen
-------

* The AUTOMOC feature now works with per-config sources.

CTest
-----

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

CPack
-----

* "CPack" gained the "CPACK_THREADS" variable to control the \ 
number of
  threads used for parallelized operations, such as compressing the
  installer package.

* The "CPack DEB Generator" learned a new
  "CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS" variable to specify
  additional search directories for resolving private library
  dependencies when using "dpkg-shlibdeps".

* The "CPack IFW Generator" gained a new
  "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 NSIS Generator" gained new \ 
"CPACK_NSIS_BRANDING_TEXT" and
  "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 NSIS Generator" now correctly handles Unicode characters.
  If you want to have a "CPACK_RESOURCE_FILE_LICENSE" with UTF-8
  characters, it needs to be encoded in UTF-8 BOM.

* The "CPack NuGet Generator" gained options:

  * "CPACK_NUGET_PACKAGE_ICON" and
    "CPACK_NUGET_<compName>_PACKAGE_ICON" allow package icons to be
    specified by local files.

  * "CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION" and
    "CPACK_NUGET_<compName>_PACKAGE_LICENSE_EXPRESSION" add support
    for specifying licenses recognized by the Software Package Data
    Exchange (SPDX).

  * "CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME" and
    "CPACK_NUGET_<compName>_PACKAGE_LICENSE_FILE_NAME" allow licenses
    to be specified by local files.

  * "CPACK_NUGET_PACKAGE_LANGUAGE" and
    "CPACK_NUGET_<compName>_PACKAGE_LANGUAGE" allow the locale for a
    package to be specified, for example "en_CA".

Deprecated and Removed Features
===============================

* 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 "TestBigEndian" module has been deprecated in favor of the
  "CMAKE_<LANG>_BYTE_ORDER" variable.

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

* The "CPack NuGet Generator" deprecated some variables to reflect
  changes in the NuGet specification:

  * "CPACK_NUGET_PACKAGE_ICONURL" and
    "CPACK_NUGET_<compName>_PACKAGE_ICONURL" have been deprecated;
    replace with a reference to a local icon file.

  * "CPACK_NUGET_PACKAGE_LICENSEURL" and
    "CPACK_NUGET_<compName>_PACKAGE_LICENSEURL" have been deprecated;
    replace with a reference to the project’s license file or SPDX
    license expression.

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

* Source file extensions must now be explicit. See policy "CMP0115"
  for details.

* The "LANGUAGE" source file property now forces compilation as the
  specified language.  See 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 "CMAKE_CXX_FLAGS" no longer
  contains the "/GR" flag for runtime type information by default. See
  policy "CMP0117".

* Ninja generators now transform the "DEPFILE" generated by an
  "add_custom_command()". See policy "CMP0116" for details.

* The precompiled Linux binaries provided on cmake.org 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 have changed
  their naming pattern to "cmake-$ver-windows-$arch", where \ 
"$arch" is
  either "x86_64" or "i386".
   2021-03-16 20:50:30 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.19.7

CMake 3.19.7
* 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
* Cray: Enable Cray compiler wrapper detection on all platforms