1. 31 Jan, 2019 1 commit
  2. 24 Nov, 2018 1 commit
  3. 19 Nov, 2018 1 commit
  4. 18 Nov, 2018 3 commits
    • Jakub Benda's avatar
      FindBLAS: Support 32bit Intel MKL 10.3+ · b4edf7b5
      Jakub Benda authored
      The module FindBLAS now correctly finds Intel MKL distributions that do
      not have the (long deprecated) library "libguide", but use "libiomp5"
      instead.
      b4edf7b5
    • Jakub Benda's avatar
      FindBLAS: Support combination of gfortran and Intel MKL · fc149a72
      Jakub Benda authored
      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.
      fc149a72
    • Jakub Benda's avatar
      FindBLAS: Consolidate duplicated code related to MKL on Windows · f0d52f55
      Jakub Benda authored
      The code that decides which library suffix to use for MKL libraries
      in Windows was in two places. This commit consolidates it in one place.
      f0d52f55
  5. 05 Nov, 2018 1 commit
    • Jakub Benda's avatar
      FindBLAS: Correct symbol searched in BLAS95 wrapper · 970b18e9
      Jakub Benda authored
      The symbol "SGEMM", originally used to determine if a library provides
      Fortran 95 wrappers for BLAS, has been replaced by "sgemm_f95". "SGEMM"
      is provided by libmkl_intel_(i)lp64, which does not provide the generic
      Fortran 95 wrappers. Instead, libmkl_blas95_(i)lp does; one of the
      specializations of the type-generic interfaces contained in that library
      is "sgemm_f95".
      970b18e9
  6. 22 Oct, 2018 1 commit
  7. 08 Oct, 2018 1 commit
    • Jakub Benda's avatar
      Find{BLAS,LAPACK}: Find also ILP64 MKL BLAS and LAPACK · d0fb3e6c
      Jakub Benda authored
      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.
      d0fb3e6c
  8. 30 Aug, 2018 4 commits
    • Hubertus van Dam's avatar
      FindBLAS: Make Intel MKL the most preferred explicit BLAS library again · 8cdff15e
      Hubertus van Dam authored
      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.
      8cdff15e
    • Hubertus van Dam's avatar
      FindBLAS: Make Intel MKL code block respect prior found BLAS libraries · 608de88f
      Hubertus van Dam authored
      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.
      608de88f
    • Hubertus van Dam's avatar
      FindBLAS: Detect implicitly linked BLAS library · 5b8f69eb
      Hubertus van Dam authored
      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.
      5b8f69eb
    • Kitware Robot's avatar
  9. 11 May, 2018 1 commit
  10. 24 Apr, 2018 1 commit
    • Rolf Eike Beer's avatar
      FindBLAS: do not write an imported target name into BLAS_LIBRARIES · 7d756f37
      Rolf Eike Beer authored
      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
      7d756f37
  11. 15 Dec, 2017 3 commits
  12. 16 Nov, 2017 1 commit
  13. 22 Mar, 2017 1 commit
  14. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      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.
      86578ecc
  15. 05 Apr, 2016 1 commit
  16. 18 Mar, 2016 1 commit
  17. 08 Jan, 2016 1 commit
  18. 14 Apr, 2014 2 commits
  19. 29 Mar, 2014 1 commit
  20. 15 Oct, 2013 1 commit
  21. 08 Oct, 2013 1 commit
  22. 04 Nov, 2012 1 commit
  23. 13 Aug, 2012 1 commit
    • Kitware Robot's avatar
      Remove CMake-language block-end command arguments · 9db31162
      Kitware Robot authored
      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
      9db31162
  24. 21 Jul, 2012 1 commit
  25. 18 Jul, 2012 1 commit
  26. 16 Feb, 2012 1 commit
  27. 01 Sep, 2011 1 commit
  28. 31 Aug, 2011 1 commit
    • Alexey Ozeritsky's avatar
      FindBLAS/LAPACK fixes · 145de0a0
      Alexey Ozeritsky authored
      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).
      145de0a0
  29. 15 Aug, 2011 1 commit
  30. 13 Aug, 2011 1 commit
  31. 11 Aug, 2011 2 commits