Subject: CVS commit: pkgsrc/devel/cmake
From: Ryo ONODERA
Date: 2018-07-21 08:52:55
Message id: 20180721065255.6D8BBFBEC@cvs.NetBSD.org

Log Message:
Update to 3.12.0

Changelog:
Changes made since CMake 3.11 include the following.

New Features

Generators

  * The Visual Studio Generators for VS 2017 learned to support a version=14.##
    option in the CMAKE_GENERATOR_TOOLSET value (e.g. via the cmake(1) -T
    option) to specify a toolset version number.

Command-Line

  * The cmake(1) Build Tool Mode (cmake --build) gained --parallel [<jobs>] and
    -j [<jobs>] options to specify a parallel build level. They map to
    corresponding options of the native build tool.

Commands

  * The add_compile_definitions() command was added to set preprocessor
    definitions at directory level. This supersedes add_definitions().
  * The cmake_minimum_required() and cmake_policy(VERSION) commands now accept
    a version range using the form <min>[...<max>]. The <min> \ 
version is
    required but policies are set based on the older of the running CMake
    version and the version specified by <max>. This allows projects to specify
    a range of versions for which they have been updated and avoid explicit
    policy settings.
  * The file(GLOB) and file(GLOB_RECURSE) commands learned a new flag
    CONFIGURE_DEPENDS which enables expression of build system dependency on
    globbed directory’s contents.
  * The file(TOUCH) and file(TOUCH_NOCREATE) commands were added to expose
    TOUCH functionality without having to use CMake’s command-line tool mode
    with execute_process().
  * The find_package() command now searches a prefix specified by a
    PackageName_ROOT CMake or environment variable. Package roots are
    maintained as a stack so nested calls to all find_* commands inside find
    modules also search the roots as prefixes. See policy CMP0074.
  * The install() command learned an optional NAMELINK_COMPONENT parameter,
    which allows you to change the component for a shared library’s namelink.
    If none is specified, the value of COMPONENT is used by default.
  * The list() command learned a JOIN sub-command to concatenate list’s
    elements separated by a glue string.
  * The list() command learned a SUBLIST sub-command to get a sublist of the
    list.
  * The list() command learned a TRANSFORM sub-command to apply various string
    transformation to list’s elements.
  * The project() command learned an optional HOMEPAGE_URL parameter which has
    the effect of setting variables like PROJECT_HOMEPAGE_URL, <PROJECT-NAME>
    _HOMEPAGE_URL and CMAKE_PROJECT_HOMEPAGE_URL.
  * The string() command learned a JOIN sub-command to concatenate input
    strings separated by a glue string.
  * target_compile_options() and add_compile_options() commands gained a SHELL:
    prefix to specify a group of related options using shell-like quoting.
  * The target_link_libraries() command now supports Object Libraries. Linking
    to an object library uses its object files in direct dependents and also
    propagates usage requirements.

Variables

  * The CMAKE_FOLDER variable was added to initialize the FOLDER property on
    all targets.
  * The CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION variable was defined to
    initialize all DOTNET_TARGET_FRAMEWORK_VERSION target properties.
  * CMAKE_PROJECT_VERSION* variables have been introduced:
      + CMAKE_PROJECT_VERSION
      + CMAKE_PROJECT_VERSION_MAJOR
      + CMAKE_PROJECT_VERSION_MINOR
      + CMAKE_PROJECT_VERSION_PATCH
      + CMAKE_PROJECT_VERSION_TWEAK
  * The CMAKE_SUPPRESS_REGENERATION variable was extended to support the Ninja
    and Makefile Generators. It is also now documented.
  * CMAKE_VS_SDK_*_DIRECTORIES variables were defined to tell Visual Studio
    Generators for VS 2010 and above how to populate fields in .vcxproj files
    that specify SDK directories. The variables are:
      + CMAKE_VS_SDK_EXCLUDE_DIRECTORIES
      + CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES
      + CMAKE_VS_SDK_INCLUDE_DIRECTORIES
      + CMAKE_VS_SDK_LIBRARY_DIRECTORIES
      + CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
      + CMAKE_VS_SDK_REFERENCE_DIRECTORIES
      + CMAKE_VS_SDK_SOURCE_DIRECTORIES
  * A MSVC_TOOLSET_VERSION variable was added to provide the MSVC toolset
    version associated with the current MSVC compiler version in MSVC_VERSION.

Properties

  * The COMMON_LANGUAGE_RUNTIME target property was introduced to configure the
    use of managed C++ for Visual Studio Generators for VS 2010 and above. A
    corresponding IMPORTED_COMMON_LANGUAGE_RUNTIME target property was added to
    support C++/CLI for imported targets.
  * The DOTNET_TARGET_FRAMEWORK_VERSION target property was introduced as
    replacement for VS_DOTNET_TARGET_FRAMEWORK_VERSION, which is considered
    deprecated now.
  * An EXPORT_PROPERTIES target property was added to specify a custom list of
    target properties to include in targets exported by the install(EXPORT) and
    export() commands.
  * The PDB_OUTPUT_DIRECTORY property learned to support generator expressions.
  * A TESTS directory property was added to hold the list of tests defined by
    the add_test() command.
  * A VS_DEBUGGER_COMMAND target property was created to set the debugging
    command line with Visual Studio Generators for VS 2010 and above.
  * HLSL source file properties VS_SHADER_DISABLE_OPTIMIZATIONS and
    VS_SHADER_ENABLE_DEBUG gained support for generator expressions.
  * HLSL source file property VS_SHADER_OBJECT_FILE_NAME has been added to the
    Visual Studio Generators for VS 2010 and above. The property specifies the
    file name of the compiled shader object.

