./devel/cmake, Cross platform make

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


Branch: CURRENT, Version: 3.21.3, Package name: cmake-3.21.3, 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: 7efab148bce84d54533414d3387b1bd2f98a82bd
RMD160: 45bde8ff6281e62efbdc8189ebf2bfad077e3126
Filesize: 9404.729 KB

Version history: (Expand)


CVS history: (Expand)


   2021-09-27 21:02:38 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
cmake: updated to 3.21.3

CMake 3.21.3
* FindBoost: Add support for Boost 1.77
* MSVC: Fix MSVC_TOOLSET_VERSION for VS 2022 v143 toolset
* IRSL: Add discovery of VS 2022 v143 toolset redistributables
* gitlab-ci: Update Windows builds to MSVC 19.29-16.11 toolset
* VS: Fix managed C++ project generation for VS 2022
* VS: Update Visual Studio 17 2022 generator for Preview 4
* HIP: Detect ROCm path earlier
* HIP: Remove ROMClang compiler id and use Clang directly
* HIP: Simplify detection of HIP runtime CMake package
* Android: Restore searching PATH for executables
* IAR: Restore support for projects not enabling policy CMP0057
* FindPython: Ensure homebrew on Mac M1 is used
* Ninja: fix ARMClang paths for Windows
* HIP: Use 'rocm_agent_enumerator' to determine CMAKE_HIP_ARCHITECTURES
* KWSys: SystemTools: Ensure Windows Vista APIs are available before using them
   2021-07-29 13:37:40 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
cmake: updated to 3.21.1

CMake 3.21.1
  AUTOUIC: Fix cyclic dependency between generated UI headers and timestamp
  AUTOUIC: Fix generating of dependency rules for UI header files
  ci: use CMake 3.21.0
  Help/ctest_memcheck: mention `ctest_test` arguments
  TestDriver: suppress deprecated header lints for time.h
  TestDriver: use `CM_NULL` to avoid lints about `nullptr` usage
  Help/ctest_test: add a comment to also update `ctest_memcheck`
  enable_language: Fix test for working compiler with CMP0126 NEW behavior
  VS: Recognize CSharp VS 2019 compiler version v142
  VS: Improve v142 CL flag table LanguageStandard ordering
  VS: Add CSharp VS 2022 compiler version and flag table v143
  VS: Add v143 flag tables for VS 17.0 Preview 2
  VS: Fix `/MANIFESTUAC:` link flag mapping for v143
  VS: Map the link `/debug` flag for v143
  VS: Remove the /MERGE flag from v143 link flag table
  VS: Fix `/analyze:log` flag mapping for v143
  VS: Add `-Zc:inline[-]` flag table entry for v143
  VS: Populate `/Y-` flag table entry for v143
  VS: Populate `-Qspectre-` flag table entry for v143
  VS: Populate `/JMC-` flag table entry for v143
  VS: Remove empty ConformanceMode entry from flag table for v143
  VS: Remove empty LanguageStandard entries from flag table for v143
  VS: Remove empty ExternalWarningLevel entry from flag table for v143
  VS: Remove broken EnableASAN entry from flag table for v143
  VS: Fix `/sourceDependencies` flag table entries for v143
  VS: Update Visual Studio 17 2022 generator for Preview 2
  CMakeDetermineCompilerId: Fix CMAKE_EXECUTABLE_FORMAT in CMP0126 NEW behavior
  try_compile: Propagate CMP0126 to the generated test project
  CMakeDependentOption: Revert "Allow parentheses in the depends string"
  cmMessenger: Revert to non-color messages on Windows
  cmGeneratorExpressionNode: Factor out local variable for global generator
  Swift: Update test case to try CMP0126 NEW behavior
  Ninja Multi-Config: Restore TARGET_OBJECTS support in cross-configs
  VS: Remove cl /FS entry from flag table for v142 and v143
  VS: Remove C++ module CompileAs flag table entries for v142 and v143
  Help: Clarify wording of CMP0124
  Help: Explain policy CMP0125 in more detail
  Help: Make policy CMP0126 wording more accurate
  Help: Fix trivial typo
  Help: Clarify which project() call PROJECT_IS_TOP_LEVEL is for
  Help: Re-order file() sub-commands in Filesystem section
  Help: Expand details for file(COPY_FILE)
  Help: Clarify and correct wording around DEPFILE option
  Help: Improve wording and cross-referencing for ctest JUnit output
  Help: Add cross-references between test output size ctest variables
  IAR: Moved search logic to BinUtils.
  AutoGen: Fix needless compilation of mocs_compilation.cpp
  KWSys 2021-07-26 (d5fd6ca2)
  CMakePresets.json: Fix expansion issue with empty binaryDir
  Tests: Clean up Ninja Multi-Config test from cb777dd
  Compiler/IAR: search for both IAR's binaries * and *.exe
  Compiler/IAR: Avoid clobbering CMAKE_EXECUTABLE_SUFFIX
  Help: Document CMAKE_EXECUTABLE_SUFFIX_<LANG> explicitly
  libuv: Fix building with mingw toolchains for ARM/AArch64
  GNU: Correct C23 flags
  FindXCTest: Fix output directory for test bundle with Xcode 12.5
  Tests/CompileOptions: allow CMAKE_BUILD_TYPE=None
  Add option to explicitly avoid using execinfo for backtraces

