./devel/cmake, Cross platform make

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


Branch: CURRENT, Version: 3.19.1, Package name: cmake-3.19.1, 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: 0aec103faa6042683a42412e0f9c359c69208e2d
RMD160: 24c204773d53fa1e21403070f8b86c885d9cbda4
Filesize: 9039.996 KB

Version history: (Expand)


CVS history: (Expand)


   2020-11-25 11:33:28 by Adam Ciarcinski | Files touched by this commit (10) | Package updated
Log message:
cmake cmake-gui: updated to 3.19.1

CMake 3.19.1

ci: update to use CMake 3.19.0
gitlab-ci: update macOS jobs to use Xcode 12.0
Revert “specify language flag when source LANGUAGE property is set”
FindGTest: Revert “Allow either “Debug” or “Release” configurations.”
Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule
Xcode: Fix custom command work-dir placeholders in “new build system”
Tests: Match RunCMake.CMP0111 stderr more strictly
cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries
cmVisualStudio10TargetGenerator: Avoid GetFullPath on INTERFACE library
cmGlobalGenerator: FindMakeProgram() at a generator-specific time
cmFileTime: Fix overflow on time computation
Help: Fix ‘… versionadded’ directives for CTEST_CUSTOM_* variables
CUDA: Clang CUDA 11.1 support
CUDA: Error if can’t determine toolkit library root

CMake 3.19 Release Notes
************************

Changes made since CMake 3.18 include the following.

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

Presets
-------

* "cmake(1)" and "cmake-gui(1)" now recognize \ 
"CMakePresets.json" and
  "CMakeUserPresets.json" files (see "cmake-presets(7)").

Generators
----------

* The "Xcode" generator now uses the Xcode “new build system” when
  generating for Xcode 12.0 or higher. See the
  "CMAKE_XCODE_BUILD_SYSTEM" variable. One may use "-T \ 
buildsystem=1"
  to switch to the legacy build system.

* The "Xcode" generator gained support for linking libraries and
  frameworks via the *Link Binaries With Libraries* build phase
  instead of always by embedding linker flags directly.  This behavior
  is controlled by a new "XCODE_LINK_BUILD_PHASE_MODE" target
  property, which is initialized by a new
  "CMAKE_XCODE_LINK_BUILD_PHASE_MODE" variable.

* The Visual Studio Generators for VS 2015 and above gained support
  for the Visual Studio Tools for Android.  One may now set
  "CMAKE_SYSTEM_NAME" to "Android" to generate \ 
".vcxproj" files for
  the Android tools.

Languages
---------

* CMake learned to support "ISPC" as a first-class language that can
  be enabled via the "project()" and "enable_language()" \ 
commands.
  "ISPC" is currently supported by the Makefile Generators and the
  "Ninja" generator on Linux, macOS, and Windows using the Intel ISPC
  compiler.

* "CUDA" language support for Clang now includes:

  * separable compilation ("CUDA_SEPARABLE_COMPILATION"), and

  * finding scattered toolkit installations when cross-compiling.

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

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

* The "cmake-file-api(7)" “codemodel” version 2 “target” \ 
object gained
  a new "languageStandard" field in the "compileGroups" objects.

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

* The "cmake(1)" command-line tool’s "--install" mode \ 
gained a "--
  default-directory-permissions" option.

* "cmake(1)" gained a "-E create_hardlink" command-line tool \ 
that can
  be used to create hardlinks between files.

GUI
---

* The "CMake GUI" now has an environment variable editor.

Commands
--------

* The "add_test()" command now (officially) supports whitespace and
  other special characters in the name for the test it creates. See
  policy "CMP0110".

* The "cmake_language()" command gained a "DEFER" mode to \ 
schedule
  command calls to occur at the end of processing a directory.

* The "configure_file()" command gained a "NO_SOURCE_PERMISSIONS"
  option to suppress copying the input file’s permissions to the
  output file.

* The "execute_process()" command gained a \ 
"COMMAND_ERROR_IS_FATAL"
  option to specify a fatal error.

* The "file(ARCHIVE_CREATE)" command gained a "COMPRESSION_LEVEL"
  option to specify the compression level.

* The "file(CHMOD)" and "file(CHMOD_RECURSE)" subcommands \ 
were added
  to set permissions of files and directories.

* The "file(DOWNLOAD)" command "" argument is now optional.  If
  it is not specified, the file is not saved.

