When building for iOS, the compiled target is placed into a bundle.
If a single-configuration generator is used, like Makefiles or Ninja,
the try_compile FILE_COPY behavior fails to find the bundle, because
it only looks for the bundle inside a Debug subfolder (presumably
to support a multi-configuration generator like Xcode).
Consider looking for the bundle in the root try_compile folder, as
well as in the location specified by CMAKE_TRY_COMPILE_CONFIGURATION.
Closes: #19211
On macOS ranlib truncates the fractional part of the static achive
file modification time. If the archive and at least one contained
object file were created within the same second this will make look
the archive older than the object file. On subsequent ninja runs
this leads to re-achiving and updating dependent targets.
As a work-around we touch the archive after ranlib.
Closes: #19222
According to Intel MKL Link Line Advisor, there is no GNU Fortran
interface library provided for OS X variant of Intel MKL. Because of
this missing library, FindBLAS was failing on OS X, looking for
nonexistent library libmkl_gf_[i]lp64.
To prevent this, FindBLAS will now always use Intel Fortran interface
for MKL on OS X (libmkl_intel_[i]lp64), even with GNU Fortran.
Using "-x" we avoid overwriting .gcov files from source files in
different paths which happen to have the same name. It's similar to
"-p", but it produces shorter file names, reducing the risk of reaching
the file system limit.
Running gcov once per .gcda file is not only inefficient, it also
generates wrong data since .gcov files can get overwritten and in
general gcov works with less information.
fakegcov.cmake needs to be able to handle multiple .gcda files for the
test to be meaningful.
Manage alternate library name by passing -interface <library_name>
for python language or -dllimport <library_name> for CSharp language
to the SWIG compiler.
Fixes: #18771
On non-Windows platforms libuv assumes that file descriptors 0-2 are
always used for standard pipes and never for anything else. Otherwise,
libuv may re-use one of these descriptors and then fail an assertion
when closing it. Similarly, On Windows platforms our ConsoleBuf
implementation assumes that the standard handles are always open.
If CMake is run with any standard pipes closed, open them with
`/dev/null` or `NUL` to satisfy these assumptions.
Fixes: #19219
Use the word "Update" instead of "Test" in ctest_update's RunCMake tests.
This change was prompted because I noticed that UpdateChangeId-check.cmake
was not actually getting called during the relevant test case. This file
also had to be updated since its purpose is to detect an expected XML element
(not an attribute).
Use the infrastructure added by commit 646fb1a646 (CompileFeatures:
memoize C++ compilers with full language level support, 2019-03-27) to
avoid using a `try_compile` to check for C++14 feature support when the
running compiler is known to have all features.
4783b842ba iOS: Only set the CMAKE_FIND_ROOT_PATH_MODE_* variables when not defined
5f5e3062cf iOS: Only look for packages in the provided CMAKE_FIND_ROOT_PATHs
94c5fa5f7a iOS: Allow setting multiple CMAKE_FIND_ROOT_PATH values
1011350694 iOS: Allow specifying CMAKE_MACOSX_BUNDLE in toolchain file
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3273
75643755a1 cmGlobalVisualStudioGenerator: remove redundant variables
615fb2633c cmGlobalVisualStudioGenerator: use cmJoin to join the filenames
30c98db61b cmGlobalVisualStudioGenerator: use auto instead of iterator types
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3257
Supports versioned LLVM toolsets like LLVM_v142, LLVM_v141,
LLVM_v141_xp, etc. for Visual Studio (2010 and later).
The name for versioned LLVM toolsets has "LLVM_" prefix
plus MSVC toolset name (i.e. v142, v141, v141_xp, etc.).
Fixes: #19203