diff options
Diffstat (limited to 'Help')
-rw-r--r-- | Help/command/cmake_minimum_required.rst | 2 | ||||
-rw-r--r-- | Help/command/install.rst | 42 | ||||
-rw-r--r-- | Help/command/list.rst | 13 | ||||
-rw-r--r-- | Help/command/string.rst | 1 | ||||
-rw-r--r-- | Help/manual/cmake-buildsystem.7.rst | 2 | ||||
-rw-r--r-- | Help/manual/cmake.1.rst | 3 | ||||
-rw-r--r-- | Help/release/3.5.rst | 9 | ||||
-rw-r--r-- | Help/release/dev/FindProtobuf-version.rst | 6 | ||||
-rw-r--r-- | Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst | 6 | ||||
-rw-r--r-- | Help/release/dev/cpack-rpm-upper-cased-components.rst | 15 | ||||
-rw-r--r-- | Help/release/dev/error-multiple-targets.rst | 6 | ||||
-rw-r--r-- | Help/release/dev/install-EXCLUDE_FROM_ALL.rst | 5 | ||||
-rw-r--r-- | Help/release/dev/list-FILTER-command.rst | 5 | ||||
-rw-r--r-- | Help/release/dev/unix-timestamps.rst | 6 |
14 files changed, 97 insertions, 24 deletions
diff --git a/Help/command/cmake_minimum_required.rst b/Help/command/cmake_minimum_required.rst index 8573218..dc65a9e 100644 --- a/Help/command/cmake_minimum_required.rst +++ b/Help/command/cmake_minimum_required.rst @@ -5,7 +5,7 @@ Set the minimum required version of cmake for a project. :: - cmake_minimum_required(VERSION major[.minor[.patch[.tweak]]] + cmake_minimum_required(VERSION major.minor[.patch[.tweak]] [FATAL_ERROR]) If the current version of CMake is lower than that required it will diff --git a/Help/command/install.rst b/Help/command/install.rst index 5d2add7..aaf12cc 100644 --- a/Help/command/install.rst +++ b/Help/command/install.rst @@ -45,11 +45,15 @@ signatures that specify them. The common options are: is associated, such as "runtime" or "development". During component-specific installation only install rules associated with the given component name will be executed. During a full installation - all components are installed. If ``COMPONENT`` is not provided a - default component "Unspecified" is created. The default component - name may be controlled with the + all components are installed unless marked with ``EXCLUDE_FROM_ALL``. + If ``COMPONENT`` is not provided a default component "Unspecified" is + created. The default component name may be controlled with the :variable:`CMAKE_INSTALL_DEFAULT_COMPONENT_NAME` variable. +``EXCLUDE_FROM_ALL`` + Specify that the file is excluded from a full installation and only + installed as part of a component-specific installation + ``RENAME`` Specify a name for an installed file that may be different from the original file. Renaming is allowed only when a single file is @@ -72,12 +76,14 @@ Installing Targets [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE| PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE] [DESTINATION <dir>] - [INCLUDES DESTINATION [<dir> ...]] [PERMISSIONS permissions...] [CONFIGURATIONS [Debug|Release|...]] [COMPONENT <component>] - [OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP] - ] [...]) + [OPTIONAL] [EXCLUDE_FROM_ALL] + [NAMELINK_ONLY|NAMELINK_SKIP] + ] [...] + [INCLUDES DESTINATION [<dir> ...]] + ) The ``TARGETS`` form specifies rules for installing targets from a project. There are five kinds of target files that may be installed: @@ -97,11 +103,7 @@ change the type of target to which the subsequent properties apply. If none is given the installation properties apply to all target types. If only one is given then only targets of that type will be installed (which can be used to install just a DLL or just an import -library). The ``INCLUDES DESTINATION`` specifies a list of directories -which will be added to the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` -target property of the ``<targets>`` when exported by the -:command:`install(EXPORT)` command. If a relative path is -specified, it is treated as relative to the ``$<INSTALL_PREFIX>``. +library). The ``PRIVATE_HEADER``, ``PUBLIC_HEADER``, and ``RESOURCE`` arguments cause subsequent properties to be applied to installing a ``FRAMEWORK`` @@ -131,6 +133,14 @@ option installs nothing. See the :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties for details on creating versioned shared libraries. +The ``INCLUDES DESTINATION`` specifies a list of directories +which will be added to the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` +target property of the ``<targets>`` when exported by the +:command:`install(EXPORT)` command. If a relative path is +specified, it is treated as relative to the ``$<INSTALL_PREFIX>``. +This is independent of the rest of the argument groups and does +not actually install anything. + One or more groups of properties may be specified in a single call to the ``TARGETS`` form of this command. A target may be installed more than once to different locations. Consider hypothetical targets ``myExe``, @@ -172,7 +182,7 @@ Installing Files [PERMISSIONS permissions...] [CONFIGURATIONS [Debug|Release|...]] [COMPONENT <component>] - [RENAME <name>] [OPTIONAL]) + [RENAME <name>] [OPTIONAL] [EXCLUDE_FROM_ALL]) The ``FILES`` form specifies rules for installing files for a project. File names given as relative paths are interpreted with respect to the @@ -206,7 +216,8 @@ Installing Directories [DIRECTORY_PERMISSIONS permissions...] [USE_SOURCE_PERMISSIONS] [OPTIONAL] [MESSAGE_NEVER] [CONFIGURATIONS [Debug|Release|...]] - [COMPONENT <component>] [FILES_MATCHING] + [COMPONENT <component>] [EXCLUDE_FROM_ALL] + [FILES_MATCHING] [[PATTERN <pattern> | REGEX <regex>] [EXCLUDE] [PERMISSIONS permissions...]] [...]) @@ -282,7 +293,7 @@ Custom Installation Logic :: install([[SCRIPT <file>] [CODE <code>]] - [COMPONENT <component>] [...]) + [COMPONENT <component>] [EXCLUDE_FROM_ALL] [...]) The ``SCRIPT`` form will invoke the given CMake script files during installation. If the script file name is a relative path it will be @@ -307,7 +318,8 @@ Installing Exports [PERMISSIONS permissions...] [CONFIGURATIONS [Debug|Release|...]] [EXPORT_LINK_INTERFACE_LIBRARIES] - [COMPONENT <component>]) + [COMPONENT <component>] + [EXCLUDE_FROM_ALL]) The ``EXPORT`` form generates and installs a CMake file containing code to import targets from the installation tree into another project. diff --git a/Help/command/list.rst b/Help/command/list.rst index a7a05c7..f6b75bc 100644 --- a/Help/command/list.rst +++ b/Help/command/list.rst @@ -9,6 +9,7 @@ List operations. list(GET <list> <element index> [<element index> ...] <output variable>) list(APPEND <list> [<element> ...]) + list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>) list(FIND <list> <value> <output variable>) list(INSERT <list> <element_index> <element> [<element> ...]) list(REMOVE_ITEM <list> <value> [<value> ...]) @@ -23,6 +24,12 @@ List operations. ``APPEND`` will append elements to the list. +``FILTER`` will include or remove items from the list that match the +mode's pattern. +In ``REGEX`` mode, items will be matched against the given regular expression. +For more information on regular expressions see also the :command:`string` +command. + ``FIND`` will return the index of the element specified in the list or -1 if it wasn't found. @@ -38,9 +45,9 @@ difference is that ``REMOVE_ITEM`` will remove the given items, while ``SORT`` sorts the list in-place alphabetically. -The list subcommands ``APPEND``, ``INSERT``, ``REMOVE_AT``, ``REMOVE_ITEM``, -``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create new values for -the list within the current CMake variable scope. Similar to the +The list subcommands ``APPEND``, ``INSERT``, ``FILTER``, ``REMOVE_AT``, +``REMOVE_ITEM``, ``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create new +values for the list within the current CMake variable scope. Similar to the :command:`set` command, the LIST command creates new variable values in the current scope, even if the list itself is actually defined in a parent scope. To propagate the results of these operations upwards, use diff --git a/Help/command/string.rst b/Help/command/string.rst index 0361c74..3f4050e 100644 --- a/Help/command/string.rst +++ b/Help/command/string.rst @@ -277,6 +277,7 @@ specifiers: %j The day of the current year (001-366). %m The month of the current year (01-12). %M The minute of the current hour (00-59). + %s Seconds since midnight (UTC) 1-Jan-1970 (UNIX time). %S The second of the current minute. 60 represents a leap second. (00-60) %U The week number of the current year (00-53). diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst index 4a04f31..9004bb2 100644 --- a/Help/manual/cmake-buildsystem.7.rst +++ b/Help/manual/cmake-buildsystem.7.rst @@ -427,7 +427,7 @@ specified will be calculated: ) add_library(lib1Version3 SHARED lib1_v3.cpp) - set_property(TARGET lib1Version2 PROPERTY INTERFACE_CONTAINER_SIZE_REQUIRED 1000) + set_property(TARGET lib1Version3 PROPERTY INTERFACE_CONTAINER_SIZE_REQUIRED 1000) add_executable(exe1 exe1.cpp) # CONTAINER_SIZE_REQUIRED will be "200" diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index 92f5230..5295a48c 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -58,13 +58,14 @@ Options <dir> = Project binary directory to be built. --target <tgt> = Build <tgt> instead of default targets. + May only be specified once. --config <cfg> = For multi-configuration tools, choose <cfg>. --clean-first = Build target 'clean' first, then build. (To clean only, use --target 'clean'.) --use-stderr = Ignored. Behavior is default in CMake >= 3.0. -- = Pass remaining options to the native tool. - Run cmake --build with no options for quick help. + Run ``cmake --build`` with no options for quick help. ``-N`` View mode only. diff --git a/Help/release/3.5.rst b/Help/release/3.5.rst index 3d1e3b4..009eb3c 100644 --- a/Help/release/3.5.rst +++ b/Help/release/3.5.rst @@ -159,14 +159,17 @@ Other Deprecated and Removed Features =============================== -* The :module:`CMakeForceCompiler` module and its macros are now deprecated. - See module documentation for an explanation. - * The :manual:`cmake(1)` ``-E time`` command now properly passes arguments with spaces or special characters through to the child process. This may break scripts that worked around the bug with their own extra quoting or escaping. +* The :generator:`Xcode` generator was fixed to escape backslashes in + strings consistently with other generators. Projects that previously + worked around the inconsistecy with an extra level of backslashes + conditioned on the Xcode generator must be updated to remove the + workaround for CMake 3.5 and greater. + Other Changes ============= diff --git a/Help/release/dev/FindProtobuf-version.rst b/Help/release/dev/FindProtobuf-version.rst new file mode 100644 index 0000000..2bfd9f4 --- /dev/null +++ b/Help/release/dev/FindProtobuf-version.rst @@ -0,0 +1,6 @@ +FindProtobuf-version +-------------------- + +* The :module:`FindProtobuf` module learned to provide a ``PROTOBUF_VERSION`` + variable and check the version number requested in a :command:`find_package` + call. diff --git a/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst b/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst new file mode 100644 index 0000000..b0d6196 --- /dev/null +++ b/Help/release/dev/cpack-deb-autodep-ORIGIN-RPATH.rst @@ -0,0 +1,6 @@ +cpack-deb-autodep-ORIGIN-RPATH +-------------------------------- + +* The "CPackDeb" module learned how to handle ``$ORIGIN`` + in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` + is used for dependency auto detection. diff --git a/Help/release/dev/cpack-rpm-upper-cased-components.rst b/Help/release/dev/cpack-rpm-upper-cased-components.rst new file mode 100644 index 0000000..a5fb233 --- /dev/null +++ b/Help/release/dev/cpack-rpm-upper-cased-components.rst @@ -0,0 +1,15 @@ +cpack-rpm-upper-cased-components +-------------------------------- + +* The "CPackRPM" module now supports upper cased component name + in per component CPackRPM specific variables. + E.g. component named ``foo`` now expects component specific + variable to be ``CPACK_RPM_FOO_PACKAGE_NAME`` while before + it expected ``CPACK_RPM_foo_PACKAGE_NAME``. + Upper cased component name part in variables is compatible + with convention used for other CPack variables. + For back compatibility old format of variables is still valid + and prefered if both versions of variable are set, but the + preferred future use is upper cased component names in variables. + New variables that will be added to CPackRPM in later versions + will only support upper cased component variable format. diff --git a/Help/release/dev/error-multiple-targets.rst b/Help/release/dev/error-multiple-targets.rst new file mode 100644 index 0000000..060b26b --- /dev/null +++ b/Help/release/dev/error-multiple-targets.rst @@ -0,0 +1,6 @@ +error-multiple-targets +---------------------- + +* The :manual:`cmake(1)` ``--build`` command-line tool now rejects multiple + ``--target`` options with an error instead of silently ignoring all but the + last one. diff --git a/Help/release/dev/install-EXCLUDE_FROM_ALL.rst b/Help/release/dev/install-EXCLUDE_FROM_ALL.rst new file mode 100644 index 0000000..a611eae --- /dev/null +++ b/Help/release/dev/install-EXCLUDE_FROM_ALL.rst @@ -0,0 +1,5 @@ +install-EXCLUDE_FROM_ALL +------------------------ + +* The :command:`install` command learned a new ``EXCLUDE_FROM_ALL`` option + to leave installation rules out of the default installation. diff --git a/Help/release/dev/list-FILTER-command.rst b/Help/release/dev/list-FILTER-command.rst new file mode 100644 index 0000000..3fee4f0 --- /dev/null +++ b/Help/release/dev/list-FILTER-command.rst @@ -0,0 +1,5 @@ +list-FILTER-command +------------------- + +* The :command:`list` command gained a ``FILTER`` sub-command to filter + list elements by regular expression. diff --git a/Help/release/dev/unix-timestamps.rst b/Help/release/dev/unix-timestamps.rst new file mode 100644 index 0000000..cdb0e5b --- /dev/null +++ b/Help/release/dev/unix-timestamps.rst @@ -0,0 +1,6 @@ +unix-timestamps +--------------- + +* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)` + commands gained support for the ``%s`` placeholder. This is + the number of seconds since the UNIX Epoch. |