* The "file(GENERATE)" command gained a new "TARGET" keyword to
  support resolving target-dependent generator expressions.

* The "file()" command gained a new "REAL_PATH" sub-command \ 
to compute
  a path with symlinks resolved.

* The "find_package()" command learned to handle a version range.

* The "separate_arguments()" command gained a new "PROGRAM" \ 
option. It
  allows the arguments to be treated as a program invocation and will
  resolve the executable to a full path if it can be found.

* The "DIRECTORY" option of the "set_property()", \ 
"get_property()",
  and "get_directory_property()" commands now accepts references to
  binary directory paths, such as the value of
  "CMAKE_CURRENT_BINARY_DIR".

* The "string()" command gained a set of new "JSON" sub \ 
commands that
  provide JSON parsing capabilities.

Variables
---------

* The "CMAKE_CLANG_VFS_OVERLAY" variable was added to tell Clang to
  use a VFS overlay to support the Windows SDK when cross-compiling
  from hosts with case-sensitive filesystems.

* The "CMAKE_MFC_FLAG" variable now supports generator expressions.

* The "CMAKE_OPTIMIZE_DEPENDENCIES" variable was added to initialize
  the new "OPTIMIZE_DEPENDENCIES" target property and avoid
  unnecessarily building dependencies for a static library.

* The "CMAKE_PCH_INSTANTIATE_TEMPLATES" variable was added to
  initialize the new "PCH_INSTANTIATE_TEMPLATES" target property.

* The "CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM" variable was
  added to tell the Visual Studio Generators what maximum version of
  the Windows SDK to choose.

Properties
----------

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

* The "OPTIMIZE_DEPENDENCIES" target property was added to avoid
  unnecessarily building dependencies for a static library.

* The "PCH_INSTANTIATE_TEMPLATES" target property was added to enable
  template instantiation in the precompiled header. This is enabled by
  default and may significantly improve compile times. Currently only
  supported for Clang (version 11 or later).

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

Modules
-------

* The "CheckCompilerFlag" module has been added to generalize
  "CheckCCompilerFlag" and "CheckCXXCompilerFlag" to more \ 
languages.
  It also supports the "CUDA" and "ISPC" languages.

* The "CheckLinkerFlag" module now supports the "CUDA" language.

* The "CheckSourceCompiles" module has been added to generalize
  "CheckCSourceCompiles" and "CheckCXXSourceCompiles" to more
  languages. It also supports the "CUDA" and "ISPC" languages.

* The "CheckSourceRuns" module has been added to generalize
  "CheckCSourceRuns" and "CheckCXXSourceRuns" to more \ 
languages. It
  also supports the "CUDA" language.

* The "CMakePackageConfigHelpers" module gained support for version
  ranges.

* The "FindCUDAToolkit" module gained support for finding CUDA
  toolkits that do not contain "nvcc", as well as for finding
  scattered toolkit installations when cross-compiling.

* The "FindPackageHandleStandardArgs" module learned to handle version
  ranges. It also gained the "find_package_check_version()" command to
  check the validity of a version against version-related arguments of
  "find_package()" command.

* The "FindPython3", "FindPython2" and \ 
"FindPython" modules gained the
  ability to handle a version range.

* The "FindPython3", "FindPython2" and \ 
"FindPython" modules provide,
  respectively, the variable "Python3_LINK_OPTIONS",
  "Python2_LINK_OPTIONS" and "Python_LINK_OPTIONS" for link \ 
options.

* The "FindSDL" module now provides:

  * An imported target "SDL::SDL".

  * Result variables "SDL_LIBRARIES" and "SDL_INCLUDE_DIRS".

  * Version variables "SDL_VERSION", "SDL_VERSION_MAJOR",
    "SDL_VERSION_MINOR", and "SDL_VERSION_PATCH".

* The "FindSWIG" module gained the ability to handle a version range.

* The "FindTIFF" module gained a "CXX" component to find the \ 
"tiffxx"
  library containing C++ bindings.

* The "FindVulkan" module now provides a "Vulkan::glslc" imported
  target and associated "Vulkan_GLSLC_EXECUTABLE" variable which
  contain the path to the GLSL SPIR-V compiler.

* The "UseSWIG" module gained support for new source file properties
  "OUTPUT_DIR" and "OUTFILE_DIR" to manage output \ 
