6d7c074055 cmAlgorithms: Speed up cmRemoveDuplicates method
281f59536f IWYU: Define a macro to tell code it is preprocessing for iwyu
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2101
GCC 8.1.0 now gives an error if `strncpy` is called with a bound
depending on the length of the source argument. Replace `strncpy` with
`strcpy` as the length is known a priori.
Fixes: #18038
The use of `uv_fs_realpath` introduced by commit v3.11.0-rc1~445^2~1
(cmSystemTools: Implement GetRealPath on Windows, 2017-10-02) causes
`subst` drives to be expanded on Windows, breaking existing use cases.
Revert its use until an alternative implementation can be chosen.
Preserve the behavior introduced by commit v3.11.0-rc1~445^2
(cmTimestamp: For symlinks switch to timestamp of resolved path,
2017-10-02) by retaining use of `uv_fs_realpath` in a function of
a different name.
Fixes: #18033
Issue: #17206
Add new `version=` parameter in the toolset setting to select the
version. Add variable `CMAKE_VS_PLATFORM_TOOLSET_VERSION` to hold the
version, if one is set (blank indicates default).
Fixes: #17549
e7e25c6cb6 cmVisualStudio10TargetGenerator: Remove empty Elem::EndElement()
726c090297 cmVisualStudio10TargetGenerator: close XML tag in Elem destructor
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2109
There are some cases where satisfying IWYU breaks compilation, such as
forward-declaring the `std::hash<>` template with C++ standard libraries
that use an inline namespace inside `std`. Define a macro during
include-what-you-use preprocessing so that code can adapt.
The `<CMAKE_CUDA_LINK_FLAGS>` placeholder in CUDA rule variables comes
from the `<CMAKE_CXX_LINK_FLAGS>` placeholder from which the CUDA rule
variables were originally derived. It is not a public interface for
adding link flags so no projects should be using it. It is needed for
platform information modules to specify platform-specific link flags for
the language. None of our platform modules set it, so it is unused.
Furthermore, it is broken as currently implemented. Some of the
contexts in which it is used need `-Xlinker` and some do not.
Therefore it is not possible to use the placeholder at all.
Simply remove it for now. If some need for platform-specific CUDA link
flags arises a new solution will be needed.
While we already support `cmake --build . -- -j`, the options after `--`
are specific to the native build tool. Add new options `--parallel
[<N>]` and `-j [<N>]` to abstract this and map to the proper option
for the native build tool.
f5d19260f9 FindLua: Search for lua.h using more conventional paths
9455512d22 FindLua: Add tests for this module
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2095
Do not constrain the search to `include/*`. To provide compatibility
the foreach-loop is still used. However `include/xxx` and `xxx` is now
both searched. This honors now e.g. CMAKE_INCLUDE_PATH.
Fixes: #17999
0887c993aa FindBZip2: Populate BZIP2_INCLUDE_DIRS result variable
a8bf1ea5b7 FindBZip2: Format result variable docs as definition list
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2097