summaryrefslogtreecommitdiffstats
path: root/Modules/FindBLAS.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Find{BLAS,LAPACK}: Avoid clobbering results when no vendor is requestedBrad King2021-07-121-2/+2
| | | | | | | | | | | | Logic added by commit 4c74c86f40 (FindBLAS/LAPACK: Add support for the Fujitsu SSL2 library, 2021-01-27, v3.21.0-rc1~402^2~1) accidentally expressed a boolean condition without proper grouping. The pattern was then copied by commit 2c9e623e31 (Find{BLAS,LAPACK}: Add support for the NVHPC LAPACK library, 2021-05-05, v3.21.0-rc1~192^2). The resulting logic incorrectly tries Fujitsu and NVHPC vendors even after results are found from another vendor, and then erases those. Fix the grouping. Fixes: #22403
* Merge topic 'FindBLAS-LAPACK-docs'Brad King2021-06-141-85/+161
|\ | | | | | | | | | | | | | | | | | | | | | | 5bf1651452 Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentation 8585a12bd9 Find{BLAS,LAPACK}: Move enabled language requirement to top of documentation 6a7c055f96 Find{BLAS,LAPACK}: Revise formatting of intro docs 43b581367d Find{BLAS,LAPACK}: Move implementation note from docs to comments 3beac78a13 Find{BLAS,LAPACK}: Revise imported targets documentation layout 6f305cd5fd Find{BLAS,LAPACK}: Factor out vendor documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6218
| * Find{BLAS,LAPACK}: Revise and extend Intel MKL usage documentationBrad King2021-06-111-19/+58
| | | | | | | | Fixes: #22295
| * Find{BLAS,LAPACK}: Move enabled language requirement to top of documentationBrad King2021-06-111-1/+2
| |
| * Find{BLAS,LAPACK}: Revise formatting of intro docsBrad King2021-06-111-1/+3
| |
| * Find{BLAS,LAPACK}: Move implementation note from docs to commentsBrad King2021-06-111-4/+3
| |
| * Find{BLAS,LAPACK}: Revise imported targets documentation layoutBrad King2021-06-111-4/+3
| |
| * Find{BLAS,LAPACK}: Factor out vendor documentationBrad King2021-06-111-62/+98
| | | | | | | | | | Move the list of vendors to a dedicated section shared by both modules. Format it as a definition list.
* | Find{BLAS,LAPACK}: Update for Intel oneAPI structure under MKLROOTPeter Knowles2021-06-111-1/+3
|/ | | | | Add search paths for the Intel oneAPI MKL directory structure so that we do not rely on paths in `LD_LIBRARY_PATH`.
* FindBLAS: Revert "Do not statically link against iomp5 ... Intel MKL"Brad King2021-06-101-16/+7
| | | | | | | | | | Since commit 20ab504591 (FindBLAS: Do not statically link against iomp5 in the case of Intel MKL, 2021-04-11), we no longer find MKL's BLAS when using the GNU compiler because FindOpenMP chooses libgomp instead of libiomp5, and mkl_intel_thread depends on the latter. Revert the change for now. A new approach will be needed to solve the original problem. Issue: #21811
* Find{BLAS,LAPACK}: Add support for the NVHPC LAPACK libraryRobert Maynard2021-05-051-1/+7
|
* FindBLAS: Do not statically link against iomp5 in the case of Intel MKLEisuke Kawashima2021-04-291-7/+16
| | | | fix #21811
* Find{BLAS,LAPACK}: Simplify search for static librariesBrad King2021-04-211-19/+13
| | | | | | | | Now that `CHECK_{BLAS,LAPACK}_LIBRARIES` are functions, we can set `CMAKE_FIND_LIBRARY_SUFFIXES` locally without affecting the global state. This avoids the need for local state switching that was added in commit 9ef82d95d8 (FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC, 2021-04-07, v3.20.1~3^2), so remove that.
* Find{BLAS,LAPACK}: Simplify check_function_exists state maintenanceBrad King2021-04-211-4/+1
| | | | | Now that `CHECK_{BLAS,LAPACK}_LIBRARIES` are functions, we can set `CMAKE_REQUIRED_QUIET` locally without affecting the global state.
* Find{BLAS,LAPACK}: Make library variable names more robustBrad King2021-04-141-5/+6
|
* Find{BLAS,LAPACK}: Generalize recognition of dependencies as link flagsBrad King2021-04-141-2/+2
|
* Find{BLAS,LAPACK}: Convert internal CHECK_*_LIBRARIES to functionsBrad King2021-04-141-21/+16
|
* Find{BLAS,LAPACK}: Clarify name of internal argument for dependenciesBrad King2021-04-141-5/+5
|
* Find{BLAS,LAPACK}: Simplify appending to list of librariesBrad King2021-04-141-3/+3
|
* Find{BLAS,LAPACK}: Revert bad refactoring of internal CHECK_*_LIBRARIESBrad King2021-04-141-7/+9
| | | | | | | | | | | | | | | | | | | Refactoring in commit 4c74c86f40 (FindBLAS/LAPACK: Add support for the Fujitsu SSL2 library, 2021-01-27) was done in order to support calling `find_library` on the dependencies as well as the candidate libraries. However, it broke a few things: * Intel MKL's BLAS/LAPACK are no longer found. We specify their dependencies using `-l...` flags, so we should not try to use `find_library` for them. * The dependencies are repeated because we accumulate them in the `find_library` search loop and then append them at the end too. Revert the incorrect part of the refactoring. Retain the flags part needed for the Fujitsu vendor. Fixes: #22056
* Merge topic 'FindBLAS-default-OpenMP'Brad King2021-04-081-2/+11
|\ | | | | | | | | | | | | 9ef82d95d8 FindBLAS: Fix detection of OpenMP as dependency of BLA_STATIC Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5993
| * FindBLAS: Fix detection of OpenMP as dependency of BLA_STATICBrad King2021-04-071-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the change from commit f7f3d8987a (FindBLAS: Add dependency of OpenBLAS on OpenMP for BLA_STATIC, 2020-11-10, v3.20.0-rc1~492^2): * If C is not enabled, find CXX OpenMP libraries instead. * Do not use BLA_STATIC's custom CMAKE_FIND_LIBRARY_SUFFIXES for OpenMP. It can break projects that already call `find_package(OpenMP)` and expect a shared library. Whether OpenMP is static is orthogonal to whether BLAS is static. Fixes: #22039 Issue: #16221
* | FindBLAS/LAPACK: Add support for the Fujitsu SSL2 libraryChuck Atkins2021-03-311-20/+55
|/ | | | | | | | This also does some additional work to fix issues with libraries provided only via compiler options and no explicit library names. Co-Author: Yuichiro Utsumi <utsumi.yuichiro@jp.fujitsu.com>
* FindBLAS: Add support for IntelLLVMWilliam R. Dieter2021-01-281-0/+3
| | | | Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
* Find{BLAS,LAPACK}: Add support for Elbrus Math LibraryIgor S. Gerasimov2020-12-091-0/+30
| | | | http://mossigplan.acm.org/EML_introduction_engl.pdf
* Help: Add `.. versionadded` directives to module docsNikita Nemkin2020-12-021-4/+30
| | | | Issue: #19715
* FindBLAS: Add dependency of OpenBLAS on OpenMP for BLA_STATICEisuke Kawashima2020-11-111-1/+7
| | | | Fixes: #16221
* Find{BLAS,LAPACK}: Add support for FlexiBLASMattias Ellert2020-09-141-0/+17
| | | | http://www.mpi-magdeburg.mpg.de/mpcsc/software/FlexiBLAS/
* Fix typos identified using codespellJean-Christophe Fillion-Robin2020-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/codespell-project/codespell#readme The following command was used: ``` codespell -q6 --skip="\ .git,\ *.json,\ ./Copyright.txt,\ ./Help/command/foreach.rst,\ ./Help/prop_test/REQUIRED_FILES.rst,\ ./Help/variable/CTEST_COVERAGE_COMMAND.rst,\ ./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\ ./Modules/CMakeRCInformation.cmake,\ ./Modules/Internal/CPack/NSIS.template.in,\ ./Modules/FindMatlab.cmake,\ ./Modules/MatlabTestsRedirect.cmake,\ ./Modules/Platform/Windows-Clang.cmake,\ ./Modules/Platform/Windows-Intel-Fortran.cmake,\ ./Modules/Platform/Windows-MSVC.cmake,\ ./Source/CMakeVersion.cmake,\ ./Source/cmConvertMSBuildXMLToJSON.py,\ ./Source/cmCreateTestSourceList.cxx,\ ./Source/cmGlobalVisualStudio10Generator.cxx,\ ./Source/cmExportBuildFileGenerator.cxx,\ ./Source/cmExportInstallAndroidMKGenerator.cxx,\ ./Source/cmExportInstallFileGenerator.cxx,\ ./Source/cmExportSet.cxx,\ ./Source/cmExportTryCompileFileGenerator.cxx,\ ./Source/cmFindPackageCommand.cxx,\ ./Source/cmInstallCommand.cxx,\ ./Source/cmGeneratorExpressionLexer.cxx,\ ./Source/cmLocalVisualStudio7Generator.cxx,\ ./Source/cmOrderDirectories.cxx,\ ./Source/cmTarget.cxx,\ ./Source/kwsys/*,\ ./Source/QtDialog/CMakeSetupDialog.ui,\ ./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\ ./Source/CTest/cmParseCoberturaCoverage.h,\ ./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\ ./Tests/RunCMake/GoogleTest/xml_output.cpp,\ ./Tests/RunCMake/Make/TargetMessages*,\ ./Utilities/*,\ " \ -L "\ dependees,\ endwhile,\ fo,\ filetest,\ helpfull,\ nd,\ objext,\ stoll,\ supercedes,\ superceded,\ vas,\ varn,\ " ```
* Merge topic 'find-blas-lapack-mklroot-win'Brad King2020-07-081-1/+1
|\ | | | | | | | | | | | | | | 196f042b58 FindLAPACK: Handle Windows Intel MKLROOT with backslash 96c19ecd55 FindBLAS: Handle Windows Intel MKLROOT with backslash Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4982
| * FindBLAS: Handle Windows Intel MKLROOT with backslashMichael Hirsch2020-07-071-1/+1
| |
* | FindBLAS use NAMES_PER_DIRSibi Siddharthan2020-07-011-0/+1
| | | | | | | | Signed-off-by: Sibi Siddharthan <sibisiddharthan.github@gmail.com>
* | Find{BLAS,LAPACK}: Add missing thread library for Intel MKL on Win32evatux2020-06-231-1/+5
| | | | | | | | | | | | | | | | | | The patch also updates the documentation to explicitly state that Intel10_32 stands for threaded case (linked with Intel OpenMP). Later, one may need to add Intel10_32_seq to support linking with the sequential version of Intel MKL. Fixes: #20857
* | FindBLAS: Extend search directories for MKLevatux2020-06-161-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | Even though Intel MKL typically puts the libraries under `$MKLROOT/lib/$arch_$os` some installations may still use `$MKLROOT/lib/$arch/` path. Ideally, `$arch` should be a symlink to `$arch_$os`, but sometimes the opposite happens (for instance, see Intel MKL distribution in Arch Linux [1]), and sometimes only `$arch` directory alone is present. This patch extends the search list with `$MKLROOT/lib/$arch` with lower priority than `$MKLROOT/lib/$arch_$os`, as the latter is the official path to Intel MKL libraries. It is also worth mentioning that Intel MKL Link Line Adviser [2] recommends using `$MKLROOT/lib/$arch` directory in a link line: ``` -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl ``` [1] https://www.archlinux.org/packages/community/x86_64/intel-mkl/files/ [2] https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html
* BLAS: Provide the BLAS::BLAS import targetRobert Maynard2020-04-231-0/+23
|
* Find{BLAS,LAPACK}: Add support for ArmPL targetsOlly Perks2020-04-091-0/+34
| | | | | | | Add support for the Arm Performance Libraries (ArmPL) which provide an implementation of BLAS, LAPACK and FFTW for use on Arm Linux systems: https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries
* Find{BLAS,LAPACK}: Include parent of points directory in searchMario Emmenlauer2020-01-311-0/+7
| | | | | | | This is required if MKLROOT points to the subdirectory .../mkl/ instead of the root of an Intel MKL library installation. Only in this case the MKL will be searched starting from the parent directory, to detect relevant dependencies in parallel subdirectories, like 'compiler' and 'tbb'.
* Find{BLAS,LAPACK}: Fixed an incorrect use of a macro argumentMario Emmenlauer2020-01-311-5/+6
|
* Find{BLAS,LAPACK}: Search always in dynamic linker pathsMario Emmenlauer2020-01-281-8/+6
| | | | | | | | | Previously the search in the dynamic linker paths 'LIB', 'LD_LIBRARY_PATH' and 'DYLD_LIBRARY_PATH' was dependent on the value of the environment variable 'MKLROOT'. If MKLROOT was given, the dynamic linker paths where not searched. This seems slightly counter-intuitive. This PR changes the behavior so that MKLROOT is searched first, but if unsuccesful, the dynamic linker paths are tried as well.
* Find{BLAS,LAPACK}: Avoid repeated setting of prefered library suffixesMario Emmenlauer2020-01-281-14/+14
|
* Find{BLAS,LAPACK}: Fixed incorrect static library suffix for AppleMario Emmenlauer2020-01-281-3/+0
|
* Find{BLAS,LAPACK}: Added support for MKL single dynamic libraryMario Emmenlauer2020-01-281-0/+7
|
* Find{BLAS,LAPACK}: Added support for static MKL required linker flagsMario Emmenlauer2020-01-281-37/+45
|
* Find{BLAS,LAPACK}: Fixed detection of MKL, and several MKL improvementsMario Emmenlauer2020-01-281-39/+96
|
* Find{BLAS,LAPACK}: Cleanup whitespace, style, and commentsMario Emmenlauer2020-01-211-236/+243
| | | | | | | | | | Bring whitespace and code style up to date in these scripts. Both scripts share the same origin but have diverged over time, so synchronize them again. This is relevant because BLAS and LAPACK detection is often performed simultaneously, so both scripts should evolve in sync. While at it, update a few comments. This update is intended to have no functional changes.
* Find{BLAS,LAPACK}: Clarify names of internal helper macroMario Emmenlauer2020-01-201-28/+28
| | | | Also clarify names of their arguments.
* Merge topic 'FindBLAS-OpenBLAS-thread'Brad King2019-12-131-2/+6
|\ | | | | | | | | | | | | d1e111d166 FindBLAS: Consider OpenBLAS with thread libraries only with C or CXX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4134
| * FindBLAS: Consider OpenBLAS with thread libraries only with C or CXXBrad King2019-12-121-2/+6
| | | | | | | | | | | | | | | | The check added by commit 276b56f01c (FindBLAS: Add second try for OpenBLAS with thread libraries., 2019-06-07, v3.15.0-rc2~5^2) can work only when C or CXX is enabled. Fixes: #20092
* | FindBLAS: Search for libblas from ATLAS vendorEisuke Kawashima2019-12-041-1/+1
|/ | | | | | | Symbols such as `cblas_ccopy` are defined in `libblas.a` but NOT IN `libf77blas.a`. Fixes: #14320
* FindBLAS: Add second try for OpenBLAS with thread libraries.Alexander Neumann2019-06-171-1/+15
| | | | Issue: #16221