directories on a
  per-source basis.

CTest
-----

* "ctest(1)" now supports the CUDA "compute-sanitizer" checker
  (previously known as "cuda-memcheck") as the
  "CTEST_MEMORYCHECK_COMMAND". The different tools ("memcheck",
  "racecheck", "synccheck" and "initcheck") \ 
supported by "compute-
  sanitizer" can be selected by adding appropriate flags to the
  "CTEST_MEMORYCHECK_COMMAND_OPTIONS" variable.  The default flags are
  "--tool memcheck --leak-check full".

CPack
-----

* CPack gained the "CPACK_PRE_BUILD_SCRIPTS",
  "CPACK_POST_BUILD_SCRIPTS", and "CPACK_PACKAGE_FILES" \ 
variables.

* The "CPack External Generator" gained the
  "CPACK_EXTERNAL_BUILT_PACKAGES" variable.

* The "CPack WIX Generator" gained a \ 
"CPACK_WIX_CUSTOM_XMLNS" option
  to specify custom XML namespaces.

Other
-----

* Interface Libraries may now have source files added via
  "add_library()" or "target_sources()".  Those with sources \ 
will be
  generated as part of the build system.

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

* Compatibility with versions of CMake older than 2.8.12 is now
  deprecated and will be removed from a future version.  Calls to
  "cmake_minimum_required()" or "cmake_policy()" that set \ 
the policy
  version to an older value now issue a deprecation diagnostic.

* An explicit deprecation diagnostic was added for policy "CMP0071"
  ("CMP0071" and below were already deprecated). The "cmake-
  policies(7)" manual explains that the OLD behaviors of all policies
  are deprecated and that projects should port to the NEW behaviors.

* macOS SDKs older than 10.5 are no longer supported.

* "cmake-gui(1)" now requires Qt5. Support for compiling with Qt4 has
  been removed.

* The "cmake(1)" command-line option "--warn-unused-vars" \ 
has been
  removed and is now silently ignored.  The option has not worked
  correctly since CMake 3.3.

Documentation
=============

The following guides have been added:

* "IDE Integration Guide"

* "Importing and Exporting Guide"

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

* Building for macOS will now use the latest SDK available on the
  system, unless the user has explicitly chosen a SDK using
  "CMAKE_OSX_SYSROOT".  The deployment target or system macOS version
  will not affect the choice of SDK.

* The "CMAKE_<LANG>_COMPILER" variable may now be used to store
  “mandatory” compiler flags like the "CC" and other environment
  variables.

* The "CMAKE_<LANG>_FLAGS_INIT" variable will now be considered \ 
during
  the compiler identification check if other sources like
  "CMAKE_<LANG>_FLAGS" or "CFLAGS" are not set.

* The "find_program()" command now requires permission to execute but
  not to read the file found.  See policy "CMP0109".

* An imported target missing its location property fails during
  generation if the location is used.  See policy "CMP0111".

* The following target-based generator expressions that query for
  directory or file name components no longer add a dependency on the
  evaluated target. See policy "CMP0112".

  * "TARGET_FILE_DIR"

  * "TARGET_LINKER_FILE_BASE_NAME"

  * "TARGET_LINKER_FILE_NAME"

  * "TARGET_LINKER_FILE_DIR"

  * "TARGET_SONAME_FILE_NAME"

  * "TARGET_SONAME_FILE_DIR"

  * "TARGET_PDB_FILE_NAME"

  * "TARGET_PDB_FILE_DIR"

  * "TARGET_BUNDLE_DIR"

  * "TARGET_BUNDLE_CONTENT_DIR"

* Makefile Generators no longer repeat custom commands from target
  dependencies.  See policy "CMP0113".

* The "ExternalProject" module handling of step target dependencies
  has been revised.  See policy "CMP0114".

* The "OSX_ARCHITECTURES" target property is now respected for the
  "ASM" language.

* If "CUDA" compiler detection fails with user-specified
  "CMAKE_CUDA_ARCHITECTURES" or "CMAKE_CUDA_HOST_COMPILER", \ 
an error
  is raised.
   2020-11-01 11:54:06 by Mark Davies | Files touched by this commit (3)
Log message:
cmake: patch another instance where should only find pkgsrc selected python
   2020-10-08 12:57:46 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.18.4

