Rationale:
Currently during creation of archive by 'tar',
if error appears, it interrupt archive creation.
As a result only part of files are archived
This behaviour is not consistent with 'copy_directory', native 'tar'
and other command behaviour.
With this Merge Request this behaviour is fixed.
Replicate behaviour of upstream GLEW.
* define the imported target GLEW::glew for the shared library GLEW
* if GLEW_USE_STATIC_LIBS is defined and set to TRUE, this module instead
defines the imported target GLEW::glew_s for the static library GLEW
* an imported target GLEW::GLEW is created as a copy of either GLEW::glew
or GLEW::glew_s
* by setting GLEW_VERBOSE you print out the log of the module.
Fixes: #17638, #17864, #18989
The user package registry populated by the `export()` command causes
side effects outside the build and source directories. Such effects
should be opt-in rather than op-out. Introduce a policy to change
default behavior of `export(PACKAGE)` to do nothing.
077ab5774c cmake: add short version of '--target <tgt>...' option
071f5e1544 cmake: Reformat '--parallel' and '--verbose' options in help
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3078
463c2fba4e Genex: Teach SHELL_PATH to support a list of paths
21da25d2a8 Tests: Generalize GeneratorExpression MSYS path conversion workaround
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3057
Extend the genex added by commit ca6ba3fee5 (Genex: Add a SHELL_PATH
expression, 2015-09-24, v3.4.0-rc1~37^2) to accept a `;`-list of paths,
convert them all, and generate a list separated by the native shell
`PATH``` separator.
The `FindOctave` module added by commit 170bcb6fdc (FindOctave: Add
module to find GNU octave, 2018-11-17, v3.14.0-rc1~283^2) has a few
problems in its implementation that need to be worked out before the
module can be included in a CMake release. These were missed during
review. Remove the module for now. It can be restored later with a
fresh review.
Issue: #18991
Add a `VS_NO_SOLUTION_DEPLOY` target property to explicitly specify for
each target whether to suppress VS solution deployment of the generated
target project.
Fixes: #18953
We now identify IBM's Clang-based XL compilers, which define
`__ibmxl__`, as `XLClang` rather than `XL`. In order to support
existing project code that checks for `XL`, add a policy whose OLD
behavior is to present the compiler id as `XL` and whose NEW behavior is
to present the compiler id as `XLClang` as we really detect it.
The original warning pre-dates support for install components.
There are now legitimate scenarios where an install(TARGETS)
command may list a target that is excluded from all, e.g.
hierarchical projects that will never install the component such a
target belongs to.
Fixes: #18938
The OLD behaviors of all policies are deprecated, but only by
documentation. Add an explicit deprecation diagnostic for policies
introduced in CMake 3.7 and below to encourage projects to port away
from setting policies to OLD.
5228432b45 cmake_parse_arguments: add KEYWORDS_MISSING_VALUES
8e746db6e1 cmake_parse_arguments: Factor out part of implementation for re-use
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2910