This family enable to manage link flags
Three new properties:
* directory property: LINK_OPTIONS
* target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS
Two new commands
* add_link_options(): to populate directory property
* target_link_options(): to populate target properties
Fixes: #16543
Intel compilers define `__cpp_constexpr` to `200704` even in C++14 mode.
This indicates that the `cxx_relaxed_constexpr` feature is not
available. However, Intel 17 and above document support for it. In
commit v3.8.0~9^2 (Features: Update features for Intel C++ 17.0.2 on
UNIX, 2017-03-31) we added a special check for this case. Intel 17 and
19 work. However, Intel 18 does not seem to work and fails our test
case. Add a special case to disable the feature for Intel 18.
Generalize the fix in commit v3.11.0-rc4~8^2 (ExternalProject: Fix cache
generation when last args ends with "-NOTFOUND", 2018-03-10) to work for
any argument rather than just the last one.
ExternalProject can now successfully generate the cache file when any
(not only the last one) cache variable associated with either
`CMAKE_CACHE_ARGS` or `CMAKE_DEFAULT_CACHE_ARGS` configure step option
is set to a `<value>` ending with `-NOTFOUND`.
In commit a203fcc63d (cmake: Teach '-E tar' to report errors copying
data, 2018-05-16) we introduced use of `la_ssize_t` but that was not
available until libarchive 3.3.1. Switch to the `__LA_SSIZE_T` macro
we use elsewhere.
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit 8ef62b289e0a99856893ef49106c2b2d94e9dd0c (master).
Upstream Shortlog
-----------------
Brad King (2):
6b9c233c clang-format.bash: update to clang-format-6.0
b7a341cf Empty commit at end of history preceding clang-format-6.0 style transition
Kitware Robot (1):
828b6837 Revise C++ coding style using clang-format-6.0
d7204e649e Revise C++ coding style using clang-format-6.0
12fed3edb1 Empty commit at end of history preceding clang-format-6.0 style transition
523c443d13 clang-format.bash: update to clang-format-6.0
eb7ec19c1c clang-format: Add comments to suppress some formatting
b67a5bf175 Tests/VSWinStorePhone: Do not format managed source
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sebastian Holtermann <sebholt@xwmw.org>
Merge-request: !2123
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
This is an empty commit that precedes an automatic application of
clang-format-6.0 to update the C++ style of our entire source tree.
This may be helpful to rebase a topic branch that was originally
based on a commit preceding the transition. One may first rebase
the topic on this commit. Then use one of the following approaches.
* Rewrite the topic, including this commit, using `git filter-branch`
`--tree-filter` with `clang-format.bash` to update the style in
every commit. Rebase the revised topic, excluding the rewrite of
this commit, on the style transition commit.
OR
* Add a `.git/info/grafts` entry to change the parent of the first
commit in the topic from this commit to the style transition commit.
Rewrite the topic using `git filter-branch --tree-filter` with
`clang-format.bash` to update the style in every commit. Then
remove the graft, which was resolved by the filter.
See `git help filter-branch` and `git help repository-layout` for
details.
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before. Then revise the style:
* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`
Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`. This will aid
external infrastructure in knowing what version of the tool to run.
Moves `CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND` from linux specific
[Modules/Platform/Linux-GNU.cmake](Modules/Platform/Linux-GNU.cmake) to
[Modules/Compiler/GNU.cmake](Modules/Compiler/GNU.cmake).
This enables compiler predefines generation (in AUTOMOC) on all
platforms that run gcc (and clang).