CMake 3.21 Release Notes
************************

Changes made since CMake 3.20 include the following.

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

Presets
-------

* "cmake-presets(7)" gained support for specifying the install prefix
  in a configure preset.

* "cmake-presets(7)" gained support for conditional enabling of
  presets.

* "cmake-presets(7)" gained support for a \ 
"${hostSystemName}" macro.

* "cmake-presets(7)" gained support for omitting the \ 
"generator" and
  "binaryDir" fields.

Generators
----------

* The Makefile Generators and the "Ninja" generator learned to add
  linker launcher tools along with the linker for "C", \ 
"CXX", "OBJC",
  and "OBJCXX" languages. See the \ 
"CMAKE_<LANG>_LINKER_LAUNCHER"
  variable and "<LANG>_LINKER_LAUNCHER" target property for details.

* The "Visual Studio 17 2022" generator was added.  This is
  experimental and based on "Visual Studio 2022 Preview 1.1" because
  this version of VS has not been released.

Languages
---------

* CMake learned to support "HIP" as a first-class language that can be
  enabled via the "project()" and "enable_language()" commands.

* "C_STANDARD", "OBJC_STANDARD", and the "Compile \ 
Features"
  functionality gained support for C17 and C23.

* Source file extensions ".ixx" and ".cppm" are now treated \ 
as C++.

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

* "cmake(1)" gained the "--install-prefix <dir>" \ 
command-line option
  to specify the location of the install prefix.

* "cmake(1)" gained the "--toolchain <path/to/file>" \ 
command-line
  option to specify a toolchain file.

* "cmake(1)" "-E capabilities" output, for some generators, \ 
may now
  contain a "supportedPlatforms" field listing platforms known to be
  supported in "CMAKE_GENERATOR_PLATFORM".

* Messages printed to a terminal now may be colored by message type.

Compilers
---------

* The Fujitsu compiler is now supported using compiler id "Fujitsu" in
  traditional ("Trad") mode, and compiler id "FujitsuClang" \ 
in "Clang"
  mode.

Platforms
---------

* CMake now supports the MSYS runtime environment, much like CYGWIN.

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

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

* The "cmake-file-api(7)" "codemodel" version 2 gained a new
  "directory" object containing directory-level information. This
  includes a list of installers generated by the "install()" command.

Commands
--------

* The "add_custom_command()" command "DEPFILE" option may now use
  "generator expressions", is now supported by Visual Studio Generators
  for VS 2012 and above, and is now supported by the "Xcode" generator.

* The "add_custom_command(TARGET)" command (for Build Events) gained
  support for resolving target-dependent generator expressions.

* The "build_command()" command gained a "PARALLEL_LEVEL" option.

* The "file(COPY_FILE)" command was added to copy a single file.

