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.
e0c26406aa Autogen: Sort tests
83bbfb1d53 Autogen: Add a definitions test to the MocOnly test
01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2610
a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
bfbc5241e9 Help: Fix policy markup example in cmake-developer(7)
3e5a047f1a Help: Drop compile features section from cmake-developer(7) manual
06cc050c1f Help/dev: Drop 'size_t' preference from source code guide
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2615
22cca9b810 Help: describe differences between macro and function.
b90ae70a3b Help: in macro vs function example, use lowercase names.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2616
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.
Remove this content from the `cmake-developer(7)` manual because it
is relevant only to developers working on CMake itself. Move it to
a guide in the developer documentation.
We no longer add granular compile features. Only language standard
meta features like `cxx_std_##`` need to be added, and these can
be done by following existing patterns.
The new ``cmQtAutoGenInitializer::InfoWriter`` class provides an
interface to write strings/vectors/sets/maps in CMake format
into a file. Its use replaces various `cmJoin` calls that
failed to address escaping of semicolons in list elements.
Closes#18554
Represent the input file path internally in canonical form. Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake. This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.
Also canonicalize the output path for consistency.
Add a test case.
Fixes: #18584
abb5945bd0 Help: Document that function invocation is case-insensitive
357cdee3a1 Help: Document that macro invocation is case-insensitive
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2607
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