Refactoring in commit v3.10.0-rc1~103^2~2 (FindMPI: Modernization from
ground up, 2017-04-25) accidentally left this variable set as a copy of
the `;`-list in `MPI_<LANG>_COMPILE_OPTIONS`, but the flags variable is
documented as a command-line string. Restore it now.
Fixes: #18349
The format for the TAG file was changed in 3.12, and the way it was
read caused a regression which changed how the track was decided. This
commit fixes the regression.
Fixes#18347.
The `ctest --test-load` option is implemented in `StartNextTests` by not
starting any tests when the load is too high and instead sleeping and
then returning. Prior to commit v3.11.0-rc1~117^2 (CTest: Re-implement
test process handling using libuv, 2017-12-10) our outer loop in
`RunTests` would immediately call `StartNextTests` again. However, now
the `uv_run` loop may simply terminate if there are no tests running
because no events are left pending.
Fix this by converting the sleep in `StartNextTests` into a libuv timer
that it starts instead. This avoids leaving `uv_run` with no pending
events. In the case that there are other running tests this also allows
CTest to detect when they finish even if it during the wait period where
we previously slept.
This regression was not caught by the test suite because it only
verified that we do not start new tests when the load was too high and
not that we proceed to start tests when the load drops. Revise the test
suite to cover both.
Fixes: #18338
The memory size query implementations report in units of one mebibyte
(2^20). Clarify the unit in the documentation because "megabyte" might
also be interpreted as 10^6.
Since in some situations, ExternalProject module may be included in
a sub-directory, functions will be available in the global scope but
local variables like "_ep_keywords_<keyword>" will not be defined, this
commit checks and reports an error indicating that the ExternalProject
module must be explicitly included before using any of the ExternalProject_*
functions that require the module's inclusion within the current scope
or above.
Co-authored-by: Pablo Hernandez <pablo.hernandez@kitware.com>
Co-authored-by: Craig Scott <craig.scott@crascit.com>
As of now, it is not possible to find OpenSceneGraph in Debug because the only
variable find_package_handle_standard_args is checking is ${module}_LIBRARY
while the debug library is in ${module}_LIBRARY_DEBUG. The refactoring gets rid
of the old behaviour to replace with a call to select_library_configurations
which will populated ${module}_LIBRARY accordingly.
[Modules/Findosg_functions.cmake Modules/FindOpenThreads.cmake]
- Include SelectLibraryConfigurations module
- Modify the name of the variable that will be populated by the first
find_library to ${MODULE}_LIBRARY_RELEASE so that SelectLibraryConfigurations
can act on it
- Add call to select_library_configurations after attempting to find libraries
in debug and release
If a project or toolchain file hard-codes a tool location such as
`CMAKE_LINKER` with a plain `set()` then the value will be stored
in compiler information files but not cached. If the value is
not cached then we should not mark it as advanced because doing
so will initialize an empty cache entry.
Fixes: #18315
The custom command de-duplication added by commit v3.12.0-rc1~171^2 (VS:
Generate a custom command only in the least dependent target,
2018-03-23) accidentally also applied to the `CMakeLists.txt` file
reference we put in each target. This file reference comes with a
custom command that has no dependencies and that is safe to run
repeatedly across multiple targets (via internal stamp checking).
Therefore it should be excluded from the de-duplication so that
`CMakeLists.txt` references appear in all targets for human reference.
Fixes: #18310
Text inputs for "where is the source code" and "where to build the
binaries" had different amount of left spacing, so the two paths were
not aligned. This could create a feeling that you typed something wrong
in the input even though the paths were identical or had a common root
path.