This change returns information for INTERFACE_SOURCES. We add
a flag to the filegroup to indicate if the target represents
interface sources.
Protocol version is updated to 1.3 since this is a change to what was
released in cmake version 3.12.
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.
By adding the "if (NOT BLAS_LIBRARIES)" statement to the Intel MKL
detection code block we have unintentionally turned Intel MKL from
the most preferred into the least preferred BLAS library. To fix
this issue the Intel MKL detection code block needs to be moved
forward to make it the first explicit BLAS library we test for.
This is change does just that and re-instates Intel MKL as the
most preferred explicit BLAS library.
All non-Intel BLAS library detection blocks have an if-statement
"if (NOT BLAS_LIBRARIES)" to ensure that if a BLAS library was
found we are not going to try and find another one. This causes
a problem when we have already found that we do not need to specify
a BLAS library, as the Intel MKL library takes precedence over
everything. Introducing the "if (NOT BLAS_LIBRARIES)" if-statement
fixes this problem.
Run the Check_Fortran_Libraries macro with an *empty* list of libraries
to detect whether the compiler implicitly links BLAS. If this works,
set `BLAS_LIBRARIES` to a placeholder value to get through the rest of
our logic. At the end replace the placeholder by a real empty string
again to report to callers.
Sphinx-build warnings look like this:
../path/to/file.rst:105: WARNING: This is not an error.
CTest detects these as errors by this regex:
([^ :]+):([0-9]+): ([^ \\t])
Add an exception as we already have for lower-case `: warning`.
fb73edf70c cmake: Drop unnecessary working mode checks
bd7dd6d414 cmake: Declare VariableWatch member only when used
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2326
This explicitly uses C linkage for the library code used by the test to work
around some compilers (Solaris Studio 12.4) that implicitly assume incorrect
linkage information. Since something else entirely is being tested here,
this allows the test to proceed as needed on the affected platforms.
In `cmake::Run` we return before `Configure` or `Generate` when
not working in normal mode so they do not need mode checks.
While at it, remove a long-outdated comment about when to save the
cache.
Sanitizers do not create a log file when no defects are found. Therefore,
it is currently impossible for ctest_memcheck to set both
`CAPTURE_CMAKE_ERROR` and `RETURN_VALUE` to zero.
With defects, `CAPTURE_CMAKE_ERROR`=0 and `RETURN_VALUE`=-1, as expected.
With no defects, `CAPTURE_CMAKE_ERROR`=-1 and `RETURN_VALUE`=0.
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