CMake 3.18.4
* FindJNI: Add aarch64 support
* VS: Populate `std:c{11,17}` flag table entries for v142
* OBJCXX: Fix regression for compiling cpp files as objcxx
* VS: Fix regression in C# source links
* FindPython: Fix erroneous regex in ABI check
* Clang: Look for llvm-lib when using MSVC-like front-end
* FindCUDA/select_compute_arch: Add CUDA 11.1 and SM86 support
   2020-09-28 09:37:43 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
cmake: updated to 3.18.3

CMake 3.18.3
* AutoGen: Fix moc and uic dependencies when building Qt itself
* foreach: Fix crash parsing integer out of range
* gitlab-ci: Prefer MR rules for any pipeline associated with a MR
* Help: Update 3.18.2 release notes to mention 3.16.9 and 3.17.5
* gitlab-ci: update macOS jobs to use Xcode 11.7
* Check*CompilerFlag: Do not set result as a normal variable too
* PCH: Mark CMake PCH source files as -x -header
* PCH: Fix 30s wait for VS2008 when used via -Tv90
* AutoMoc: Restore support for re-running after project file changes
* AutoMoc: Re-run moc if a dependency is missing
* file(GENERATE): Create output file structures for all directories first
* Tests: Pass additional Qt information to Ninja and NMC tests
* Ninja Multi-Config: Fix clean:all target
* Ninja Multi-Config: Fix cleaning of utility targets with commands
* Ninja Multi-Config: Fix dependencies of utility targets
* Ninja Multi-Config: Fix dependencies of custom commands
* FindJNI: Add arm64 support
* UseSWIG: Update option -interface usage
* FindPython: enhance ABI checks against include directory
* FindPython: CMP0012 must be set to NEW
* ARMClang: Fix link line generation after addition of armlink support
* FindMatlab: add R2020b => 9.9
* MSVC: Record support for c_static_assert
* CUDA: Support setting CUDA14/17 when using MSVC
* Implement cm::static_reference_cast by declval
   2020-08-21 09:26:51 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
cmake: updated to 3.18.2

Changes made since CMake 3.18.1:
* AutoGen: Fix over-specified direct dependencies of custom command
* AutoGen: Add test to check for correct AutoMoc dependencies
* FindMPI: Fix regression in pthread guard
* FPHSA: detect inclusion between find modules
* Tests: Isolate RunCMake.FindPkgConfig from caller environment
* FindRuby: Restore compatibility variable RUBY_INCLUDE_PATH
* Xcode: Explicitly turn off signing in try_compile projects
* PCH: Avoid Apple-specific architecture flags on other platforms
* gitlab-ci: add 'cmake' tag to all jobs
* Tests: Fix RunCMake.try_compile test for C standards with MSVC 19.27
* gitlab-ci: Update Windows builds to MSVC 19.27
* ExternalProject: Stop patch target from always appearing out-of-date
* ExternalProject: Stop configure target from always appearing out-of-date
* PCH: Avoid unnecessary 30s delay on MSBuild Generator with REUSE_FROM
* FindRuby: Add documentation for deprecated variables
* Autogen: Turn off moc path prefix generation by default
* Help: Add 3.18.2 release note about AUTOMOC_PATH_PREFIX default change
* Ninja: Restore shorter path to response files
* GoogleTest: Restore support for list arguments in TEST_EXECUTOR
* FindPython: ensure user's policies are respected
* FindPython: manage SOABI for all Python versions
* FindPython: enhance robustness of version extraction from library name
* MSVC: Record support for C11 and c_restrict
* CMakeFindBinUtils: Always consider plain binutils when not cross-compiling
* FindHDF5: fix compiler detection when HL is disabled
* llvm-rc: Fix quoting of path to cmake in CMAKE_RC_COMPILE_OBJECT
   2020-07-31 18:03:13 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
cmake: on Darwin, prefer pkgsrc over system provided libraries
   2020-07-31 14:35:27 by Maya Rashish | Files touched by this commit (1)
Log message:
cmake: fix build on NetBSD releases such as 9.0.

NetBSD stdio.h has a bug with visibility of functions, so we get errors:
 error: '::vscanf' has not been declared

Define the other macro that can reach these definitions.

Issue already fixed by joerg in NetBSD stdio.h r1.35.
   2020-07-31 11:42:10 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
cmake: libarchive from PkgSrc currenty does not support ZSTD