* The "file(GET_RUNTIME_DEPENDENCIES)" command gained new
  "POST_INCLUDE_FILES" and "POST_EXCLUDE_FILES" arguments.

* The "file(REAL_PATH)" command gained the option \ 
"EXPAND_TILDE" to
  replace any leading tilde with the path to the user's home
  directory.

* The "file(RENAME)" command learned to optionally capture failure in
  a result variable.  It also gained a "NO_REPLACE" option to fail if
  the destination exists.

* The "install()" command gained a new \ 
"IMPORTED_RUNTIME_ARTIFACTS"
  mode, which can be used to install the runtime artifacts of imported
  targets.

* The "install()" command gained a new \ 
"RUNTIME_DEPENDENCY_SET" mode,
  which can be used to install runtime dependencies using
  "file(GET_RUNTIME_DEPENDENCIES)".

* The "install(TARGETS)" command gained new \ 
"RUNTIME_DEPENDENCIES" and
  "RUNTIME_DEPENDENCY_SET" arguments, which can be used to install
  runtime dependencies using "file(GET_RUNTIME_DEPENDENCIES)".

* The "install(SCRIPT|CODE)" command supports a new option
  "ALL_COMPONENTS" which allows the corresponding code to run for
  every component of a per component installation.

* The "project()" command now sets variables \ 
"PROJECT_IS_TOP_LEVEL"
  and "<PROJECT-NAME>_IS_TOP_LEVEL" to indicate whether it was called
  in a top-level "CMakeLists.txt" file.

Variables
---------

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

Properties
----------

* The "IMPORTED_TARGETS" directory property was added to get a list of
  Imported Targets created in the current directory.

* The "XCODE_EMBED_APP_EXTENSIONS" target property was added to tell
  the "Xcode" generator to embed app extensions such as iMessage
  sticker packs. Aspects of the embedding can be customized with the
  "XCODE_EMBED_APP_EXTENSIONS_PATH",
  "XCODE_EMBED_APP_EXTENSIONS_CODE_SIGN_ON_COPY" and
  "XCODE_EMBED_APP_EXTENSIONS_REMOVE_HEADERS_ON_COPY" properties.

Modules
-------

* The "FindBLAS" and "FindLAPACK" modules learned to support the
  serial "Fujitsu_SSL2" and parallel "Fujitsu_SSL2BLAMP" \ 
libraries.

* The "FindDevIL" module now provides imported targets.

* The "FindIconv" module now has version support.

* The "FindIntl" module now has version support.

* The "FindMPI" module learned to support "Fujitsu" and \ 
"FujitsuClang"
  in both host and cross compiling modes.

* The "FindMsys" module was added to find MSYS installations. Like
  "FindCygwin", it is used automatically by some other find modules to
  locate UNIX-style tools on Windows.

* The "FindOpenMP" module learned to support "Fujitsu" and
  "FujitsuClang".

* The "FindVulkan" module gained imported targets \ 
"Vulkan::Headers"
  and "Vulkan::glslangValidator".

* The "UseJava" module command "add_jar" gained a \ 
"RESOURCES" option
  to allow explicit naming of resources with non-optional namespace.

* The "UseSWIG" module use now standard library naming conventions for
  the "CSharp" language. See policy "CMP0122".

* The "UseSWIG" module now supports using the "swig" tool to \ 
generate
  implicit dependencies with the "Xcode" generator.

Generator Expressions
---------------------

* A new "TARGET_RUNTIME_DLLS" generator expression was added.

CTest
-----

* "ctest(1)" gained documentation for its ability to capture
  Additional Test Measurements.

* "ctest(1)" learned to recognize files attached to a test at run
  time. Previously it was only possible to attach files to tests at
  configure time by using the "ATTACHED_FILES" or
  "ATTACHED_FILES_ON_FAIL" test properties. See Additional Test
  Measurements for more information.

* "ctest(1)" gained a "--output-junit" option to write test \ 
results to
  a JUnit XML file.

* The "ctest_build()" command gained a "PARALLEL_LEVEL" option.

CPack
-----

