﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
7135	cmake-3.4.0	Fernando de Oliveira	Fernando de Oliveira	"[http://www.cmake.org/files/v3.4/cmake-3.4.0.tar.gz]

[http://www.cmake.org/files/v3.4/cmake-3.4.0-SHA-256.txt]

a5b82bf6ace6c481cdb911fd5d372a302740cbefd387e05297cb37f7468d1cea

[http://www.cmake.org/files/v3.4/cmake-3.4.0-SHA-256.txt.asc]

3.4.0 [https://cmake.org/pipermail/cmake/2015-November/061998.html]

{{{
[CMake] [ANNOUNCE] CMake 3.4.0 Released
Robert Maynard robert.maynard at kitware.com
Thu Nov 12 13:56:05 EST 2015

I am proud to announce that CMake 3.4.0 is now available for download
at:
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.4

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.4/release/3.4.html

Some of the more significant features of CMake 3.4 are:

* The ""if()"" command learned a new ""TEST"" operator that evaluates to
  true if a given test name has been defined by the ""add_test()""
  command.  See policy ""CMP0064"".

* The ""install(DIRECTORY)"" command ""DESTINATION"" option learned to
  support ""generator expressions"".

* The ""install(FILES)"" command ""DESTINATION"" option learned to
  support ""generator expressions"".

* CMake learned to honor ""*.manifest"" source files with MSVC tools.
  Manifest files named as sources of "".exe"" and "".dll"" targets will be
  merged with linker-generated manifests and embedded in the binary.


Deprecated and Removed Features:

* The ""CMakeExpandImportedTargets"" module is now documented as
  deprecated.  See module documentation for an explanation.

* The ""CMAKE_USE_RELATIVE_PATHS"" variable no longer has any effect.
  Previously it was partially implemented and unreliable.


CMake 3.4 Release Notes
***********************

Changes made since CMake 3.3 include the following.


New Features
============


Generators
----------

* The ""Visual Studio 14 2015"" generator learned to select a Windows
  10 SDK based on the value of the ""CMAKE_SYSTEM_VERSION"" variable and
  the SDKs available on the host.

* CMake learned rudimentary support for the Apple Swift language.
  When using the ""Xcode"" generator with Xcode 6.1 or higher, one may
  enable the ""Swift"" language with the ""enable_language()"" command or
  the ""project()"" command (this is an error with other generators or
  when Xcode is too old).  Then one may list "".swift"" source files in
  targets for compilation.


Commands
--------

* The ""find_program()"" command learned a ""NAMES_PER_DIR"" option to
  consider all given ""NAMES"" in each directory before moving on to the
  next directory.

* The ""get_filename_component()"" command learned a new ""BASE_DIR""
  subcommand.  This is used to specify a base directory when
  calculating an absolute path from a relative path.

* The ""if()"" command learned a new ""TEST"" operator that evaluates to
  true if a given test name has been defined by the ""add_test()""
  command.  See policy ""CMP0064"".

* The ""install(DIRECTORY)"" command ""DESTINATION"" option learned to
  support ""generator expressions"".

* The ""install(FILES)"" command ""DESTINATION"" option learned to
  support ""generator expressions"".

* The ""string()"" command learned a new ""APPEND"" subcommand.


Variables
---------

* The Makefile Generators and the ""Ninja"" generator learned to add
  compiler launcher tools like distcc and ccache along with the
  compiler for ""C"" and ""CXX"" languages.  See the
  ""CMAKE_<LANG>_COMPILER_LAUNCHER"" variable and
  ""<LANG>_COMPILER_LAUNCHER"" target property for details.

* New ""CMAKE_LINK_SEARCH_START_STATIC"" and
  ""CMAKE_LINK_SEARCH_END_STATIC"" variables were introduced to
  initialize the ""LINK_SEARCH_START_STATIC"" and
  ""LINK_SEARCH_END_STATIC"" target properties, respectively.


Properties
----------

* Visual Studio Generators learned to support additonal target
  properties to customize projects for NVIDIA Nsight Tegra Visual
  Studio Edition:

  * ""ANDROID_ANT_ADDITIONAL_OPTIONS""

  * ""ANDROID_ARCH""

  * ""ANDROID_ASSETS_DIRECTORIES""

  * ""ANDROID_JAR_DEPENDENCIES""

  * ""ANDROID_JAR_DIRECTORIES""

  * ""ANDROID_JAVA_SOURCE_DIR""

  * ""ANDROID_NATIVE_LIB_DEPENDENCIES""

  * ""ANDROID_NATIVE_LIB_DIRECTORIES""

  * ""ANDROID_PROCESS_MAX""

  * ""ANDROID_PROGUARD""

  * ""ANDROID_PROGUARD_CONFIG_PATH""

  * ""ANDROID_SECURE_PROPS_PATH""

  * ""ANDROID_SKIP_ANT_STEP""

  * ""ANDROID_STL_TYPE""

* The ""ARCHIVE_OUTPUT_DIRECTORY"", ""LIBRARY_OUTPUT_DIRECTORY"", and
  ""RUNTIME_OUTPUT_DIRECTORY"" target properties learned to support
  ""generator expressions"".

* The ""SOURCE_DIR"" and ""BINARY_DIR"" target properties were
  introduced to allow project code to query where a target is defined.

* The ""OUTPUT_NAME"" target property and its variants learned to
  support ""generator expressions"".

* A ""TARGET_MESSAGES"" global property was added to tell the Makefile
  Generators whether to generate commands to print output after each
  target is completed.

* On Windows with MS-compatible tools, CMake learned to optionally
  generate a module definition ("".def"") file for ""SHARED"" libraries.
  See the ""WINDOWS_EXPORT_ALL_SYMBOLS"" target property.


Modules
-------

* The ""ExternalProject"" module ""ExternalProject_Add()"" function
  ""GIT_SUBMODULES"" option now also limits the set of submodules that
  are initialized in addition to the prior behavior of limiting the
  set of submodules that are updated.

* The ""ExternalProject"" module learned new ""USES_TERMINAL"" arguments
  for giving steps exclusive terminal access.  This is useful with the
  ""Ninja"" generator to monitor CMake superbuild progress and prevent
  CPU oversubscription.

* The ""FindBISON"" module ""BISON_TARGET"" macro learned a new
  ""DEFINES_FILE"" option to specify a custom output header to be
  generated.

* The ""FindHDF5"" module learend a new ""HDF5_PREFER_PARALLEL"" option
  allowing users to specify that a parallel HDF5 tool is preferred if
  both are available.

* The ""FindIce"" module now provides imported targets.

* The ""FindJava"" module learned to optionally find the ""idlj"" and
  ""jarsigner"" tools.

* The ""FindOpenSSL"" module now provides imported targets.

* The ""FindOpenSSL"" module learned a new ""OPENSSL_USE_STATIC_LIBS""
  option to search only for static libraries.

* The ""FindPkgConfig"" learned a new ""pkg_get_variable()"" command
  which may be used to query for arbitrary variables from a package
  (such as for related tools or data and plugin install paths).

* The ""FindProtobuf"" module gained a new
  ""protobuf_generate_python()"" function to generate python sources
  from "".proto"" files.

* The ""FindTIFF"" module learned to search separately for debug and
  release variants.

* The ""FindwxWidgets"" module learned to support version requests.

* The ""FindXercesC"" module learned to search separately for debug
  and release variants.

* The ""FindZLIB"" module learned to search separately for debug and
  release variants.

* The ""GNUInstallDirs"" module learned special default values for
  certain installation prefixes according to the GNU Coding Standards
  and the Filesystem Hierarchy Standard.

* The ""UseJava"" module ""add_jar"" function learned to support
  response files (e.g. ""@srcs.txt"") for source specification.

* The ""UseJava"" module ""install_jar"" function learned new
  ""DESTINATION"" and ""COMPONENT"" options to specify the corresponding
  ""install()"" command options.

* The ""UseJava"" module gained a new ""create_javah"" function to
  create C headers from Java classes.


Generator Expressions
---------------------

* A new ""$<SHELL_PATH:...>"" ""generator expression"" has been added.


CTest
-----

* CTest learned to optionally measure the CPU load during parallel
  testing and avoid starting tests that may cause the load to exceed a
  given threshold.  See the ""ctest(1)"" command ""--test-load"" option,
  the ""TestLoad"" setting of the CTest Test Step, the ""CTEST_TEST_LOAD""
  variable, and the ""TEST_LOAD"" option of the ""ctest_test()"" command.

* ""ctest(1)"" learned options ""--test-output-size-passed"" and ""--
  test-output-size-failed"" to customize the limit on test output size
  submitted when running as a Dashboard Client.


CPack
-----

* The ""CPackDeb"" module learned to set package dependencies per
  component.  See variables:

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES""

  * ""CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS""

* The ""CPack"" module learned to package empty directories.

* The ""CPack"" module gained a new setting,
  ""CPACK_VERBATIM_VARIABLES"", which can be used to ensure the cpack
  program receives the settings' values exactly as they were set, even
  if they contain CMake-special characters. For compatibility, it's
  off by default.


Other
-----

* The ""Compile Features"" functionality is now aware of features
  supported by GNU C compilers on Windows.

* CMake learned to honor ""*.manifest"" source files with MSVC tools.
  Manifest files named as sources of "".exe"" and "".dll"" targets will be
  merged with linker-generated manifests and embedded in the binary.

* The Concurrent Fortran 77 compiler is now supported. Its ""compiler
  id"" is ""CCur"".

* ""cmake(1)"" gained a new ""--trace-expand"" command line option that
  is like ""--trace"" but expands variable references in the output.


Deprecated and Removed Features
===============================

* The ""CMakeExpandImportedTargets"" module is now documented as
  deprecated.  See module documentation for an explanation.

* The ""CMAKE_USE_RELATIVE_PATHS"" variable no longer has any effect.
  Previously it was partially implemented and unreliable.


Other Changes
=============

* The ""CheckFunctionExists"", ""CheckLibraryExists"",
  ""CheckSymbolExists"", and ""FindThreads"" modules learned to work in
  environments where only CXX is enabled.

* The ""CPackDeb"" module now correctly excludes symlinks during
  package checksum calculation.

* The ""CPackDeb"" no longer uses fakeroot and system tar program for
  packaging.

* The ""CPack"" module no longer mangles settings with CMake-special
  characters when they're used as defaults for other settings. The
  macro ""cpack_set_if_not_set"", which was responsible for this, is now
  deprecated.

* CMake no longer links executables with flags to export symbols
  unless the ""ENABLE_EXPORTS"" target property is set. See policy
  ""CMP0065"".

* The ""SONAME"" field is no longer set for ""MODULE"" libraries created
  with the ""add_library()"" command.  ""MODULE"" libraries are meant for
  explicit dynamic loading at runtime. They cannot be linked so
  ""SONAME"" is not useful.

* The internal ""CMAKE__COMPILE_OBJECT"" rule variable now
  substitutes compiler include flags in a separate ""<INCLUDES>""
  placeholder instead of the main ""<FLAGS>"" placeholder.

--------------------------------------------------------------------
Changes made since CMake 3.4.0-rc3:

Brad King (1):
      CMake 3.4.0

Stephen Kelly (1):
      Install: Move SetHaveInstallRule to a more-obvious place
}}}"	enhancement	closed	normal	7.9	BOOK	SVN	medium	fixed		
