The module FindBLAS now correctly chooses MKL BLAS libraries to search,
based on the compiler ID. The MKL libraries needed for BLAS functionality
are the following:
libmkl_{gf|intel}_{lp64|ilp64}.{a|so}
libmkl_{gnu|intel}_thread.{a|so} (or libmkl_sequential.{a|so})
libmkl_core.{a|so}
libm
libdl
lib{gomp|iomp5}.{a|so} (only with libmkl_*_thread.*)
To achieve the goal, the following internal variables are defined and used:
BLAS_mkl_INTFACE = "gf" or "intel" (based on compiler ID)
BLAS_mkl_THREADING = "gnu" or "intel" (based on compiler ID)
BLAS_mkl_OMP = "gomp" or "iomp5" (based on compiler ID)
BLAS_mkl_LM = "-lm" (not set on Windows)
BLAS_mkl_DL = "-ldl" (not set on Windows)
The default values for the first three of them are "intel" and "iomp5",
unless a Fortran compiler is loaded with CMAKE_Fortran_COMPILER_ID
equal to "GNU"; in such case the "gf", "gnu" and "gomp" values are used.
In non-Windows systems, the thread library as well as libm and libdl are
now added to the linker line to allow static linking of libgomp.
In particular, make clear that package/installer generators
are not the makefile generators of the cmake command.
Also insert sections in CPack doc, and capitalize section titles.
Removing FindQt.cmake gives Qt upstream a path forward to export its
own QtConfig.cmake files which can be found by find_package()
without having to explicitly specify CONFIG. Projects that still
want to use Qt3/4 can call find_package(Qt[34]), include(FindQt),
or add FindQt.cmake to their CMAKE_MODULE_PATH.
FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
${PREFIX}/share/info, 2018-11-10) changed the "info" destination
from "info" to "share/info". The commit included a patch to their
distribution of CMake to fix the `GNUInstallDirs` module too.
Apply a similar logic change to our upstream version of the module.
We already made a similar change for GNU/kFreeBSD in commit
v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
GNU/kFreeBSD, 2018-10-21).
Fixes: #18585
c4b4d8b3a6 POSITION_INDEPENDENT_CODE: Manage link flags for executables
724a0346f7 POSITION_INDEPENDENT_CODE: Fix erroneous '-fPIE' flag for Sun Studio
023188ffb4 INTERFACE_POSITION_INDEPENDENT_CODE: add generator expressions support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2465
Add recognition of compiler version and prefix for clang.
Accommodate changes to version numbering scheme for GCC 5+ and clang 4+
- Minor number becomes patch, so excluded it from compiler prefix.
- Improves searching for Boost 1.69+ libraries built with GCC 5+ and
clang 4+, where library names are generated with compiler tag based on
major version only eg. -gcc5 for GC 5.5.0 or -clang6 for clang 6.0.0
- Follows up related changes in upcoming Boost 1.69
https://github.com/boostorg/build/pull/349
Dump detected compiler version in Boost_DEBUG message.
Replace use of CMAKE_COMPILER_IS_GNUCXX with CMAKE_CXX_COMPILER_ID.
Add missing vendor table entries for Clang and AppleClang to identify
them. Previously this worked only if Clang was also enabled as a C or
CXX compiler first because we used to copy the C compiler id. However,
that was removed by commit v3.13.0-rc1~44^2 (ASM: Search for full path
even when using C or C++ compiler, 2018-09-26).
Fixes: #18575
Add the system thread library to Boost_LIBRARIES when the boost thread
component has been found.
The Boost::thread imported target already pulls in Threads::Threads.
This changes does the same for projects using the Boost_LIBRARIES variable
instead.
f5c46dd84e PkgConfig: Be less verbose by mark(ing)_as_advanced the find_library result
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !2576