* The "CPack DragNDrop Generator" gained option \ 
"CPACK_DMG_FILESYSTEM"
  to control the ".dmg" filesystem.

* The "CPack IFW Generator" now supports hyphens in names given to
  "cpack_ifw_configure_component()" or
  "cpack_ifw_configure_component_group()" as "DEPENDS" or
  "DEPENDENCIES" arguments.  This requires QtIFW 3.1 or later.

* The "CPack NSIS Generator" gained a new "CPACK_NSIS_EXECUTABLE"
  variable to specify the "makensis" executable to use instead of the
  default one.

* The "CPACK_CUSTOM_INSTALL_VARIABLES" variable was added to set
  variables in "cmake_install.cmake" script invocations made by CPack.

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

* Undocumented "CMAKE_SYSTEM_NAME" version-stripping behavior has been
  removed entirely. If it is set by a "-D" flag or by a "toolchain
  file", it is left unaltered, even if it still contains a version
  number. Similar "CMAKE_HOST_SYSTEM_NAME" version-stripping behavior,
  also undocumented, has been moved earlier, before "project()" or
  "enable_language()" is called.

* "ARMClang" cpu/arch compile and link flags are no longer added
  automatically based on the "CMAKE_SYSTEM_PROCESSOR" variable or the
  undocumented "CMAKE_SYSTEM_ARCH" variable. They must be specified
  explicitly.  See policy "CMP0123".

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

* The "find_file()", "find_path()", \ 
"find_program()", and
  "find_library()" commands handle cache variables in the same way
  regardless how they are defined. See policy "CMP0125" for details.

* The "find_file()", "find_path()", \ 
"find_program()", and
  "find_library()" commands gained the option "NO_CACHE" to \ 
store find
  result in normal variable.

* The "foreach()" command now isolates loop variables in the loop
  scope. See policy "CMP0124" for details.

* The "list()" command's "GET", "INSERT", \ 
"SUBLIST", and "REMOVE_AT"
  subcommands now error with invalid (i.e., non-integer) values are
  given as any of their index arguments based on the setting of policy
  "CMP0121".

* The "set(CACHE)" command no longer removes a normal variable of the
  same name, if any. See policy "CMP0126".

* "target_link_libraries()" calls referencing object libraries via the
  "TARGET_OBJECTS" generator expression now place the object files
  before all libraries on the link line, regardless of their specified
  order.  See documentation on Linking Object Libraries via
  $<TARGET_OBJECTS> for details.

* The Ninja Generators now pass source files and include directories
  to the compiler using absolute paths.  This makes diagnostic
  messages and debug symbols more consistent, and matches the Makefile
  Generators.

* The "NMake Makefiles" generator now encodes the generated makefiles
  as UTF-8 with a BOM when using "nmake" from VS 9 or above.

* The Visual Studio Generators for VS 2010 and above now place per-
  source preprocessor definitions after target-wide preprocssor
  definitions.  This makes VS consistent with the Ninja Generators and
  the Makefile Generators.

* The precompiled binaries provided on cmake.org now support "liblzma"
  multi-threading.  See the "CPACK_THREADS" and
  "CPACK_ARCHIVE_THREADS" variables.
   2021-07-15 23:10:53 by Jonathan Perkin | Files touched by this commit (2)
Log message:
cmake: Don't add additional -arch flags on Darwin.

Fixes building on arm64 in an x86_64 chroot where it would append
"-arch x86_64" and then fail to link.  schmonz verified that this
change doesn't seem to affect non-chroot native builds.
   2021-06-24 11:30:55 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.20.5

CMake 3.20.5
* gitlab-ci: update macOS jobs to use Xcode 12.5
* cmGlobalVisualStudio10Generator: Move static functions to anonymous namespace
* cmGlobalVisualStudio10Generator: Adopt GetVSInstanceVersion method
* VS: Do not apply '/external:W*' flag table mapping on VS < 16.10
* Tests: Fix xcode version detection for Xcode 13 on ARM
* Help: Add 3.20 release note section for 3.20.{3,4,5}
* ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions
* CMake: Allow override of unexpected non-flow-control commands
   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