Avoid passing the output of our `try_compile` through a macro argument.
Macro invocations re-parse their arguments and so should not be given
arbitrary content that may contain backslashes and such.
Instead pass a simple message. This is also more readable in the case
that the macro generates a message itself. After the macro returns,
report the real output directly to the variable named by our caller.
Also record the output in a log file as other checks do on failure.
Fixes: #18244
Simplify the test for whether a `RESULT` argument was given to the
`check_ipo_supported` call. Also do not set an empty variable name
if `OUTPUT` was not given.
AUTOMOC used to fail to generate ``moc_predefs.h`` when ``ccache`` was used
as a compiler starter by e.g. configuring a project with the environment
variable CXX="ccache g++".
The reason was that ``CMAKE_<LANG>_COMPILER_ARG1`` wasn't respected in the
definition of ``CMAKE_<LANG>_COMPILER_PREDEFINES_COMMAND`` for various
compilers. This is fixed by this patch.
Fixes#17275.
NDK r18 drops GCC toolchains and some STL types. We need to choose a
clang toolchain by default when no gcc toolchains are available. Switch
the STL type default to `c++_static` when the old `gnustl_static`
default is not available.
Update the test suite to not run tests for STL types that do not exist.
Also do not expect the gcc toolchain `cpp` tool to be available because
r18 does not provide it. Also teach it to tolerate `gcc -dumpmachine`
output like `arm--linux-android` that differs from the toolchain prefix.
Fixes: #18301
Use `curand_static` to identify directories containing device libraries
because `cublas_device` is deprecated and will be removed in the future.
Issue: #18290
00a5836a3d FindXercesC: Correct order of version detection and versioned library checks
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2259
Since commit v3.12.0-rc1~332^2 (FindCUDA/select_compute_arch: Add
support for CUDA as a language, 2018-03-15) this module sets
`CUDA_VERSION` based on `CMAKE_CUDA_COMPILER_VERSION` when the language
is enabled. Limit it to two components for consistency with the
normal `FindCUDA` documentation and behavior.
Fixes: #18231
The XL compiler does not have a dedicated "pie" option so use at least
`-qpic`. This missing setting was exposed by the `ExportImport` and
`PositionIndependentTargets` tests with XL on an ELF platform.
In commit v3.12.0-rc1~136^2 (CPack: Use project version as default for
`CPACK_PACKAGE_VERSION`, 2018-04-29) we did not account for the value of
`CMAKE_PROJECT_VERSION_{MAJOR,MINOR,PATCH}` having `0`. Fix the logic
to distinguish between unprovided version components and `0` components.
While at it, add a test case covering the behavior described in the
documentation by the original commit. The number of version components
in the package name should match those provided to the `project()`
command `VERSION` option.
Fixes: #18199
If policy settings at the time the GoogleTest module is included are
such that CMP0057 is unset or set to OLD, the use of IN_LIST with
if() will lead to an error. Therefore, explicitly specify the policy
settings for the whole file to ensure the function implementations
have access to the required CMake features.
Fixes: #18198