| 
					
				 | 
			
			
				@@ -7,6 +7,16 @@ CMake 3.4 Release Notes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Changes made since CMake 3.4 include the following. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+New Features 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+============ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Generators 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+---------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :generator:`Visual Studio 14 2015` generator learned to select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  variable and the SDKs available on the host. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * CMake learned rudimentary support for the Apple Swift language.  When using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   the :generator:`Xcode` generator with Xcode 6.1 or higher, one may enable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   the ``Swift`` language with the :command:`enable_language` command or the 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14,76 +24,96 @@ Changes made since CMake 3.4 include the following. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Xcode is too old).  Then one may list ``.swift`` source files in targets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for compilation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  introduced to initialize the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :prop_tgt:`LINK_SEARCH_START_STATIC` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :prop_tgt:`LINK_SEARCH_END_STATIC` target properties, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  respectively. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Commands 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+-------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* On Windows with MS-compatible tools, CMake learned to optionally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  generate a module definition (``.def``) file for ``SHARED`` libraries. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :command:`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 :command:`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 :command:`if` command learned a new ``TEST`` operator that evaluates 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  to true if a given test name has been defined by the :command:`add_test` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  command.  See policy :policy:`CMP0064`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :command:`install(FILES)` command ``DESTINATION`` option learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :command:`string` command learned a new ``APPEND`` subcommand. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :ref:`Makefile Generators` and the :generator:`Ninja` generator 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  learned to add compiler launcher tools like distcc and ccache along with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  compiler for ``C`` and ``CXX`` languages.  See the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  learned to add compiler launcher tools like distcc and ccache along 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with the compiler for ``C`` and ``CXX`` languages.  See the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  introduced to initialize the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :prop_tgt:`LINK_SEARCH_START_STATIC` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :prop_tgt:`LINK_SEARCH_END_STATIC` target properties, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  respectively. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`CPackDeb` module now correctly excludes symlinks during package checksum calculation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+---------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`CPackDeb` module learned to set package dependencies 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  per component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* :ref:`Visual Studio Generators` learned to support additonal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  target properties to customize projects for NVIDIA Nsight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Tegra Visual Studio Edition: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* :module:`CPackDeb` no longer uses fakeroot and system tar program for packaging. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_ARCH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_ASSETS_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_JAR_DEPENDENCIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_JAR_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_JAVA_SOURCE_DIR` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_PROCESS_MAX` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_PROGUARD` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_SECURE_PROPS_PATH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_SKIP_ANT_STEP` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :prop_tgt:`ANDROID_STL_TYPE` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`CPack` module learned to package empty directories. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  were introduced to allow project code to query where a target is defined. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* :manual:`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 :ref:`Dashboard Client`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :ref:`Makefile Generators` whether to generate commands to print output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  after each target is completed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* 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 :manual:`ctest(1)` command ``--test-load`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  option, the ``TestLoad`` setting of the :ref:`CTest Test Step`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  option of the :command:`ctest_test` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* On Windows with MS-compatible tools, CMake learned to optionally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  generate a module definition (``.def``) file for ``SHARED`` libraries. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`CMakeExpandImportedTargets` module is now documented 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  as deprecated.  See module documentation for an explanation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Modules 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`ExternalProject` module :command:`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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Use "git stash save --all" only if supported. The --all option for git-stash 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  wasn't introduced until git version 1.7.6. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`ExternalProject` module learned new ``USES_TERMINAL`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  arguments for giving steps exclusive terminal access.  Especially 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  arguments for giving steps exclusive terminal access.  This is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   useful with the :generator:`Ninja` generator to monitor CMake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   superbuild progress and prevent CPU oversubscription. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,14 +127,17 @@ Changes made since CMake 3.4 include the following. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`FindIce` module now provides imported targets. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`FindJava` module learned to optionally find 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the ``idlj`` and ``jarsigner`` tools. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`FindOpenSSL` module now provides imported targets. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`FindOpenSSL` module learned a new ``OPENSSL_USE_STATIC_LIBS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   option to search only for static libraries. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :command:`find_program` command learned a ``NAMES_PER_DIR`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  option to consdier all given ``NAMES`` in each directory before 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  moving on to the next directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`FindPkgConfig` learned a new :command:`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 :module:`FindProtobuf` module gained a new 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :command:`protobuf_generate_python` function to generate python 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -121,33 +154,10 @@ Changes made since CMake 3.4 include the following. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`FindZLIB` module learned to search separately for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   debug and release variants. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* A new ``$<SHELL_PATH:...>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :manual:`generator expression <cmake-generator-expressions(7)>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  has been added. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :command:`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 :module:`GNUInstallDirs` module learned special default values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   for certain installation prefixes according to the `GNU Coding 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Standards`_ and the `Filesystem Hierarchy Standard`_. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Add a new TEST operator to if() that evaluates to true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if a given test name has been defined. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :command:`install(FILES)` command ``DESTINATION`` option learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`FindJava` module learned to optionally find 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the ``idlj`` and ``jarsigner`` tools. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`UseJava` module ``add_jar`` function learned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   to support response files (e.g. ``@srcs.txt``) for source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   specification. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,73 +169,101 @@ Changes made since CMake 3.4 include the following. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`UseJava` module gained a new ``create_javah`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   function to create C headers from Java classes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :ref:`Makefile Generators` whether to generate commands to print output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  after each target is completed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. _`GNU Coding Standards`: https://www.gnu.org/prep/standards/html_node/Directory-Variables.html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. _`Filesystem Hierarchy Standard`: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Generator Expressions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* A new ``$<SHELL_PATH:...>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :manual:`generator expression <cmake-generator-expressions(7)>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  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 :manual:`ctest(1)` command ``--test-load`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  option, the ``TestLoad`` setting of the :ref:`CTest Test Step`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the :variable:`CTEST_TEST_LOAD` variable, and the ``TEST_LOAD`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  option of the :command:`ctest_test` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* :manual:`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 :ref:`Dashboard Client`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+CPack 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+----- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`CPackDeb` module learned to set package dependencies 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  per component.  See variables: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  * :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`CPack` module learned to package empty directories. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`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 :manual:`Compile Features <cmake-compile-features(7)>` functionality 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   is now aware of features supported by GNU C compilers on Windows. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The ``SONAME`` field is no longer set for ``MODULE`` libraries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  created with the :command:`add_library` command.  ``MODULE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  libraries are meant for explicit dynamic loading at runtime. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  They cannot be linked so ``SONAME`` is not useful. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 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 :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The `Concurrent Fortran 77 <https://ccur.com>`__ compiler is now supported. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Its :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` is ``CCur``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  support :manual:`generator expressions <cmake-generator-expressions(7)>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* :manual:`cmake(1)` gained a new ``--trace-expand`` command line option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  that is like ``--trace`` but expands variable references in the output. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :module:`FindPkgConfig` learned a new :command:`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). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Deprecated and Removed Features 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+=============================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`CMakeExpandImportedTargets` module is now documented 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  as deprecated.  See module documentation for an explanation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   effect.  Previously it was partially implemented and unreliable. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* CMake no longer links executables with flags to export symbols 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  unless the :prop_tgt:`ENABLE_EXPORTS` target property is set. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  See policy :policy:`CMP0065`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :command:`string` command learned a new ``APPEND`` subcommand. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :prop_tgt:`SOURCE_DIR` and :prop_tgt:`BINARY_DIR` target properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  were introduced to allow project code to query where a target is defined. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Other Changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+============= 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   work in environments where only CXX is enabled. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Add ``--trace-expand`` argument to CMake. Acts like ``--trace``, but expands 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  variable references in the output. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`CPackDeb` module now correctly excludes symlinks during package 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  checksum calculation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* :ref:`Visual Studio Generators` learned to support additonal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  target properties to customize projects for NVIDIA Nsight 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Tegra Visual Studio Edition: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`CPackDeb` no longer uses fakeroot and system tar program for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  packaging. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_ANT_ADDITIONAL_OPTIONS` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_ARCH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_ASSETS_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_JAR_DEPENDENCIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_JAR_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_JAVA_SOURCE_DIR` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_NATIVE_LIB_DEPENDENCIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_NATIVE_LIB_DIRECTORIES` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_PROCESS_MAX` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_PROGUARD` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_PROGUARD_CONFIG_PATH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_SECURE_PROPS_PATH` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_SKIP_ANT_STEP` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  * :prop_tgt:`ANDROID_STL_TYPE` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The :module:`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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The :generator:`Visual Studio 14 2015` generator learned to select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  a Windows 10 SDK based on the value of the :variable:`CMAKE_SYSTEM_VERSION` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  variable and the SDKs available on the host. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* CMake no longer links executables with flags to export symbols 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  unless the :prop_tgt:`ENABLE_EXPORTS` target property is set. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  See policy :policy:`CMP0065`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The ``SONAME`` field is no longer set for ``MODULE`` libraries 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  created with the :command:`add_library` command.  ``MODULE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  libraries are meant for explicit dynamic loading at runtime. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  They cannot be linked so ``SONAME`` is not useful. 
			 |