Callgrind indicated that `strlen` was being called a lot of times here
due to the string comparisons. Since keywords are "sparse" in
`add_custom_command`, use a hash comparison to handle keywords and then
use strings for comparison since they have a built-in length parameter.
This is to avoid scope issues with CTEST_RUN_CURRENT_SCRIPT. If
ctest_start() is called within a function scope, the value of
CTEST_RUN_CURRENT_SCRIPT that it sets doesn't make it to the global
scope. With this change, ctest_start() no longer sets
CTEST_RUN_CURRENT_SCRIPT, and instead sets a field directly in
cmCTestScriptHandler. The old behavior of CTEST_RUN_CURRENT_SCRIPT
has also been kept for projects and tests that rely on setting it.
e6a80ccf Make use of std::chrono throughout every component
ff62b005 CTest: add safe conversion from cmDuration to integer types
695951bc CTest: introduce cmDuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1592
Extend the maintainer guide with a reminder to self-review the
new ancestry of the `release` and `master` branches to ensure
that nothing unexpected was merged.
c4dc6485 XL: Enable use of response files for includes and objects
e342e410 Makefile,Ninja: Use tool-specific response file flag for include dirs
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1691
239a3ef8 Server-mode: Document protocol version for optional handshake arguments
9b1a3d24 Server-mode: Rename functions to reflect what they do
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1693
When we use a response file for `-I` flags, not all compilers support
the `@<file>` syntax. Define `CMAKE_<LANG>_RESPONSE_FILE_FLAG` to
specify tool-specific flag, just as we do for linking already via
`CMAKE_<LANG>_RESPONSE_FILE_LINK_FLAG`.
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit 0579db1c97715f9936523dd473c0ed7613b68e68 (master).
Upstream Shortlog
-----------------
Ben Boeckel (1):
3e807fd6 cmake: specify source file extensions
Brad King (1):
38855ca1 Set CMP0042 explicitly with CMake 3.0 and above
Chuck Atkins (1):
4ca97fc6 SystemTools: Disable getpwnam for static linux builds
Hans Johnson (1):
7d7f3b2d Configure: Add KWSYS_NULLPTR macro for C++ code
Sankhesh Jhaveri (1):
20c458d0 Set CMP0022 policy to new to provide link interface definitions
Sean McBride (1):
c6829e4d Fixed a few comments, mostly regarding base 2 vs base 10 sizes
luz.paz (1):
4b67f965 Remove superfluous double whitespace in appropriate places
Document which Protocol version only needs the build directory to be passed
during a handshake.
This is available a bit earlier than that, but from all I can tell 1.2 is
the earliest version where that feature is reliably available.
When `cmake.exe` is executed through a symlink, `GetModuleFileNameW`
will return location of the link instead of the real path of
`cmake.exe`. This results in the following error output:
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Use `cmSystemTools::GetRealPath` in `FindCMakeResources` on Windows
to resolve any symlink returned by `GetModuleFileNameW`.