From c922aa18924c7c0b04258f24f8ca888de407a6dd Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 2 Oct 2015 10:16:36 -0400 Subject: [PATCH 1/2] Help: Consolidate 3.4 release notes Move all development release notes into a new version-specific document: tail -q -n +3 Help/release/dev/* > Help/release/3.4.rst git rm -- Help/release/dev/* except the sample topic: git checkout HEAD -- Help/release/dev/0-sample-topic.rst Reference the new document from the release notes index document. Add a title and intro sentence to the new document by hand. --- Help/release/3.4.rst | 231 ++++++++++++++++++ Help/release/dev/CPack-updates.rst | 11 - .../dev/ConcurrentFortran-compiler-id.rst | 5 - .../dev/ExternalProject-USES_TERMINAL.rst | 7 - ...ternalProject_init_selected_submodules.rst | 7 - .../dev/ExternalProject_stash_save_all.rst | 5 - Help/release/dev/FindBISON-DEFINES_FILE.rst | 6 - Help/release/dev/FindHDF5-updates.rst | 6 - Help/release/dev/FindIce-imported-targets.rst | 4 - .../dev/FindOpenSSL-imported-targets.rst | 4 - Help/release/dev/FindOpenSSL-static-libs.rst | 5 - .../dev/FindProtobuf-python-extension.rst | 6 - Help/release/dev/FindTIFF-updates.rst | 5 - Help/release/dev/FindXercesC-updates.rst | 5 - Help/release/dev/FindZLIB-per-config.rst | 5 - Help/release/dev/FindwxWidgets-updates.rst | 4 - .../dev/GNUInstallDirs-special-prefixes.rst | 9 - Help/release/dev/OUTPUT_DIRECTORY-genex.rst | 7 - Help/release/dev/OUTPUT_NAME-genex.rst | 5 - Help/release/dev/Threads-CXX.rst | 6 - Help/release/dev/add-apple-swift-language.rst | 9 - ...link-search-static-properties-defaults.rst | 9 - Help/release/dev/auto_export_dll_symbols.rst | 6 - Help/release/dev/compiler-launcher.rst | 8 - .../dev/cpack-deb-checksum-on-symlinks.rts | 4 - .../dev/cpack-deb-component-dependencies.rst | 12 - .../dev/cpack-deb-fakeroot-removal.rts | 4 - Help/release/dev/cpack-package-empty-dirs.rts | 4 - Help/release/dev/ctest-custom-output-size.rst | 7 - Help/release/dev/ctest-test-load-option.rst | 9 - ...-CMakeExpandImportedTargets-deprecated.rst | 5 - .../dev/find_program-NAMES_PER_DIR.rst | 6 - Help/release/dev/genex-SHELL_PATH.rst | 6 - .../dev/get-filename-component-base-dir.rst | 6 - Help/release/dev/if-TEST.rst | 5 - .../dev/install-directory-dest-genex.rst | 5 - Help/release/dev/install-files-dest-genex.rst | 5 - Help/release/dev/java-updates.rst | 16 -- Help/release/dev/makefile-target-messages.rst | 6 - Help/release/dev/mingw-compile-features-C.rst | 5 - Help/release/dev/modules-no-soname.rst | 7 - Help/release/dev/ms-manifest-files.rst | 7 - .../dev/pkg-config-variable-function.rst | 6 - .../dev/remove-CMAKE_USE_RELATIVE_PATHS.rst | 5 - ...ict-shlib-link-flags-to-enable-exports.rst | 6 - Help/release/dev/string-append.rst | 4 - .../dev/target-directory-properties.rst | 5 - Help/release/dev/trace-expand.rst | 5 - .../dev/vs-nsight-tegra-attributes.rst | 21 -- Help/release/dev/vs-win10-sdk.rst | 6 - Help/release/index.rst | 1 + 51 files changed, 232 insertions(+), 321 deletions(-) create mode 100644 Help/release/3.4.rst delete mode 100644 Help/release/dev/CPack-updates.rst delete mode 100644 Help/release/dev/ConcurrentFortran-compiler-id.rst delete mode 100644 Help/release/dev/ExternalProject-USES_TERMINAL.rst delete mode 100644 Help/release/dev/ExternalProject_init_selected_submodules.rst delete mode 100644 Help/release/dev/ExternalProject_stash_save_all.rst delete mode 100644 Help/release/dev/FindBISON-DEFINES_FILE.rst delete mode 100644 Help/release/dev/FindHDF5-updates.rst delete mode 100644 Help/release/dev/FindIce-imported-targets.rst delete mode 100644 Help/release/dev/FindOpenSSL-imported-targets.rst delete mode 100644 Help/release/dev/FindOpenSSL-static-libs.rst delete mode 100644 Help/release/dev/FindProtobuf-python-extension.rst delete mode 100644 Help/release/dev/FindTIFF-updates.rst delete mode 100644 Help/release/dev/FindXercesC-updates.rst delete mode 100644 Help/release/dev/FindZLIB-per-config.rst delete mode 100644 Help/release/dev/FindwxWidgets-updates.rst delete mode 100644 Help/release/dev/GNUInstallDirs-special-prefixes.rst delete mode 100644 Help/release/dev/OUTPUT_DIRECTORY-genex.rst delete mode 100644 Help/release/dev/OUTPUT_NAME-genex.rst delete mode 100644 Help/release/dev/Threads-CXX.rst delete mode 100644 Help/release/dev/add-apple-swift-language.rst delete mode 100644 Help/release/dev/add-link-search-static-properties-defaults.rst delete mode 100644 Help/release/dev/auto_export_dll_symbols.rst delete mode 100644 Help/release/dev/compiler-launcher.rst delete mode 100644 Help/release/dev/cpack-deb-checksum-on-symlinks.rts delete mode 100644 Help/release/dev/cpack-deb-component-dependencies.rst delete mode 100644 Help/release/dev/cpack-deb-fakeroot-removal.rts delete mode 100644 Help/release/dev/cpack-package-empty-dirs.rts delete mode 100644 Help/release/dev/ctest-custom-output-size.rst delete mode 100644 Help/release/dev/ctest-test-load-option.rst delete mode 100644 Help/release/dev/doc-CMakeExpandImportedTargets-deprecated.rst delete mode 100644 Help/release/dev/find_program-NAMES_PER_DIR.rst delete mode 100644 Help/release/dev/genex-SHELL_PATH.rst delete mode 100644 Help/release/dev/get-filename-component-base-dir.rst delete mode 100644 Help/release/dev/if-TEST.rst delete mode 100644 Help/release/dev/install-directory-dest-genex.rst delete mode 100644 Help/release/dev/install-files-dest-genex.rst delete mode 100644 Help/release/dev/java-updates.rst delete mode 100644 Help/release/dev/makefile-target-messages.rst delete mode 100644 Help/release/dev/mingw-compile-features-C.rst delete mode 100644 Help/release/dev/modules-no-soname.rst delete mode 100644 Help/release/dev/ms-manifest-files.rst delete mode 100644 Help/release/dev/pkg-config-variable-function.rst delete mode 100644 Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst delete mode 100644 Help/release/dev/restrict-shlib-link-flags-to-enable-exports.rst delete mode 100644 Help/release/dev/string-append.rst delete mode 100644 Help/release/dev/target-directory-properties.rst delete mode 100644 Help/release/dev/trace-expand.rst delete mode 100644 Help/release/dev/vs-nsight-tegra-attributes.rst delete mode 100644 Help/release/dev/vs-win10-sdk.rst diff --git a/Help/release/3.4.rst b/Help/release/3.4.rst new file mode 100644 index 000000000..448ea35e0 --- /dev/null +++ b/Help/release/3.4.rst @@ -0,0 +1,231 @@ +CMake 3.4 Release Notes +*********************** + +.. only:: html + + .. contents:: + +Changes made since CMake 3.4 include the following. + +* 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 + :command:`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. + +* 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. + +* 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 :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 + :variable:`CMAKE__COMPILER_LAUNCHER` variable and + :prop_tgt:`_COMPILER_LAUNCHER` target property for details. + +* The `Concurrent Fortran 77 `__ compiler is now supported. + Its :variable:`compiler id _COMPILER_ID>` is ``CCur``. + +* The :module:`CPackDeb` module now correctly excludes symlinks during package checksum calculation. + +* The :module:`CPackDeb` module learned to set package dependencies + per component. See :variable:`CPACK_DEBIAN__PACKAGE_PREDEPENDS`, + :variable:`CPACK_DEBIAN__PACKAGE_ENHANCES`, + :variable:`CPACK_DEBIAN__PACKAGE_BREAKS`, + :variable:`CPACK_DEBIAN__PACKAGE_CONFLICTS`, + :variable:`CPACK_DEBIAN__PACKAGE_PROVIDES`, + :variable:`CPACK_DEBIAN__PACKAGE_REPLACES`, + :variable:`CPACK_DEBIAN__PACKAGE_RECOMMENDS` and + :variable:`CPACK_DEBIAN__PACKAGE_SUGGESTS`. + +* :module:`CPackDeb` no longer uses fakeroot and system tar program for packaging. + +* The :module:`CPack` module learned to package empty directories. + +* 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 :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. + +* :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`. + +* 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. + +* The :module:`CMakeExpandImportedTargets` module is now documented + as deprecated. See module documentation for an explanation. + +* 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 + useful with the :generator:`Ninja` generator to monitor CMake + superbuild progress and prevent CPU oversubscription. + +* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a + new ``DEFINES_FILE`` option to specify a custom output header + to be generated. + +* The :module:`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 :module:`FindIce` module now provides imported targets. + +* 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:`FindProtobuf` module gained a new + :command:`protobuf_generate_python` function to generate python + sources from ``.proto`` files. + +* The :module:`FindTIFF` module learned to search separately for + debug and release variants. + +* The :module:`FindwxWidgets` module learned to support version requests. + +* The :module:`FindXercesC` module learned to search separately for + debug and release variants. + +* The :module:`FindZLIB` module learned to search separately for + debug and release variants. + +* A new ``$`` + :manual:`generator expression ` + 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 `. + +* The :command:`install(FILES)` command ``DESTINATION`` option learned to + support :manual:`generator expressions `. + +* 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. + +* The :module:`UseJava` module ``install_jar`` function learned + new ``DESTINATION`` and ``COMPONENT`` options to specify + the corresponding :command:`install` command options. + +* 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. + +* The :manual:`Compile Features ` 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 `. + +* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to + support :manual:`generator expressions `. + +* 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 :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. + +* 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. + +* :ref:`Visual Studio Generators` learned to support additonal + target properties to customize projects for NVIDIA Nsight + Tegra Visual Studio Edition: + + * :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 :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. diff --git a/Help/release/dev/CPack-updates.rst b/Help/release/dev/CPack-updates.rst deleted file mode 100644 index ea0780f82..000000000 --- a/Help/release/dev/CPack-updates.rst +++ /dev/null @@ -1,11 +0,0 @@ -CPack-updates -------------- - -* 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 :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. diff --git a/Help/release/dev/ConcurrentFortran-compiler-id.rst b/Help/release/dev/ConcurrentFortran-compiler-id.rst deleted file mode 100644 index 71e79aa7e..000000000 --- a/Help/release/dev/ConcurrentFortran-compiler-id.rst +++ /dev/null @@ -1,5 +0,0 @@ -ConcurrentFortran-compiler-id ------------------------------ - -* The `Concurrent Fortran 77 `__ compiler is now supported. - Its :variable:`compiler id _COMPILER_ID>` is ``CCur``. diff --git a/Help/release/dev/ExternalProject-USES_TERMINAL.rst b/Help/release/dev/ExternalProject-USES_TERMINAL.rst deleted file mode 100644 index 415540d75..000000000 --- a/Help/release/dev/ExternalProject-USES_TERMINAL.rst +++ /dev/null @@ -1,7 +0,0 @@ -ExternalProject-USES_TERMINAL ------------------------------ - -* The :module:`ExternalProject` module learned new ``USES_TERMINAL`` - arguments for giving steps exclusive terminal access. Especially - useful with the :generator:`Ninja` generator to monitor CMake - superbuild progress and prevent CPU oversubscription. diff --git a/Help/release/dev/ExternalProject_init_selected_submodules.rst b/Help/release/dev/ExternalProject_init_selected_submodules.rst deleted file mode 100644 index e642c1996..000000000 --- a/Help/release/dev/ExternalProject_init_selected_submodules.rst +++ /dev/null @@ -1,7 +0,0 @@ -ExternalProject_init_selected_submodules ----------------------------------------- - -* 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. diff --git a/Help/release/dev/ExternalProject_stash_save_all.rst b/Help/release/dev/ExternalProject_stash_save_all.rst deleted file mode 100644 index e00ed4486..000000000 --- a/Help/release/dev/ExternalProject_stash_save_all.rst +++ /dev/null @@ -1,5 +0,0 @@ -ExternalProject_stash_save_all ------------------------------- - -* Use "git stash save --all" only if supported. The --all option for git-stash - wasn't introduced until git version 1.7.6. diff --git a/Help/release/dev/FindBISON-DEFINES_FILE.rst b/Help/release/dev/FindBISON-DEFINES_FILE.rst deleted file mode 100644 index 815d56090..000000000 --- a/Help/release/dev/FindBISON-DEFINES_FILE.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindBISON-DEFINES_FILE ----------------------- - -* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a - new ``DEFINES_FILE`` option to specify a custom output header - to be generated. diff --git a/Help/release/dev/FindHDF5-updates.rst b/Help/release/dev/FindHDF5-updates.rst deleted file mode 100644 index a9297bb5e..000000000 --- a/Help/release/dev/FindHDF5-updates.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindHDF5-updates ----------------- - -* The :module:`FindHDF5` module learend a new ``HDF5_PREFER_PARALLEL`` - option allowing users to specify that a parallel HDF5 tool is - preferred if both are available. diff --git a/Help/release/dev/FindIce-imported-targets.rst b/Help/release/dev/FindIce-imported-targets.rst deleted file mode 100644 index 7e1b2f42d..000000000 --- a/Help/release/dev/FindIce-imported-targets.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindIce-imported-targets ------------------------- - -* The :module:`FindIce` module now provides imported targets. diff --git a/Help/release/dev/FindOpenSSL-imported-targets.rst b/Help/release/dev/FindOpenSSL-imported-targets.rst deleted file mode 100644 index 63090af9a..000000000 --- a/Help/release/dev/FindOpenSSL-imported-targets.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindOpenSSL-imported-targets ----------------------------- - -* The :module:`FindOpenSSL` module now provides imported targets. diff --git a/Help/release/dev/FindOpenSSL-static-libs.rst b/Help/release/dev/FindOpenSSL-static-libs.rst deleted file mode 100644 index 69ec6f246..000000000 --- a/Help/release/dev/FindOpenSSL-static-libs.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindOpenSSL-static-libs ------------------------ - -* The :module:`FindOpenSSL` module learned a new ``OPENSSL_USE_STATIC_LIBS`` - option to search only for static libraries. diff --git a/Help/release/dev/FindProtobuf-python-extension.rst b/Help/release/dev/FindProtobuf-python-extension.rst deleted file mode 100644 index 95463bf70..000000000 --- a/Help/release/dev/FindProtobuf-python-extension.rst +++ /dev/null @@ -1,6 +0,0 @@ -FindProtobuf-python-extension ------------------------------ - -* The :module:`FindProtobuf` module gained a new - :command:`protobuf_generate_python` function to generate python - sources from ``.proto`` files. diff --git a/Help/release/dev/FindTIFF-updates.rst b/Help/release/dev/FindTIFF-updates.rst deleted file mode 100644 index 083e40f24..000000000 --- a/Help/release/dev/FindTIFF-updates.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindTIFF-updates ----------------- - -* The :module:`FindTIFF` module learned to search separately for - debug and release variants. diff --git a/Help/release/dev/FindXercesC-updates.rst b/Help/release/dev/FindXercesC-updates.rst deleted file mode 100644 index 47a8ada74..000000000 --- a/Help/release/dev/FindXercesC-updates.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindXercesC-updates -------------------- - -* The :module:`FindXercesC` module learned to search separately for - debug and release variants. diff --git a/Help/release/dev/FindZLIB-per-config.rst b/Help/release/dev/FindZLIB-per-config.rst deleted file mode 100644 index 97fd6efc2..000000000 --- a/Help/release/dev/FindZLIB-per-config.rst +++ /dev/null @@ -1,5 +0,0 @@ -FindZLIB-per-config -------------------- - -* The :module:`FindZLIB` module learned to search separately for - debug and release variants. diff --git a/Help/release/dev/FindwxWidgets-updates.rst b/Help/release/dev/FindwxWidgets-updates.rst deleted file mode 100644 index aa470f2da..000000000 --- a/Help/release/dev/FindwxWidgets-updates.rst +++ /dev/null @@ -1,4 +0,0 @@ -FindwxWidgets-updates ---------------------- - -* The :module:`FindwxWidgets` module learned to support version requests. diff --git a/Help/release/dev/GNUInstallDirs-special-prefixes.rst b/Help/release/dev/GNUInstallDirs-special-prefixes.rst deleted file mode 100644 index 83c1352f8..000000000 --- a/Help/release/dev/GNUInstallDirs-special-prefixes.rst +++ /dev/null @@ -1,9 +0,0 @@ -GNUInstallDirs-special-prefixes -------------------------------- - -* 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 diff --git a/Help/release/dev/OUTPUT_DIRECTORY-genex.rst b/Help/release/dev/OUTPUT_DIRECTORY-genex.rst deleted file mode 100644 index 8b839c038..000000000 --- a/Help/release/dev/OUTPUT_DIRECTORY-genex.rst +++ /dev/null @@ -1,7 +0,0 @@ -OUTPUT_DIRECTORY-genex ----------------------- - -* 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 `. diff --git a/Help/release/dev/OUTPUT_NAME-genex.rst b/Help/release/dev/OUTPUT_NAME-genex.rst deleted file mode 100644 index 0a3982099..000000000 --- a/Help/release/dev/OUTPUT_NAME-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -OUTPUT_NAME-genex ------------------ - -* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to - support :manual:`generator expressions `. diff --git a/Help/release/dev/Threads-CXX.rst b/Help/release/dev/Threads-CXX.rst deleted file mode 100644 index 2e34a01d2..000000000 --- a/Help/release/dev/Threads-CXX.rst +++ /dev/null @@ -1,6 +0,0 @@ -Threads-CXX ------------- - -* The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`, - :module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to - work in environments where only CXX is enabled. diff --git a/Help/release/dev/add-apple-swift-language.rst b/Help/release/dev/add-apple-swift-language.rst deleted file mode 100644 index 60ce5d82e..000000000 --- a/Help/release/dev/add-apple-swift-language.rst +++ /dev/null @@ -1,9 +0,0 @@ -add-apple-swift-language ------------------------- - -* 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 - :command:`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. diff --git a/Help/release/dev/add-link-search-static-properties-defaults.rst b/Help/release/dev/add-link-search-static-properties-defaults.rst deleted file mode 100644 index 98dda3056..000000000 --- a/Help/release/dev/add-link-search-static-properties-defaults.rst +++ /dev/null @@ -1,9 +0,0 @@ -add-link-search-static-properties-defaults ------------------------------------------- - -* 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. diff --git a/Help/release/dev/auto_export_dll_symbols.rst b/Help/release/dev/auto_export_dll_symbols.rst deleted file mode 100644 index 9db2b5eab..000000000 --- a/Help/release/dev/auto_export_dll_symbols.rst +++ /dev/null @@ -1,6 +0,0 @@ -auto_export_dll_symbols ------------------------ - -* 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. diff --git a/Help/release/dev/compiler-launcher.rst b/Help/release/dev/compiler-launcher.rst deleted file mode 100644 index 3ba692da4..000000000 --- a/Help/release/dev/compiler-launcher.rst +++ /dev/null @@ -1,8 +0,0 @@ -compiler-launcher ------------------ - -* 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 - :variable:`CMAKE__COMPILER_LAUNCHER` variable and - :prop_tgt:`_COMPILER_LAUNCHER` target property for details. diff --git a/Help/release/dev/cpack-deb-checksum-on-symlinks.rts b/Help/release/dev/cpack-deb-checksum-on-symlinks.rts deleted file mode 100644 index 9bfeded08..000000000 --- a/Help/release/dev/cpack-deb-checksum-on-symlinks.rts +++ /dev/null @@ -1,4 +0,0 @@ -cpack-deb-checksum-on-symlinks ------------------------------- - -* The :module:`CPackDeb` module now correctly excludes symlinks during package checksum calculation. diff --git a/Help/release/dev/cpack-deb-component-dependencies.rst b/Help/release/dev/cpack-deb-component-dependencies.rst deleted file mode 100644 index 271422224..000000000 --- a/Help/release/dev/cpack-deb-component-dependencies.rst +++ /dev/null @@ -1,12 +0,0 @@ -cpack-deb-component-dependencies --------------------------------- - -* The :module:`CPackDeb` module learned to set package dependencies - per component. See :variable:`CPACK_DEBIAN__PACKAGE_PREDEPENDS`, - :variable:`CPACK_DEBIAN__PACKAGE_ENHANCES`, - :variable:`CPACK_DEBIAN__PACKAGE_BREAKS`, - :variable:`CPACK_DEBIAN__PACKAGE_CONFLICTS`, - :variable:`CPACK_DEBIAN__PACKAGE_PROVIDES`, - :variable:`CPACK_DEBIAN__PACKAGE_REPLACES`, - :variable:`CPACK_DEBIAN__PACKAGE_RECOMMENDS` and - :variable:`CPACK_DEBIAN__PACKAGE_SUGGESTS`. diff --git a/Help/release/dev/cpack-deb-fakeroot-removal.rts b/Help/release/dev/cpack-deb-fakeroot-removal.rts deleted file mode 100644 index e0b97d195..000000000 --- a/Help/release/dev/cpack-deb-fakeroot-removal.rts +++ /dev/null @@ -1,4 +0,0 @@ -cpack-deb-fakeroot-removal --------------------------- - -* :module:`CPackDeb` no longer uses fakeroot and system tar program for packaging. diff --git a/Help/release/dev/cpack-package-empty-dirs.rts b/Help/release/dev/cpack-package-empty-dirs.rts deleted file mode 100644 index 1f56e1a90..000000000 --- a/Help/release/dev/cpack-package-empty-dirs.rts +++ /dev/null @@ -1,4 +0,0 @@ -cpack-package-empty-dirs ------------------------- - -* The :module:`CPack` module learned to package empty directories. diff --git a/Help/release/dev/ctest-custom-output-size.rst b/Help/release/dev/ctest-custom-output-size.rst deleted file mode 100644 index 8098b93f9..000000000 --- a/Help/release/dev/ctest-custom-output-size.rst +++ /dev/null @@ -1,7 +0,0 @@ -ctest-custom-output-size ------------------------- - -* :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`. diff --git a/Help/release/dev/ctest-test-load-option.rst b/Help/release/dev/ctest-test-load-option.rst deleted file mode 100644 index 069f49ae2..000000000 --- a/Help/release/dev/ctest-test-load-option.rst +++ /dev/null @@ -1,9 +0,0 @@ -ctest-test-load-option ----------------------- - -* 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. diff --git a/Help/release/dev/doc-CMakeExpandImportedTargets-deprecated.rst b/Help/release/dev/doc-CMakeExpandImportedTargets-deprecated.rst deleted file mode 100644 index 3bdaebeb6..000000000 --- a/Help/release/dev/doc-CMakeExpandImportedTargets-deprecated.rst +++ /dev/null @@ -1,5 +0,0 @@ -doc-CMakeExpandImportedTargets-deprecated ------------------------------------------ - -* The :module:`CMakeExpandImportedTargets` module is now documented - as deprecated. See module documentation for an explanation. diff --git a/Help/release/dev/find_program-NAMES_PER_DIR.rst b/Help/release/dev/find_program-NAMES_PER_DIR.rst deleted file mode 100644 index 04cd17045..000000000 --- a/Help/release/dev/find_program-NAMES_PER_DIR.rst +++ /dev/null @@ -1,6 +0,0 @@ -find_program-NAMES_PER_DIR --------------------------- - -* 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. diff --git a/Help/release/dev/genex-SHELL_PATH.rst b/Help/release/dev/genex-SHELL_PATH.rst deleted file mode 100644 index 86af720c6..000000000 --- a/Help/release/dev/genex-SHELL_PATH.rst +++ /dev/null @@ -1,6 +0,0 @@ -genex-SHELL_PATH ----------------- - -* A new ``$`` - :manual:`generator expression ` - has been added. diff --git a/Help/release/dev/get-filename-component-base-dir.rst b/Help/release/dev/get-filename-component-base-dir.rst deleted file mode 100644 index c0df759da..000000000 --- a/Help/release/dev/get-filename-component-base-dir.rst +++ /dev/null @@ -1,6 +0,0 @@ -get-filename-component-base-dir -------------------------------- - -* 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. diff --git a/Help/release/dev/if-TEST.rst b/Help/release/dev/if-TEST.rst deleted file mode 100644 index 05bf71c96..000000000 --- a/Help/release/dev/if-TEST.rst +++ /dev/null @@ -1,5 +0,0 @@ -if-TEST -------- - -* Add a new TEST operator to if() that evaluates to true - if a given test name has been defined. diff --git a/Help/release/dev/install-directory-dest-genex.rst b/Help/release/dev/install-directory-dest-genex.rst deleted file mode 100644 index 2b83bbd22..000000000 --- a/Help/release/dev/install-directory-dest-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-directory-dest-genex ----------------------------- - -* The :command:`install(DIRECTORY)` command ``DESTINATION`` option learned to - support :manual:`generator expressions `. diff --git a/Help/release/dev/install-files-dest-genex.rst b/Help/release/dev/install-files-dest-genex.rst deleted file mode 100644 index b7aa8b3be..000000000 --- a/Help/release/dev/install-files-dest-genex.rst +++ /dev/null @@ -1,5 +0,0 @@ -install-files-dest-genex ------------------------- - -* The :command:`install(FILES)` command ``DESTINATION`` option learned to - support :manual:`generator expressions `. diff --git a/Help/release/dev/java-updates.rst b/Help/release/dev/java-updates.rst deleted file mode 100644 index 8fd4ed69e..000000000 --- a/Help/release/dev/java-updates.rst +++ /dev/null @@ -1,16 +0,0 @@ -java-updates ------------- - -* 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. - -* The :module:`UseJava` module ``install_jar`` function learned - new ``DESTINATION`` and ``COMPONENT`` options to specify - the corresponding :command:`install` command options. - -* The :module:`UseJava` module gained a new ``create_javah`` - function to create C headers from Java classes. diff --git a/Help/release/dev/makefile-target-messages.rst b/Help/release/dev/makefile-target-messages.rst deleted file mode 100644 index 3d2cd9b12..000000000 --- a/Help/release/dev/makefile-target-messages.rst +++ /dev/null @@ -1,6 +0,0 @@ -makefile-target-messages ------------------------- - -* 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. diff --git a/Help/release/dev/mingw-compile-features-C.rst b/Help/release/dev/mingw-compile-features-C.rst deleted file mode 100644 index b3f99f1f6..000000000 --- a/Help/release/dev/mingw-compile-features-C.rst +++ /dev/null @@ -1,5 +0,0 @@ -mingw-compile-features-C ------------------------- - -* The :manual:`Compile Features ` functionality - is now aware of features supported by GNU C compilers on Windows. diff --git a/Help/release/dev/modules-no-soname.rst b/Help/release/dev/modules-no-soname.rst deleted file mode 100644 index 8fe74f8eb..000000000 --- a/Help/release/dev/modules-no-soname.rst +++ /dev/null @@ -1,7 +0,0 @@ -modules-no-soname ------------------ - -* 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. diff --git a/Help/release/dev/ms-manifest-files.rst b/Help/release/dev/ms-manifest-files.rst deleted file mode 100644 index 94fbe832e..000000000 --- a/Help/release/dev/ms-manifest-files.rst +++ /dev/null @@ -1,7 +0,0 @@ -ms-manifest-files ------------------ - -* 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. diff --git a/Help/release/dev/pkg-config-variable-function.rst b/Help/release/dev/pkg-config-variable-function.rst deleted file mode 100644 index e181d13e5..000000000 --- a/Help/release/dev/pkg-config-variable-function.rst +++ /dev/null @@ -1,6 +0,0 @@ -pkg-config-variable-function ----------------------------- - -* 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). diff --git a/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst b/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst deleted file mode 100644 index dd52acecc..000000000 --- a/Help/release/dev/remove-CMAKE_USE_RELATIVE_PATHS.rst +++ /dev/null @@ -1,5 +0,0 @@ -remove-CMAKE_USE_RELATIVE_PATHS -------------------------------- - -* The :variable:`CMAKE_USE_RELATIVE_PATHS` variable no longer has any - effect. Previously it was partially implemented and unreliable. diff --git a/Help/release/dev/restrict-shlib-link-flags-to-enable-exports.rst b/Help/release/dev/restrict-shlib-link-flags-to-enable-exports.rst deleted file mode 100644 index f8ce0448a..000000000 --- a/Help/release/dev/restrict-shlib-link-flags-to-enable-exports.rst +++ /dev/null @@ -1,6 +0,0 @@ -restrict-shlib-link-flags-to-enable-exports -------------------------------------------- - -* CMake no longer links executables with flags to export symbols - unless the :prop_tgt:`ENABLE_EXPORTS` target property is set. - See policy :policy:`CMP0065`. diff --git a/Help/release/dev/string-append.rst b/Help/release/dev/string-append.rst deleted file mode 100644 index 190b51ee7..000000000 --- a/Help/release/dev/string-append.rst +++ /dev/null @@ -1,4 +0,0 @@ -string-append -------------- - -* The :command:`string` command learned a new ``APPEND`` subcommand. diff --git a/Help/release/dev/target-directory-properties.rst b/Help/release/dev/target-directory-properties.rst deleted file mode 100644 index 5ab293853..000000000 --- a/Help/release/dev/target-directory-properties.rst +++ /dev/null @@ -1,5 +0,0 @@ -target-directory-properties ---------------------------- - -* 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. diff --git a/Help/release/dev/trace-expand.rst b/Help/release/dev/trace-expand.rst deleted file mode 100644 index 383326e3f..000000000 --- a/Help/release/dev/trace-expand.rst +++ /dev/null @@ -1,5 +0,0 @@ -trace-expand ------------- - -* Add ``--trace-expand`` argument to CMake. Acts like ``--trace``, but expands - variable references in the output. diff --git a/Help/release/dev/vs-nsight-tegra-attributes.rst b/Help/release/dev/vs-nsight-tegra-attributes.rst deleted file mode 100644 index 7ebea33d5..000000000 --- a/Help/release/dev/vs-nsight-tegra-attributes.rst +++ /dev/null @@ -1,21 +0,0 @@ -vs-nsight-tegra-attributes --------------------------- - -* :ref:`Visual Studio Generators` learned to support additonal - target properties to customize projects for NVIDIA Nsight - Tegra Visual Studio Edition: - - * :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` diff --git a/Help/release/dev/vs-win10-sdk.rst b/Help/release/dev/vs-win10-sdk.rst deleted file mode 100644 index 50eb39133..000000000 --- a/Help/release/dev/vs-win10-sdk.rst +++ /dev/null @@ -1,6 +0,0 @@ -vs-win10-sdk ------------- - -* 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. diff --git a/Help/release/index.rst b/Help/release/index.rst index b558e9df9..752acbd30 100644 --- a/Help/release/index.rst +++ b/Help/release/index.rst @@ -13,6 +13,7 @@ Releases .. toctree:: :maxdepth: 1 + 3.4 <3.4> 3.3 <3.3> 3.2 <3.2> 3.1 <3.1> From 19ce56e2746f3315d0697160f7d5e084ff1ef23d Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 2 Oct 2015 10:38:02 -0400 Subject: [PATCH 2/2] Help: Organize and revise 3.4 release notes Add section headers similar to the 3.3 release notes and move each individual bullet into an appropriate section. Revise a few bullets. --- Help/release/3.4.rst | 414 +++++++++++++++++++++++-------------------- 1 file changed, 226 insertions(+), 188 deletions(-) diff --git a/Help/release/3.4.rst b/Help/release/3.4.rst index 448ea35e0..8cc0796a3 100644 --- a/Help/release/3.4.rst +++ b/Help/release/3.4.rst @@ -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,6 +24,38 @@ Changes made since CMake 3.4 include the following. Xcode is too old). Then one may list ``.swift`` source files in targets for compilation. +Commands +-------- + +* 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 `. + +* The :command:`install(FILES)` command ``DESTINATION`` option learned to + support :manual:`generator expressions `. + +* 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 + :variable:`CMAKE__COMPILER_LAUNCHER` variable and + :prop_tgt:`_COMPILER_LAUNCHER` target property for details. + * New :variable:`CMAKE_LINK_SEARCH_START_STATIC` and :variable:`CMAKE_LINK_SEARCH_END_STATIC` variables were introduced to initialize the @@ -21,191 +63,8 @@ Changes made since CMake 3.4 include the following. :prop_tgt:`LINK_SEARCH_END_STATIC` target properties, respectively. -* 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 :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 - :variable:`CMAKE__COMPILER_LAUNCHER` variable and - :prop_tgt:`_COMPILER_LAUNCHER` target property for details. - -* The `Concurrent Fortran 77 `__ compiler is now supported. - Its :variable:`compiler id _COMPILER_ID>` is ``CCur``. - -* The :module:`CPackDeb` module now correctly excludes symlinks during package checksum calculation. - -* The :module:`CPackDeb` module learned to set package dependencies - per component. See :variable:`CPACK_DEBIAN__PACKAGE_PREDEPENDS`, - :variable:`CPACK_DEBIAN__PACKAGE_ENHANCES`, - :variable:`CPACK_DEBIAN__PACKAGE_BREAKS`, - :variable:`CPACK_DEBIAN__PACKAGE_CONFLICTS`, - :variable:`CPACK_DEBIAN__PACKAGE_PROVIDES`, - :variable:`CPACK_DEBIAN__PACKAGE_REPLACES`, - :variable:`CPACK_DEBIAN__PACKAGE_RECOMMENDS` and - :variable:`CPACK_DEBIAN__PACKAGE_SUGGESTS`. - -* :module:`CPackDeb` no longer uses fakeroot and system tar program for packaging. - -* The :module:`CPack` module learned to package empty directories. - -* 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 :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. - -* :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`. - -* 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. - -* The :module:`CMakeExpandImportedTargets` module is now documented - as deprecated. See module documentation for an explanation. - -* 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 - useful with the :generator:`Ninja` generator to monitor CMake - superbuild progress and prevent CPU oversubscription. - -* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a - new ``DEFINES_FILE`` option to specify a custom output header - to be generated. - -* The :module:`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 :module:`FindIce` module now provides imported targets. - -* 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:`FindProtobuf` module gained a new - :command:`protobuf_generate_python` function to generate python - sources from ``.proto`` files. - -* The :module:`FindTIFF` module learned to search separately for - debug and release variants. - -* The :module:`FindwxWidgets` module learned to support version requests. - -* The :module:`FindXercesC` module learned to search separately for - debug and release variants. - -* The :module:`FindZLIB` module learned to search separately for - debug and release variants. - -* A new ``$`` - :manual:`generator expression ` - 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 `. - -* The :command:`install(FILES)` command ``DESTINATION`` option learned to - support :manual:`generator expressions `. - -* 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. - -* The :module:`UseJava` module ``install_jar`` function learned - new ``DESTINATION`` and ``COMPONENT`` options to specify - the corresponding :command:`install` command options. - -* 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. - -* The :manual:`Compile Features ` 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 `. - -* The :prop_tgt:`OUTPUT_NAME` target property and its variants learned to - support :manual:`generator expressions `. - -* 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 :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. - -* 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. +Properties +---------- * :ref:`Visual Studio Generators` learned to support additonal target properties to customize projects for NVIDIA Nsight @@ -226,6 +85,185 @@ Changes made since CMake 3.4 include the following. * :prop_tgt:`ANDROID_SKIP_ANT_STEP` * :prop_tgt:`ANDROID_STL_TYPE` -* 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. +* 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 `. + +* 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 :prop_tgt:`OUTPUT_NAME` target property and its variants learned to + support :manual:`generator expressions `. + +* 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. + +* 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. + +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. + +* The :module:`ExternalProject` module learned new ``USES_TERMINAL`` + arguments for giving steps exclusive terminal access. This is + useful with the :generator:`Ninja` generator to monitor CMake + superbuild progress and prevent CPU oversubscription. + +* The :module:`FindBISON` module ``BISON_TARGET`` macro learned a + new ``DEFINES_FILE`` option to specify a custom output header + to be generated. + +* The :module:`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 :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 :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 + sources from ``.proto`` files. + +* The :module:`FindTIFF` module learned to search separately for + debug and release variants. + +* The :module:`FindwxWidgets` module learned to support version requests. + +* The :module:`FindXercesC` module learned to search separately for + debug and release variants. + +* The :module:`FindZLIB` module learned to search separately for + debug and release variants. + +* The :module:`GNUInstallDirs` module learned special default values + for certain installation prefixes according to the `GNU Coding + Standards`_ and the `Filesystem Hierarchy Standard`_. + +* The :module:`UseJava` module ``add_jar`` function learned + to support response files (e.g. ``@srcs.txt``) for source + specification. + +* The :module:`UseJava` module ``install_jar`` function learned + new ``DESTINATION`` and ``COMPONENT`` options to specify + the corresponding :command:`install` command options. + +* The :module:`UseJava` module gained a new ``create_javah`` + function to create C headers from Java classes. + +.. _`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 ``$`` + :manual:`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 :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__PACKAGE_BREAKS` + * :variable:`CPACK_DEBIAN__PACKAGE_CONFLICTS` + * :variable:`CPACK_DEBIAN__PACKAGE_ENHANCES` + * :variable:`CPACK_DEBIAN__PACKAGE_PREDEPENDS` + * :variable:`CPACK_DEBIAN__PACKAGE_PROVIDES` + * :variable:`CPACK_DEBIAN__PACKAGE_RECOMMENDS` + * :variable:`CPACK_DEBIAN__PACKAGE_REPLACES` + * :variable:`CPACK_DEBIAN__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 ` 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 :variable:`compiler id _COMPILER_ID>` is ``CCur``. + +* :manual:`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 :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. + +Other Changes +============= + +* The :module:`CheckFunctionExists`, :module:`CheckLibraryExists`, + :module:`CheckSymbolExists`, and :module:`FindThreads` modules learned to + work in environments where only CXX is enabled. + +* The :module:`CPackDeb` module now correctly excludes symlinks during package + checksum calculation. + +* The :module:`CPackDeb` no longer uses fakeroot and system tar program for + packaging. + +* 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. + +* 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.