Modules

  * The FindALSA module now provides imported targets.
  * The FindCURL module now provides imported targets.
  * The FindJPEG module now provides imported targets.
  * The FindLibXml2 module now provides imported targets.
  * The FindMatlab module now supports the Matlab Runtime Compiler (MCR) for
    compiling and linking matlab extensions.
  * A FindODBC module was added to find an Open Database Connectivity (ODBC)
    library.
  * The FindPkgConfig module has learned to export the found libraries with
    full path for direct consumption with the target_link_libraries() command.
  * New FindPython3 and FindPython2 modules, as well as a new FindPython
    module, have been added to provide a new way to locate python environments.
  * The UseSWIG module gained a whole refresh and is now more consistent with
    standard CMake commands to generate libraries and is fully configurable
    through properties.
  * The UseSWIG module learned to manage multiple behaviors through
    UseSWIG_MODULE_VERSION variable to ensure legacy support as well as more
    robust handling of SWIG advanced features (like %template).
  * The UseSWIG module learned to support CSHARP variant wrapper files.
  * The WriteCompilerDetectionHeader module gained a BARE_FEATURES option to
    add a compatibility define for the exact keyword of a new language feature.

Generator Expressions

  * A new $<GENEX_EVAL:...> and $<TARGET_GENEX_EVAL:target,...> generator
    expression has been added to enable consumption of generator expressions
    whose evaluation results itself in generator expressions.
  * A new $<IN_LIST:...> generator expression has been added.
  * A new $<TARGET_EXISTS:...> generator expression has been added.
  * A new $<TARGET_NAME_IF_EXISTS:...> generator expression has been added.

CTest

  * The ctest_start() command has been reworked so that you can simply call
    ctest_start(APPEND) and it will read all the needed information from the
    TAG file. The argument parsing has also been relaxed so that the order of
    the arguments is less significant.
  * A PROCESSOR_AFFINITY test property was added to request that CTest run a
    test with CPU affinity for a set of processors disjoint from other
    concurrently running tests with the property set.

CPack

  * The CPack module now uses variables CMAKE_PROJECT_VERSION_MAJOR,
    CMAKE_PROJECT_VERSION_MINOR and CMAKE_PROJECT_VERSION_PATCH to initialize
    corresponding CPack variables.
  * cpack(1) gained basic support for NuGet. See the CPackNuGet module.

Other

  * The Compile Features functionality is now aware of C++ 20. No specific
    features are yet enumerated besides the cxx_std_20 meta-feature.
  * The Compile Features functionality is now aware of the availability of C
    features in MSVC since VS 2010.
  * The Compile Features functionality is now aware of C language standards
    supported by Texas Instruments C compilers.

Deprecated and Removed Features

  * The Visual Studio 8 2005 generator has been removed.
  * CMake no longer produces <tgt>_LIB_DEPENDS cache entries for library
    targets. See policy CMP0073.

Other Changes

  * Include flags for directories marked as SYSTEM are now moved after
    non-system directories. The -isystem flag does this automatically, so
    moving them explicitly to the end makes the behavior consistent on
    compilers that do not have any -isystem flag.
  * Fortran dependency scanning now supports dependencies implied by Fortran
    Submodules.
  * The existence and functionality of the file ${CMAKE_BINARY_DIR}/
    cmake_install.cmake has now been documented in the install() documentation
    so that external packaging software can take advantage of CPack-style
    component installs.
  * The CheckIncludeFile module check_include_file macro learned to honor the
    CMAKE_REQUIRED_LIBRARIES variable. See policy CMP0075.
  * The CheckIncludeFileCXX module check_include_file_cxx macro learned to
    honor the CMAKE_REQUIRED_LIBRARIES variable. See policy CMP0075.
  * The CheckIncludeFiles module check_include_files macro learned to honor the
    CMAKE_REQUIRED_LIBRARIES variable. See policy CMP0075.
  * The cmake(1) -E copy_directory tool now fails when the source directory
    does not exist. Previously it succeeded by creating an empty destination
    directory.
  * The UseSWIG module swig_add_library() command (and legacy swig_add_module
    command) now set the prefix of Java modules to "" for MINGW, MSYS, and
    CYGWIN environments.

Files:
RevisionActionfile
1.28modifypkgsrc/devel/cmake/Makefile.version
1.50modifypkgsrc/devel/cmake/PLIST
1.124modifypkgsrc/devel/cmake/distinfo
1.6modifypkgsrc/devel/cmake/patches/patch-CMakeLists.txt
1.2modifypkgsrc/devel/cmake/patches/patch-Source_Checks_cm_cxx_features.cmake
1.1removepkgsrc/devel/cmake/patches/patch-Source_Modules_FindLibUV.cmake