| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modern Intel MKL packages offer 64-bit BLAS and LAPACK libraries in any
of the eight combinations of the following three binary options:
- sequential or threaded
- LP64 or ILP64
- static or shared
The modules FindBLAS and FindLAPACK did not allow full selection of
arbitrary combination; in particular, only LP64 variant was used.
The original list of possible BLA_VENDOR values related to MKL,
Intel10_64lp
Intel10_64lp_seq
is thus extended by another pair of "vendors",
Intel10_64ilp
Intel10_64ilp_seq
Depending on the selection, either "_lp64", or "_ilp64" MKL libraries
are searched for. Some comments in the two CMake modules were modified
to indicate that even though the "vendors" contain the number "10",
they also apply to all further versions of MKL.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit v3.11.0-rc1~177^2 (FindBLAS: optionally query pkg-config
for a library, 2017-12-15) the `BLAS_LIBRARIES` result variable may
incorrectly contain the name of an imported target. Instead store the
list of libraries in the variable. Unfortunately pkg_check_modules does
not provide a way to get this so we need to use a (temporary) hack of
reading `INTERFACE_LINK_LIBRARIES` from the interface library target.
Fixes: #17934
|
|
|
|
|
|
| |
This is more or less what Gentoo implements for years, but in a more
sophisticated version that uses the target mode now offered by
pkg_check_modules().
|
| |
|
| |
|
|
|
|
|
|
|
| |
FLAME (github.com/flame) provides a variety of numerical libraries.
`blis` and `libflame` can be setup to expose BLAS/LAPACK interfaces.
Fixes: #17470
|
|
|
|
| |
Closes #16624
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
|
|
|
|
|
| |
Use `CMAKE_<LANG>_COMPILER_LOADED` to detect enabled languages because
`if( _LANGUAGES_ MATCHES C )` is always true on Windows as the RC
language is activated automatically and matches C.
|
|
|
|
| |
OpenBLAS (www.openblas.net) is the successor to GotoBLAS.
|
|
|
|
|
|
|
| |
The if(STREQUAL) expressions do not support globbing expressions.
Use regular experssions with MATCHES instead.
Reported-by: Yahui Wang <youngqv@foxmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
All these expressions work the same:
"foo"
".*foo.*"
"^.*foo.*$"
This assumes that the "Intel*" expressions were meant to be "Intel.*".
|
|
|
|
|
|
|
|
|
|
| |
Fixes issues #14812 and #14813 where find_package(OpenMP QUIET) and
find_package(Qt4 QUIET) would still print out messages when calling
check*() functions.
Also a partial fix for #14445 where building CMake
(without cmake-gui) when Qt5 is installed and Qt4 is not installed
and warnings come out of FindQt4.cmake.
|
|
|
|
|
|
|
|
| |
Run the convert-help.bash script to convert documentation:
./convert-help.bash "/path/to/CMake-build/bin"
Then remove it.
|
| |
|
|
|
|
|
|
| |
This solves a lots of warnings, e.g. in the FindModulesExecuteAll test. If the
installed version on the system is rather old this may even lead to bugs, e.g.
https://bugs.gentoo.org/show_bug.cgi?id=436540
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the
block. This is no longer the preferred style.
Run the following shell code:
for c in else endif endforeach endfunction endmacro endwhile; do
echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
egrep -z -v 'Tests/CMakeTests/While-Endwhile-' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
af80da3 remove lib64 Unix paths if the respective lib path is also given
733726e find_library: Fix mixed lib->lib64 (non-)conversion cases (#13419)
54add62 find_library: Simplify lib->lib<arch> expansion
6ca2f82 find_library: Refactor lib->lib64 conversion
1fe4b82 find_library: Add test covering lib->lib64 cases
|
| |
| |
| |
| | |
If FIND_LIBRARY_USE_LIB64_PATHS is set both will be searched anyway.
|
|/ |
|
| |
|
|
|
|
|
| |
fixed: CMAKE_FIND_LIBRRAY_SUFFIXES misprint
added: ATLAS vendor to FindLAPACK module
|
|
|
|
|
|
|
|
| |
fixed: saving/changing/restoring CMAKE_FIND_LIBRARY_SUFFIXES variable.
fixed: BLA_VENDORs "Apple" (Accelerate Framework) and
"NAS" (vecLib Framework) fail as 'cblas_dgemm_' doesn't exist.
fixed: improve "Generic" detection on Ubuntu (and I assume Debian)
(work with libblas3gf and liblapack3gf packages).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This adds copyright/license notification blocks CMake's find-modules.
Many of the modules had no notices at all. Some had notices referring
to the BSD license already. This commit normalizes existing notices and
adds missing notices.
|
|
|
|
| |
Alex
|
| |
|
|
|
|
| |
have three new variables BLA_VENDOR (you can specify the VENDOR), BLA_STATIC (gets the static version of libs), BLA_F95 (gets the fortran 95 interface). BLA_VENDOR can be specified as an environment variable. Intel mkls libs need FindThreads to be found correctly so you will need to enable the C/CXX
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
implementations of blas and lapack libraries. CheckFortranFunctionExists.cmake provides a test function to check if the library is usabale. I have also changed the -KPIC flag to -fPIC in Linux-ifort.cmake.
|