[Cmake-commits] CMake branch, master, updated. v3.12.1-541-ged80d89

Kitware Robot kwrobot at kitware.com
Fri Aug 31 14:55:04 EDT 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  ed80d89b98123b2bc2ca8033ebe758b29feb1367 (commit)
       via  5a02afd92012ed936b9637217f5106d1a6a570c5 (commit)
       via  28979843d16e39ad28d9d62300071c011283f9bd (commit)
       via  8c2d1fb7a3e2674682c3d77c9947d07b50a42d43 (commit)
       via  388bf1feee7404328fa208cbda36f19e2e2d03c6 (commit)
       via  e16568c2938fdcbf060dc15c1492fa0c98d50d35 (commit)
       via  e78a0c8e8a0b002a1e0e71672efcf96418c3a26d (commit)
       via  80bb9214dd6bac5c0d2e8eea04d111ee419a89fe (commit)
       via  4e94f6447a41ab5080ca5865b5b4bc1ebbf862be (commit)
       via  4e1ea02bb86f40d8ba0c247869a508b1da2c84b1 (commit)
       via  b7dbb25a0a18187e85e6def956bc5516a3284b90 (commit)
       via  8cdff15ef7b3077af6b7315f73355d06adaeeafe (commit)
       via  608de88f2973975b85e059e67b93fbefa2911082 (commit)
       via  5b8f69ebe9e82feb8bcd7dade76bb7fa88c8051b (commit)
       via  2c807b75f3283d30ecde55be5b434be65d0ea141 (commit)
       via  31301b46a726e8c95836e885bb8a7f5cc5221c49 (commit)
      from  e48a278cdcafbd40cf01533096859f646a87505b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed80d89b98123b2bc2ca8033ebe758b29feb1367
commit ed80d89b98123b2bc2ca8033ebe758b29feb1367
Merge: 5a02afd 8cdff15
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 18:51:07 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 31 14:51:13 2018 -0400

    Merge topic 'FindBLAS-implicit-blas-final'
    
    8cdff15ef7 FindBLAS: Make Intel MKL the most preferred explicit BLAS library again
    608de88f29 FindBLAS: Make Intel MKL code block respect prior found BLAS libraries
    5b8f69ebe9 FindBLAS: Detect implicitly linked BLAS library
    2c807b75f3 FindBLAS: Re-indent module source code to use normal conventions
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2312


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5a02afd92012ed936b9637217f5106d1a6a570c5
commit 5a02afd92012ed936b9637217f5106d1a6a570c5
Merge: 2897984 e78a0c8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 18:50:20 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 31 14:50:27 2018 -0400

    Merge topic 'vs-winrt-default'
    
    e78a0c8e8a VS: Add option to tell generator that platfrom is WinRT by default
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2315


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28979843d16e39ad28d9d62300071c011283f9bd
commit 28979843d16e39ad28d9d62300071c011283f9bd
Merge: 8c2d1fb 4e94f64
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 18:49:24 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 31 14:49:29 2018 -0400

    Merge topic 'gg-stdstring'
    
    4e94f6447a cmGlobalGenerator::AddInstallComponent(): Accept std::string argument
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2332


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8c2d1fb7a3e2674682c3d77c9947d07b50a42d43
commit 8c2d1fb7a3e2674682c3d77c9947d07b50a42d43
Merge: 388bf1f 80bb921
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 14:46:41 2018 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Aug 31 14:46:41 2018 -0400

    Merge branch 'release-3.12'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=388bf1feee7404328fa208cbda36f19e2e2d03c6
commit 388bf1feee7404328fa208cbda36f19e2e2d03c6
Merge: e16568c 4e1ea02
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 18:45:57 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 31 14:46:02 2018 -0400

    Merge topic 'CheckIPOSupported-output-backslashes'
    
    4e1ea02bb8 CheckIPOSupported: Tolerate backslashes in output of failed checks
    b7dbb25a0a CheckIPOSupported: Simplify result reporting logic
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2331


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e16568c2938fdcbf060dc15c1492fa0c98d50d35
commit e16568c2938fdcbf060dc15c1492fa0c98d50d35
Merge: e48a278 31301b4
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 31 18:44:48 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 31 14:45:11 2018 -0400

    Merge topic 'file-alt-httpauth'
    
    31301b46a7 file: Allow DOWNLOAD/UPLOAD using alternate authentication methods
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2320


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e78a0c8e8a0b002a1e0e71672efcf96418c3a26d
commit e78a0c8e8a0b002a1e0e71672efcf96418c3a26d
Author:     Mikhail Korolev <stilriv at gmail.com>
AuthorDate: Tue Aug 28 21:14:12 2018 +0300
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 12:46:57 2018 -0400

    VS: Add option to tell generator that platfrom is WinRT by default
    
    Create a ``CMAKE_VS_WINRT_BY_DEFAULT`` variable to indicate this.
    
    Fixes: #18286

diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 4ddbfe5..3eea8a2 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -401,6 +401,7 @@ Variables that Control the Build
    /variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES
    /variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES
    /variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES
+   /variable/CMAKE_VS_WINRT_BY_DEFAULT
    /variable/CMAKE_WIN32_EXECUTABLE
    /variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
    /variable/CMAKE_XCODE_ATTRIBUTE_an-attribute
diff --git a/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst b/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
new file mode 100644
index 0000000..2ba8fe2
--- /dev/null
+++ b/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
@@ -0,0 +1,8 @@
+CMAKE_VS_WINRT_BY_DEFAULT
+-------------------------
+
+Tell :ref:`Visual Studio Generators` for VS 2010 and above that the
+target platform compiles as WinRT by default (compiles with ``/ZW``).
+
+This variable is meant to be set by a
+:variable:`toolchain file <CMAKE_TOOLCHAIN_FILE>` for such platforms.
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 4597bc6..e5b9d79 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2571,8 +2571,10 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
   }
 
   if (this->MSTools) {
-    // If we have the VS_WINRT_COMPONENT set then force Compile as WinRT.
-    if (this->GeneratorTarget->GetPropertyAsBool("VS_WINRT_COMPONENT")) {
+    // If we have the VS_WINRT_COMPONENT or CMAKE_VS_WINRT_BY_DEFAULT
+    // set then force Compile as WinRT.
+    if (this->GeneratorTarget->GetPropertyAsBool("VS_WINRT_COMPONENT") ||
+        this->Makefile->IsOn("CMAKE_VS_WINRT_BY_DEFAULT")) {
       clOptions.AddFlag("CompileAsWinRT", "true");
       // For WinRT components, add the _WINRT_DLL define to produce a lib
       if (this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY ||

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4e94f6447a41ab5080ca5865b5b4bc1ebbf862be
commit 4e94f6447a41ab5080ca5865b5b4bc1ebbf862be
Author:     Vitaly Stakhovsky <vvs31415 at gitlab.org>
AuthorDate: Thu Aug 30 11:52:45 2018 -0400
Commit:     Vitaly Stakhovsky <vvs31415 at gitlab.org>
CommitDate: Thu Aug 30 11:52:45 2018 -0400

    cmGlobalGenerator::AddInstallComponent(): Accept std::string argument

diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index bbebb90..92ede7f 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1997,9 +1997,9 @@ void cmGlobalGenerator::AddMakefile(cmMakefile* mf)
   this->CMakeInstance->UpdateProgress("Configuring", prog);
 }
 
-void cmGlobalGenerator::AddInstallComponent(const char* component)
+void cmGlobalGenerator::AddInstallComponent(const std::string& component)
 {
-  if (component && *component) {
+  if (!component.empty()) {
     this->InstallComponents.insert(component);
   }
 }
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 1ed070e..c06ac52 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -219,7 +219,7 @@ public:
 
   std::string GetExtraGeneratorName() const;
 
-  void AddInstallComponent(const char* component);
+  void AddInstallComponent(const std::string& component);
 
   const std::set<std::string>* GetInstallComponents() const
   {
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index 99409c2..d7fe777 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -187,7 +187,7 @@ bool cmInstallCommand::HandleScriptMode(std::vector<std::string> const& args)
 
   // Tell the global generator about any installation component names
   // specified.
-  this->Makefile->GetGlobalGenerator()->AddInstallComponent(component.c_str());
+  this->Makefile->GetGlobalGenerator()->AddInstallComponent(component);
 
   return true;
 }
@@ -761,43 +761,43 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
   // specified
   if (installsArchive) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      archiveArgs.GetComponent().c_str());
+      archiveArgs.GetComponent());
   }
   if (installsLibrary) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      libraryArgs.GetComponent().c_str());
+      libraryArgs.GetComponent());
   }
   if (installsNamelink) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      libraryArgs.GetNamelinkComponent().c_str());
+      libraryArgs.GetNamelinkComponent());
   }
   if (installsRuntime) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      runtimeArgs.GetComponent().c_str());
+      runtimeArgs.GetComponent());
   }
   if (installsObject) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      objectArgs.GetComponent().c_str());
+      objectArgs.GetComponent());
   }
   if (installsFramework) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      frameworkArgs.GetComponent().c_str());
+      frameworkArgs.GetComponent());
   }
   if (installsBundle) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      bundleArgs.GetComponent().c_str());
+      bundleArgs.GetComponent());
   }
   if (installsPrivateHeader) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      privateHeaderArgs.GetComponent().c_str());
+      privateHeaderArgs.GetComponent());
   }
   if (installsPublicHeader) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      publicHeaderArgs.GetComponent().c_str());
+      publicHeaderArgs.GetComponent());
   }
   if (installsResource) {
     this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-      resourceArgs.GetComponent().c_str());
+      resourceArgs.GetComponent());
   }
 
   return true;
@@ -899,7 +899,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
   // Tell the global generator about any installation component names
   // specified.
   this->Makefile->GetGlobalGenerator()->AddInstallComponent(
-    ica.GetComponent().c_str());
+    ica.GetComponent());
 
   return true;
 }
@@ -1196,7 +1196,7 @@ bool cmInstallCommand::HandleDirectoryMode(
 
   // Tell the global generator about any installation component names
   // specified.
-  this->Makefile->GetGlobalGenerator()->AddInstallComponent(component.c_str());
+  this->Makefile->GetGlobalGenerator()->AddInstallComponent(component);
 
   return true;
 }

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8cdff15ef7b3077af6b7315f73355d06adaeeafe
commit 8cdff15ef7b3077af6b7315f73355d06adaeeafe
Author:     Hubertus van Dam <hvandam at bnl.gov>
AuthorDate: Tue Aug 28 11:33:25 2018 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 10:52:59 2018 -0400

    FindBLAS: Make Intel MKL the most preferred explicit BLAS library again
    
    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.

diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index d5fc4b6..39b9b74 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -199,6 +199,186 @@ if (BLA_VENDOR STREQUAL "All")
   endif()
 endif ()
 
+#BLAS in intel mkl 10 library? (em64t 64bit)
+if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
+  if (NOT BLAS_LIBRARIES)
+    if (NOT WIN32)
+      set(LM "-lm")
+    endif ()
+    if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+      if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+        find_package(Threads)
+      else()
+        find_package(Threads REQUIRED)
+      endif()
+
+      set(BLAS_SEARCH_LIBS "")
+
+      if(BLA_F95)
+        set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
+        set(_LIBRARIES BLAS95_LIBRARIES)
+        if (WIN32)
+          if (BLA_STATIC)
+            set(BLAS_mkl_DLL_SUFFIX "")
+          else()
+            set(BLAS_mkl_DLL_SUFFIX "_dll")
+          endif()
+
+          # Find the main file (32-bit or 64-bit)
+          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+          endif ()
+
+          # Add threading/sequential libs
+          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+            # mkl >= 10.3
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+
+          # Cartesian product of the above
+          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+              list(APPEND BLAS_SEARCH_LIBS
+                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+            endforeach()
+          endforeach()
+        else ()
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+            # mkl >= 10.3
+            if (CMAKE_C_COMPILER MATCHES ".+gcc")
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+            else ()
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            endif ()
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel_lp64 mkl_sequential mkl_core")
+          endif ()
+        endif ()
+      else ()
+        set(BLAS_mkl_SEARCH_SYMBOL sgemm)
+        set(_LIBRARIES BLAS_LIBRARIES)
+        if (WIN32)
+          if (BLA_STATIC)
+            set(BLAS_mkl_DLL_SUFFIX "")
+          else()
+            set(BLAS_mkl_DLL_SUFFIX "_dll")
+          endif()
+
+          # Find the main file (32-bit or 64-bit)
+          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+          endif ()
+
+          # Add threading/sequential libs
+          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+            # mkl >= 10.3
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+
+          # Cartesian product of the above
+          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+              list(APPEND BLAS_SEARCH_LIBS
+                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+            endforeach()
+          endforeach()
+        else ()
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel mkl_intel_thread mkl_core guide")
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+            # mkl >= 10.3
+            if (CMAKE_C_COMPILER MATCHES ".+gcc")
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+            else ()
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            endif ()
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel_lp64 mkl_sequential mkl_core")
+          endif ()
+
+          #older vesions of intel mkl libs
+          if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_ia32")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_em64t")
+          endif ()
+        endif ()
+      endif ()
+
+      foreach (IT ${BLAS_SEARCH_LIBS})
+        string(REPLACE " " ";" SEARCH_LIBS ${IT})
+        if (NOT ${_LIBRARIES})
+          check_fortran_libraries(
+            ${_LIBRARIES}
+            BLAS
+            ${BLAS_mkl_SEARCH_SYMBOL}
+            ""
+            "${SEARCH_LIBS}"
+            "${CMAKE_THREAD_LIBS_INIT};${LM}"
+            )
+        endif ()
+      endforeach ()
+
+    endif ()
+  endif ()
+endif ()
+
 if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
   if(NOT BLAS_LIBRARIES)
     # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
@@ -534,186 +714,6 @@ if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
   endif()
 endif ()
 
-#BLAS in intel mkl 10 library? (em64t 64bit)
-if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
-  if (NOT BLAS_LIBRARIES)
-    if (NOT WIN32)
-      set(LM "-lm")
-    endif ()
-    if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
-      if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
-        find_package(Threads)
-      else()
-        find_package(Threads REQUIRED)
-      endif()
-
-      set(BLAS_SEARCH_LIBS "")
-
-      if(BLA_F95)
-        set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
-        set(_LIBRARIES BLAS95_LIBRARIES)
-        if (WIN32)
-          if (BLA_STATIC)
-            set(BLAS_mkl_DLL_SUFFIX "")
-          else()
-            set(BLAS_mkl_DLL_SUFFIX "_dll")
-          endif()
-
-          # Find the main file (32-bit or 64-bit)
-          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-              "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-              "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-          endif ()
-
-          # Add threading/sequential libs
-          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-            # old version
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-            # mkl >= 10.3
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-
-          # Cartesian product of the above
-          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
-              list(APPEND BLAS_SEARCH_LIBS
-                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
-            endforeach()
-          endforeach()
-        else ()
-          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
-          endif ()
-          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-            # old version
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
-
-            # mkl >= 10.3
-            if (CMAKE_C_COMPILER MATCHES ".+gcc")
-              list(APPEND BLAS_SEARCH_LIBS
-                "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-            else ()
-              list(APPEND BLAS_SEARCH_LIBS
-                "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
-            endif ()
-          endif ()
-          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel_lp64 mkl_sequential mkl_core")
-          endif ()
-        endif ()
-      else ()
-        set(BLAS_mkl_SEARCH_SYMBOL sgemm)
-        set(_LIBRARIES BLAS_LIBRARIES)
-        if (WIN32)
-          if (BLA_STATIC)
-            set(BLAS_mkl_DLL_SUFFIX "")
-          else()
-            set(BLAS_mkl_DLL_SUFFIX "_dll")
-          endif()
-
-          # Find the main file (32-bit or 64-bit)
-          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-              "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-              "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-          endif ()
-
-          # Add threading/sequential libs
-          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-            # old version
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-            # mkl >= 10.3
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-          endif()
-
-          # Cartesian product of the above
-          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
-              list(APPEND BLAS_SEARCH_LIBS
-                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
-            endforeach()
-          endforeach()
-        else ()
-          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel mkl_intel_thread mkl_core guide")
-          endif ()
-          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-
-            # old version
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
-
-            # mkl >= 10.3
-            if (CMAKE_C_COMPILER MATCHES ".+gcc")
-              list(APPEND BLAS_SEARCH_LIBS
-                "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-            else ()
-              list(APPEND BLAS_SEARCH_LIBS
-                "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
-            endif ()
-          endif ()
-          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel_lp64 mkl_sequential mkl_core")
-          endif ()
-
-          #older vesions of intel mkl libs
-          if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_ia32")
-            list(APPEND BLAS_SEARCH_LIBS
-              "mkl_em64t")
-          endif ()
-        endif ()
-      endif ()
-
-      foreach (IT ${BLAS_SEARCH_LIBS})
-        string(REPLACE " " ";" SEARCH_LIBS ${IT})
-        if (NOT ${_LIBRARIES})
-          check_fortran_libraries(
-            ${_LIBRARIES}
-            BLAS
-            ${BLAS_mkl_SEARCH_SYMBOL}
-            ""
-            "${SEARCH_LIBS}"
-            "${CMAKE_THREAD_LIBS_INIT};${LM}"
-            )
-        endif ()
-      endforeach ()
-
-    endif ()
-  endif ()
-endif ()
-
 if(BLA_F95)
   find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
   set(BLAS95_FOUND ${BLAS_FOUND})

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=608de88f2973975b85e059e67b93fbefa2911082
commit 608de88f2973975b85e059e67b93fbefa2911082
Author:     Hubertus van Dam <hvandam at bnl.gov>
AuthorDate: Tue Aug 28 11:18:24 2018 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 10:52:59 2018 -0400

    FindBLAS: Make Intel MKL code block respect prior found BLAS libraries
    
    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.

diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 1a89068..d5fc4b6 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -536,179 +536,181 @@ endif ()
 
 #BLAS in intel mkl 10 library? (em64t 64bit)
 if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
-  if (NOT WIN32)
-    set(LM "-lm")
-  endif ()
-  if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
-    if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
-      find_package(Threads)
-    else()
-      find_package(Threads REQUIRED)
-    endif()
+  if (NOT BLAS_LIBRARIES)
+    if (NOT WIN32)
+      set(LM "-lm")
+    endif ()
+    if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+      if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+        find_package(Threads)
+      else()
+        find_package(Threads REQUIRED)
+      endif()
 
-    set(BLAS_SEARCH_LIBS "")
-
-    if(BLA_F95)
-      set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
-      set(_LIBRARIES BLAS95_LIBRARIES)
-      if (WIN32)
-        if (BLA_STATIC)
-          set(BLAS_mkl_DLL_SUFFIX "")
-        else()
-          set(BLAS_mkl_DLL_SUFFIX "_dll")
-        endif()
-
-        # Find the main file (32-bit or 64-bit)
-        set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-            "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-        if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-            "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-        endif ()
+      set(BLAS_SEARCH_LIBS "")
 
-        # Add threading/sequential libs
-        set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-        if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-        if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-          # old version
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-          # mkl >= 10.3
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-
-        # Cartesian product of the above
-        foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-          foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
-            list(APPEND BLAS_SEARCH_LIBS
-              "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
-          endforeach()
-        endforeach()
-      else ()
-        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
-        endif ()
-        if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-          # old version
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+      if(BLA_F95)
+        set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
+        set(_LIBRARIES BLAS95_LIBRARIES)
+        if (WIN32)
+          if (BLA_STATIC)
+            set(BLAS_mkl_DLL_SUFFIX "")
+          else()
+            set(BLAS_mkl_DLL_SUFFIX "_dll")
+          endif()
+
+          # Find the main file (32-bit or 64-bit)
+          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+          endif ()
 
-          # mkl >= 10.3
-          if (CMAKE_C_COMPILER MATCHES ".+gcc")
+          # Add threading/sequential libs
+          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+            # mkl >= 10.3
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+
+          # Cartesian product of the above
+          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+              list(APPEND BLAS_SEARCH_LIBS
+                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+            endforeach()
+          endforeach()
+        else ()
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
             list(APPEND BLAS_SEARCH_LIBS
-              "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-          else ()
+              "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            # old version
             list(APPEND BLAS_SEARCH_LIBS
-              "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+              "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+            # mkl >= 10.3
+            if (CMAKE_C_COMPILER MATCHES ".+gcc")
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+            else ()
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            endif ()
           endif ()
-        endif ()
-        if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel_lp64 mkl_sequential mkl_core")
-        endif ()
-      endif ()
-    else ()
-      set(BLAS_mkl_SEARCH_SYMBOL sgemm)
-      set(_LIBRARIES BLAS_LIBRARIES)
-      if (WIN32)
-        if (BLA_STATIC)
-          set(BLAS_mkl_DLL_SUFFIX "")
-        else()
-          set(BLAS_mkl_DLL_SUFFIX "_dll")
-        endif()
-
-        # Find the main file (32-bit or 64-bit)
-        set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-            "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-        if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-            "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-        endif ()
-
-        # Add threading/sequential libs
-        set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-        if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-          # old version
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-          # mkl >= 10.3
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-        if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-            "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-        endif()
-
-        # Cartesian product of the above
-        foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-          foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
             list(APPEND BLAS_SEARCH_LIBS
-              "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
-          endforeach()
-        endforeach()
-      else ()
-        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel mkl_intel_thread mkl_core guide")
+              "mkl_intel_lp64 mkl_sequential mkl_core")
+          endif ()
         endif ()
-        if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+      else ()
+        set(BLAS_mkl_SEARCH_SYMBOL sgemm)
+        set(_LIBRARIES BLAS_LIBRARIES)
+        if (WIN32)
+          if (BLA_STATIC)
+            set(BLAS_mkl_DLL_SUFFIX "")
+          else()
+            set(BLAS_mkl_DLL_SUFFIX "_dll")
+          endif()
+
+          # Find the main file (32-bit or 64-bit)
+          set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+              "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+          endif ()
 
-          # old version
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+          # Add threading/sequential libs
+          set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+          if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            # old version
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+            # mkl >= 10.3
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+          if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+              "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+          endif()
+
+          # Cartesian product of the above
+          foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+            foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+              list(APPEND BLAS_SEARCH_LIBS
+                "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+            endforeach()
+          endforeach()
+        else ()
+          if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel mkl_intel_thread mkl_core guide")
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
 
-          # mkl >= 10.3
-          if (CMAKE_C_COMPILER MATCHES ".+gcc")
+            # old version
             list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-          else ()
+              "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+            # mkl >= 10.3
+            if (CMAKE_C_COMPILER MATCHES ".+gcc")
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+            else ()
+              list(APPEND BLAS_SEARCH_LIBS
+                "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            endif ()
+          endif ()
+          if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
             list(APPEND BLAS_SEARCH_LIBS
-              "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+              "mkl_intel_lp64 mkl_sequential mkl_core")
           endif ()
-        endif ()
-        if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel_lp64 mkl_sequential mkl_core")
-        endif ()
 
-        #older vesions of intel mkl libs
-        if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_ia32")
-          list(APPEND BLAS_SEARCH_LIBS
-            "mkl_em64t")
+          #older vesions of intel mkl libs
+          if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_ia32")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_em64t")
+          endif ()
         endif ()
       endif ()
-    endif ()
 
-    foreach (IT ${BLAS_SEARCH_LIBS})
-      string(REPLACE " " ";" SEARCH_LIBS ${IT})
-      if (NOT ${_LIBRARIES})
-        check_fortran_libraries(
-          ${_LIBRARIES}
-          BLAS
-          ${BLAS_mkl_SEARCH_SYMBOL}
-          ""
-          "${SEARCH_LIBS}"
-          "${CMAKE_THREAD_LIBS_INIT};${LM}"
-          )
-      endif ()
-    endforeach ()
+      foreach (IT ${BLAS_SEARCH_LIBS})
+        string(REPLACE " " ";" SEARCH_LIBS ${IT})
+        if (NOT ${_LIBRARIES})
+          check_fortran_libraries(
+            ${_LIBRARIES}
+            BLAS
+            ${BLAS_mkl_SEARCH_SYMBOL}
+            ""
+            "${SEARCH_LIBS}"
+            "${CMAKE_THREAD_LIBS_INIT};${LM}"
+            )
+        endif ()
+      endforeach ()
 
+    endif ()
   endif ()
 endif ()
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b8f69ebe9e82feb8bcd7dade76bb7fa88c8051b
commit 5b8f69ebe9e82feb8bcd7dade76bb7fa88c8051b
Author:     Hubertus van Dam <hvandam at bnl.gov>
AuthorDate: Tue Aug 28 11:02:58 2018 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 10:51:20 2018 -0400

    FindBLAS: Detect implicitly linked BLAS library
    
    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.

diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 5ba7e4f..1a89068 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -22,7 +22,8 @@
 #   BLAS_LINKER_FLAGS - uncached list of required linker flags (excluding -l
 #     and -L).
 #   BLAS_LIBRARIES - uncached list of libraries (using full path name) to
-#     link against to use BLAS
+#     link against to use BLAS (may be empty if compiler implicitly links
+#     BLAS)
 #   BLAS95_LIBRARIES - uncached list of libraries (using full path name)
 #     to link against to use BLAS95 interface
 #   BLAS95_FOUND - set to true if a library implementing the BLAS f95 interface
@@ -163,7 +164,11 @@ macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
     mark_as_advanced(${_prefix}${_combined_name}_WORKS)
     set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
   endif()
-  if(NOT _libraries_work)
+  if(_libraries_work)
+    if("${_list}" STREQUAL "")
+      set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+    endif()
+  else()
     set(${LIBRARIES} FALSE)
   endif()
   #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
@@ -180,6 +185,20 @@ else ()
   endif()
 endif ()
 
+if (BLA_VENDOR STREQUAL "All")
+  if(NOT BLAS_LIBRARIES)
+    # Implicitly linked BLAS libraries
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      ""
+      ""
+      )
+  endif()
+endif ()
+
 if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
   if(NOT BLAS_LIBRARIES)
     # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
@@ -500,6 +519,7 @@ if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
       )
   endif ()
 endif ()
+
 # Generic BLAS library?
 if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
   if(NOT BLAS_LIBRARIES)
@@ -702,5 +722,11 @@ else()
   find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
 endif()
 
+# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
+# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
+if (BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
+  set(BLAS_LIBRARIES "")
+endif()
+
 cmake_pop_check_state()
 set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2c807b75f3283d30ecde55be5b434be65d0ea141
commit 2c807b75f3283d30ecde55be5b434be65d0ea141
Author:     Kitware Robot <kwrobot at kitware.com>
AuthorDate: Thu Aug 30 10:42:09 2018 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 10:42:09 2018 -0400

    FindBLAS: Re-indent module source code to use normal conventions

diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 5ee703a..5ba7e4f 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -96,77 +96,77 @@ if(BLA_PREFER_PKGCONFIG)
 endif()
 
 macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
-# This macro checks for the existence of the combination of fortran libraries
-# given by _list.  If the combination is found, this macro checks (using the
-# Check_Fortran_Function_Exists macro) whether can link against that library
-# combination using the name of a routine given by _name using the linker
-# flags given by _flags.  If the combination of libraries is found and passes
-# the link test, LIBRARIES is set to the list of complete library paths that
-# have been found.  Otherwise, LIBRARIES is set to FALSE.
-
-# N.B. _prefix is the prefix applied to the names of all cached variables that
-# are generated internally and marked advanced by this macro.
-
-set(_libdir ${ARGN})
-
-set(_libraries_work TRUE)
-set(${LIBRARIES})
-set(_combined_name)
-if (NOT _libdir)
-  if (WIN32)
-    set(_libdir ENV LIB)
-  elseif (APPLE)
-    set(_libdir ENV DYLD_LIBRARY_PATH)
-  else ()
-    set(_libdir ENV LD_LIBRARY_PATH)
+  # This macro checks for the existence of the combination of fortran libraries
+  # given by _list.  If the combination is found, this macro checks (using the
+  # Check_Fortran_Function_Exists macro) whether can link against that library
+  # combination using the name of a routine given by _name using the linker
+  # flags given by _flags.  If the combination of libraries is found and passes
+  # the link test, LIBRARIES is set to the list of complete library paths that
+  # have been found.  Otherwise, LIBRARIES is set to FALSE.
+
+  # N.B. _prefix is the prefix applied to the names of all cached variables that
+  # are generated internally and marked advanced by this macro.
+
+  set(_libdir ${ARGN})
+
+  set(_libraries_work TRUE)
+  set(${LIBRARIES})
+  set(_combined_name)
+  if (NOT _libdir)
+    if (WIN32)
+      set(_libdir ENV LIB)
+    elseif (APPLE)
+      set(_libdir ENV DYLD_LIBRARY_PATH)
+    else ()
+      set(_libdir ENV LD_LIBRARY_PATH)
+    endif ()
   endif ()
-endif ()
 
-foreach(_library ${_list})
-  set(_combined_name ${_combined_name}_${_library})
+  foreach(_library ${_list})
+    set(_combined_name ${_combined_name}_${_library})
 
-  if(_libraries_work)
-    if (BLA_STATIC)
-      if (WIN32)
-        set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
-      endif ()
-      if (APPLE)
-        set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+    if(_libraries_work)
+      if (BLA_STATIC)
+        if (WIN32)
+          set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+        endif ()
+        if (APPLE)
+          set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
+        else ()
+          set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+        endif ()
       else ()
-        set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-      endif ()
-    else ()
-      if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
-        # for ubuntu's libblas3gf and liblapack3gf packages
-        set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+        if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+          # for ubuntu's libblas3gf and liblapack3gf packages
+          set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
+        endif ()
       endif ()
-    endif ()
-    find_library(${_prefix}_${_library}_LIBRARY
-      NAMES ${_library}
-      PATHS ${_libdir}
-      )
-    mark_as_advanced(${_prefix}_${_library}_LIBRARY)
-    set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
-    set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+      find_library(${_prefix}_${_library}_LIBRARY
+        NAMES ${_library}
+        PATHS ${_libdir}
+        )
+      mark_as_advanced(${_prefix}_${_library}_LIBRARY)
+      set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+      set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+    endif()
+  endforeach()
+  if(_libraries_work)
+    # Test this combination of libraries.
+    set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
+    #  message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
+    if (CMAKE_Fortran_COMPILER_LOADED)
+      check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
+    else()
+      check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+    endif()
+    set(CMAKE_REQUIRED_LIBRARIES)
+    mark_as_advanced(${_prefix}${_combined_name}_WORKS)
+    set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
   endif()
-endforeach()
-if(_libraries_work)
-  # Test this combination of libraries.
-  set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
-#  message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
-  if (CMAKE_Fortran_COMPILER_LOADED)
-    check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
-  else()
-    check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
+  if(NOT _libraries_work)
+    set(${LIBRARIES} FALSE)
   endif()
-  set(CMAKE_REQUIRED_LIBRARIES)
-  mark_as_advanced(${_prefix}${_combined_name}_WORKS)
-  set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
-endif()
-if(NOT _libraries_work)
-  set(${LIBRARIES} FALSE)
-endif()
-#message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
+  #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
 endmacro()
 
 set(BLAS_LINKER_FLAGS)
@@ -181,515 +181,515 @@ else ()
 endif ()
 
 if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "goto2"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "goto2"
+      ""
+      )
+  endif()
 endif ()
 
 if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  # OpenBLAS (http://www.openblas.net)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "openblas"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    # OpenBLAS (http://www.openblas.net)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "openblas"
+      ""
+      )
+  endif()
 endif ()
 
 if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  # FLAME's blis library (https://github.com/flame/blis)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "blis"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    # FLAME's blis library (https://github.com/flame/blis)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "blis"
+      ""
+      )
+  endif()
 endif ()
 
 if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  dgemm
-  ""
-  "f77blas;atlas"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      dgemm
+      ""
+      "f77blas;atlas"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
 if (BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "sgemm;dgemm;blas"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "sgemm;dgemm;blas"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in Alpha CXML library?
 if (BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "cxml"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "cxml"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in Alpha DXML library? (now called CXML, see above)
 if (BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "dxml"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "dxml"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in Sun Performance library?
 if (BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  "-xlic_lib=sunperf"
-  "sunperf;sunmath"
-  ""
-  )
-  if(BLAS_LIBRARIES)
-    set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      "-xlic_lib=sunperf"
+      "sunperf;sunmath"
+      ""
+      )
+    if(BLAS_LIBRARIES)
+      set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
+    endif()
   endif()
- endif()
 endif ()
 
 # BLAS in SCSL library?  (SGI/Cray Scientific Library)
 if (BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "scsl"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "scsl"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in SGIMATH library?
 if (BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "complib.sgimath"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "complib.sgimath"
+      ""
+      )
+  endif()
 endif ()
 
 # BLAS in IBM ESSL library? (requires generic BLAS lib, too)
 if (BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "essl;blas"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "essl;blas"
+      ""
+      )
+  endif()
 endif ()
 
 #BLAS in acml library?
 if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
- if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
-     ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
-     ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
-   )
-   # try to find acml in "standard" paths
-   if( WIN32 )
+  if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
+    ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
+    ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
+    )
+  # try to find acml in "standard" paths
+  if( WIN32 )
     file( GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt" )
-   else()
+  else()
     file( GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt" )
-   endif()
-   if( WIN32 )
+  endif()
+  if( WIN32 )
     file( GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples" )
-   else()
+  else()
     file( GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples" )
-   endif()
-   list(GET _ACML_ROOT 0 _ACML_ROOT)
-   list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
-   if( _ACML_ROOT )
+  endif()
+  list(GET _ACML_ROOT 0 _ACML_ROOT)
+  list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
+  if( _ACML_ROOT )
     get_filename_component( _ACML_ROOT ${_ACML_ROOT} PATH )
     if( SIZEOF_INTEGER EQUAL 8 )
-     set( _ACML_PATH_SUFFIX "_int64" )
+      set( _ACML_PATH_SUFFIX "_int64" )
+    else()
+      set( _ACML_PATH_SUFFIX "" )
+    endif()
+    if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
+      set( _ACML_COMPILER32 "ifort32" )
+      set( _ACML_COMPILER64 "ifort64" )
+    elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
+      set( _ACML_COMPILER32 "sun32" )
+      set( _ACML_COMPILER64 "sun64" )
+    elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
+      set( _ACML_COMPILER32 "pgi32" )
+      if( WIN32 )
+        set( _ACML_COMPILER64 "win64" )
+      else()
+        set( _ACML_COMPILER64 "pgi64" )
+      endif()
+    elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
+      # 32 bit builds not supported on Open64 but for code simplicity
+      # We'll just use the same directory twice
+      set( _ACML_COMPILER32 "open64_64" )
+      set( _ACML_COMPILER64 "open64_64" )
+    elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
+      set( _ACML_COMPILER32 "nag32" )
+      set( _ACML_COMPILER64 "nag64" )
     else()
-    set( _ACML_PATH_SUFFIX "" )
-   endif()
-   if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
-    set( _ACML_COMPILER32 "ifort32" )
-    set( _ACML_COMPILER64 "ifort64" )
-   elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
-    set( _ACML_COMPILER32 "sun32" )
-    set( _ACML_COMPILER64 "sun64" )
-   elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
-    set( _ACML_COMPILER32 "pgi32" )
-    if( WIN32 )
-     set( _ACML_COMPILER64 "win64" )
+      set( _ACML_COMPILER32 "gfortran32" )
+      set( _ACML_COMPILER64 "gfortran64" )
+    endif()
+
+    if( BLA_VENDOR STREQUAL "ACML_MP" )
+      set(_ACML_MP_LIB_DIRS
+        "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
+        "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
     else()
-     set( _ACML_COMPILER64 "pgi64" )
+      set(_ACML_LIB_DIRS
+        "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
+        "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
     endif()
-   elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
-    # 32 bit builds not supported on Open64 but for code simplicity
-    # We'll just use the same directory twice
-    set( _ACML_COMPILER32 "open64_64" )
-    set( _ACML_COMPILER64 "open64_64" )
-   elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
-    set( _ACML_COMPILER32 "nag32" )
-    set( _ACML_COMPILER64 "nag64" )
-   else()
-    set( _ACML_COMPILER32 "gfortran32" )
-    set( _ACML_COMPILER64 "gfortran64" )
-   endif()
-
-   if( BLA_VENDOR STREQUAL "ACML_MP" )
-    set(_ACML_MP_LIB_DIRS
-     "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
-     "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
-   else()
-    set(_ACML_LIB_DIRS
-     "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
-     "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
-   endif()
   endif()
- elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
-   set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
- endif()
+elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
+  set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
+endif()
 
- if( BLA_VENDOR STREQUAL "ACML_MP" )
+if( BLA_VENDOR STREQUAL "ACML_MP" )
   foreach( BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
-   check_fortran_libraries (
-     BLAS_LIBRARIES
-     BLAS
-     sgemm
-     "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
-   )
-   if( BLAS_LIBRARIES )
-    break()
-   endif()
+    check_fortran_libraries (
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
+      )
+    if( BLAS_LIBRARIES )
+      break()
+    endif()
   endforeach()
- elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
+elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
   foreach( BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
-   check_fortran_libraries (
-     BLAS_LIBRARIES
-     BLAS
-     sgemm
-     "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
-   )
-   if( BLAS_LIBRARIES )
-    break()
-   endif()
+    check_fortran_libraries (
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
+      )
+    if( BLAS_LIBRARIES )
+      break()
+    endif()
   endforeach()
- else()
+else()
   foreach( BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS} )
-   check_fortran_libraries (
-     BLAS_LIBRARIES
-     BLAS
-     sgemm
-     "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
-   )
-   if( BLAS_LIBRARIES )
-    break()
-   endif()
+    check_fortran_libraries (
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
+      )
+    if( BLAS_LIBRARIES )
+      break()
+    endif()
   endforeach()
- endif()
+endif()
 
- # Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
- if(NOT BLAS_LIBRARIES)
+# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
+if(NOT BLAS_LIBRARIES)
   check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "acml;acml_mv"
-  ""
-  )
- endif()
- if(NOT BLAS_LIBRARIES)
+    BLAS_LIBRARIES
+    BLAS
+    sgemm
+    ""
+    "acml;acml_mv"
+    ""
+    )
+endif()
+if(NOT BLAS_LIBRARIES)
   check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "acml_mp;acml_mv"
-  ""
-  )
- endif()
- if(NOT BLAS_LIBRARIES)
+    BLAS_LIBRARIES
+    BLAS
+    sgemm
+    ""
+    "acml_mp;acml_mv"
+    ""
+    )
+endif()
+if(NOT BLAS_LIBRARIES)
   check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "acml;acml_mv;CALBLAS"
-  ""
-  )
- endif()
+    BLAS_LIBRARIES
+    BLAS
+    sgemm
+    ""
+    "acml;acml_mv;CALBLAS"
+    ""
+    )
+endif()
 endif () # ACML
 
 # Apple BLAS library?
 if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
-if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  dgemm
-  ""
-  "Accelerate"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      dgemm
+      ""
+      "Accelerate"
+      ""
+      )
+  endif()
 endif ()
 
 if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
- if ( NOT BLAS_LIBRARIES )
+  if ( NOT BLAS_LIBRARIES )
     check_fortran_libraries(
-    BLAS_LIBRARIES
-    BLAS
-    dgemm
-    ""
-    "vecLib"
-    ""
-    )
- endif ()
+      BLAS_LIBRARIES
+      BLAS
+      dgemm
+      ""
+      "vecLib"
+      ""
+      )
+  endif ()
 endif ()
 # Generic BLAS library?
 if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
-  check_fortran_libraries(
-  BLAS_LIBRARIES
-  BLAS
-  sgemm
-  ""
-  "blas"
-  ""
-  )
- endif()
+  if(NOT BLAS_LIBRARIES)
+    check_fortran_libraries(
+      BLAS_LIBRARIES
+      BLAS
+      sgemm
+      ""
+      "blas"
+      ""
+      )
+  endif()
 endif ()
 
 #BLAS in intel mkl 10 library? (em64t 64bit)
 if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
- if (NOT WIN32)
-  set(LM "-lm")
- endif ()
- if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
-  if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
-    find_package(Threads)
-  else()
-    find_package(Threads REQUIRED)
-  endif()
-
-  set(BLAS_SEARCH_LIBS "")
-
-  if(BLA_F95)
-    set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
-    set(_LIBRARIES BLAS95_LIBRARIES)
-    if (WIN32)
-      if (BLA_STATIC)
-        set(BLAS_mkl_DLL_SUFFIX "")
-      else()
-        set(BLAS_mkl_DLL_SUFFIX "_dll")
-      endif()
+  if (NOT WIN32)
+    set(LM "-lm")
+  endif ()
+  if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
+    if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
+      find_package(Threads)
+    else()
+      find_package(Threads REQUIRED)
+    endif()
 
-      # Find the main file (32-bit or 64-bit)
-      set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-      if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-          "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-      endif()
-      if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-          "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-      endif ()
+    set(BLAS_SEARCH_LIBS "")
 
-      # Add threading/sequential libs
-      set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-      if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-      endif()
-      if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-        # old version
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-        # mkl >= 10.3
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-      endif()
+    if(BLA_F95)
+      set(BLAS_mkl_SEARCH_SYMBOL SGEMM)
+      set(_LIBRARIES BLAS95_LIBRARIES)
+      if (WIN32)
+        if (BLA_STATIC)
+          set(BLAS_mkl_DLL_SUFFIX "")
+        else()
+          set(BLAS_mkl_DLL_SUFFIX "_dll")
+        endif()
+
+        # Find the main file (32-bit or 64-bit)
+        set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+            "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+        if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+            "mkl_blas95_lp64${BLAS_mkl_DLL_SUFFIX} mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+        endif ()
 
-      # Cartesian product of the above
-      foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-        foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
-          list(APPEND BLAS_SEARCH_LIBS
-            "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+        # Add threading/sequential libs
+        set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+        if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+        if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+          # old version
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          # mkl >= 10.3
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+
+        # Cartesian product of the above
+        foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+          foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+            list(APPEND BLAS_SEARCH_LIBS
+              "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+          endforeach()
         endforeach()
-      endforeach()
-    else ()
-      if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
-      endif ()
-      if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-        # old version
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
-
-        # mkl >= 10.3
-        if (CMAKE_C_COMPILER MATCHES ".+gcc")
+      else ()
+        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
           list(APPEND BLAS_SEARCH_LIBS
-            "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-        else ()
+            "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
+        endif ()
+        if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+          # old version
           list(APPEND BLAS_SEARCH_LIBS
-            "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            "mkl_blas95 mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+          # mkl >= 10.3
+          if (CMAKE_C_COMPILER MATCHES ".+gcc")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_blas95_lp64 mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+          else ()
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_blas95_lp64 mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+          endif ()
         endif ()
-      endif ()
-      if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_intel_lp64 mkl_sequential mkl_core")
-      endif ()
-    endif ()
-  else ()
-    set(BLAS_mkl_SEARCH_SYMBOL sgemm)
-    set(_LIBRARIES BLAS_LIBRARIES)
-    if (WIN32)
-      if (BLA_STATIC)
-        set(BLAS_mkl_DLL_SUFFIX "")
-      else()
-        set(BLAS_mkl_DLL_SUFFIX "_dll")
-      endif()
-
-      # Find the main file (32-bit or 64-bit)
-      set(BLAS_SEARCH_LIBS_WIN_MAIN "")
-      if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-          "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
-      endif()
-      if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
-          "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
-      endif ()
-
-      # Add threading/sequential libs
-      set(BLAS_SEARCH_LIBS_WIN_THREAD "")
-      if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-        # old version
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-        # mkl >= 10.3
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
-      endif()
-      if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
-          "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
-      endif()
-
-      # Cartesian product of the above
-      foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
-        foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+        if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
           list(APPEND BLAS_SEARCH_LIBS
-            "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
-        endforeach()
-      endforeach()
-    else ()
-      if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_intel mkl_intel_thread mkl_core guide")
+            "mkl_intel_lp64 mkl_sequential mkl_core")
+        endif ()
       endif ()
-      if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+    else ()
+      set(BLAS_mkl_SEARCH_SYMBOL sgemm)
+      set(_LIBRARIES BLAS_LIBRARIES)
+      if (WIN32)
+        if (BLA_STATIC)
+          set(BLAS_mkl_DLL_SUFFIX "")
+        else()
+          set(BLAS_mkl_DLL_SUFFIX "_dll")
+        endif()
+
+        # Find the main file (32-bit or 64-bit)
+        set(BLAS_SEARCH_LIBS_WIN_MAIN "")
+        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+            "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+        if (BLA_VENDOR MATCHES "^Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
+            "mkl_intel_lp64${BLAS_mkl_DLL_SUFFIX}")
+        endif ()
 
-        # old version
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+        # Add threading/sequential libs
+        set(BLAS_SEARCH_LIBS_WIN_THREAD "")
+        if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+          # old version
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+          # mkl >= 10.3
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+        if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
+            "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
+        endif()
+
+        # Cartesian product of the above
+        foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
+          foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
+            list(APPEND BLAS_SEARCH_LIBS
+              "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
+          endforeach()
+        endforeach()
+      else ()
+        if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS
+            "mkl_intel mkl_intel_thread mkl_core guide")
+        endif ()
+        if (BLA_VENDOR STREQUAL "Intel10_64lp" OR BLA_VENDOR STREQUAL "All")
 
-        # mkl >= 10.3
-        if (CMAKE_C_COMPILER MATCHES ".+gcc")
+          # old version
           list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
-        else ()
+            "mkl_intel_lp64 mkl_intel_thread mkl_core guide")
+
+          # mkl >= 10.3
+          if (CMAKE_C_COMPILER MATCHES ".+gcc")
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel_lp64 mkl_gnu_thread mkl_core gomp")
+          else ()
+            list(APPEND BLAS_SEARCH_LIBS
+              "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+          endif ()
+        endif ()
+        if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
           list(APPEND BLAS_SEARCH_LIBS
-            "mkl_intel_lp64 mkl_intel_thread mkl_core iomp5")
+            "mkl_intel_lp64 mkl_sequential mkl_core")
         endif ()
-      endif ()
-      if (BLA_VENDOR STREQUAL "Intel10_64lp_seq" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_intel_lp64 mkl_sequential mkl_core")
-      endif ()
 
-      #older vesions of intel mkl libs
-      if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_ia32")
-        list(APPEND BLAS_SEARCH_LIBS
-          "mkl_em64t")
+        #older vesions of intel mkl libs
+        if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
+          list(APPEND BLAS_SEARCH_LIBS
+            "mkl")
+          list(APPEND BLAS_SEARCH_LIBS
+            "mkl_ia32")
+          list(APPEND BLAS_SEARCH_LIBS
+            "mkl_em64t")
+        endif ()
       endif ()
     endif ()
-  endif ()
 
-  foreach (IT ${BLAS_SEARCH_LIBS})
-    string(REPLACE " " ";" SEARCH_LIBS ${IT})
-    if (NOT ${_LIBRARIES})
-      check_fortran_libraries(
-        ${_LIBRARIES}
-        BLAS
-        ${BLAS_mkl_SEARCH_SYMBOL}
-        ""
-        "${SEARCH_LIBS}"
-        "${CMAKE_THREAD_LIBS_INIT};${LM}"
-        )
-    endif ()
-  endforeach ()
+    foreach (IT ${BLAS_SEARCH_LIBS})
+      string(REPLACE " " ";" SEARCH_LIBS ${IT})
+      if (NOT ${_LIBRARIES})
+        check_fortran_libraries(
+          ${_LIBRARIES}
+          BLAS
+          ${BLAS_mkl_SEARCH_SYMBOL}
+          ""
+          "${SEARCH_LIBS}"
+          "${CMAKE_THREAD_LIBS_INIT};${LM}"
+          )
+      endif ()
+    endforeach ()
 
- endif ()
+  endif ()
 endif ()
 
 if(BLA_F95)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=31301b46a726e8c95836e885bb8a7f5cc5221c49
commit 31301b46a726e8c95836e885bb8a7f5cc5221c49
Author:     Clinton Stimpson <clinton at elemtech.com>
AuthorDate: Tue Aug 28 10:37:34 2018 -0600
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 30 10:38:28 2018 -0400

    file: Allow DOWNLOAD/UPLOAD using alternate authentication methods

diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 0c80319..d49e490 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -2886,6 +2886,10 @@ bool cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
   ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
   check_curl_result(res, "DOWNLOAD cannot set url: ");
 
+  // enable auth
+  res = ::curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
+  check_curl_result(res, "DOWNLOAD cannot set httpauth: ");
+
   // enable HTTP ERROR parsing
   res = ::curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1);
   check_curl_result(res, "DOWNLOAD cannot set http failure option: ");
@@ -3185,6 +3189,10 @@ bool cmFileCommand::HandleUploadCommand(std::vector<std::string> const& args)
   res = ::curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
   check_curl_result(res, "UPLOAD cannot set url: ");
 
+  // enable auth
+  res = ::curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
+  check_curl_result(res, "UPLOAD cannot set httpauth: ");
+
   res =
     ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, cmWriteToMemoryCallback);
   check_curl_result(res, "UPLOAD cannot set write function: ");

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-variables.7.rst           |    1 +
 Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst |    8 +
 Modules/CheckIPOSupported.cmake             |   15 +-
 Modules/FindBLAS.cmake                      | 1024 ++++++++++++++-------------
 Source/cmFileCommand.cxx                    |    8 +
 Source/cmGlobalGenerator.cxx                |    4 +-
 Source/cmGlobalGenerator.h                  |    2 +-
 Source/cmInstallCommand.cxx                 |   26 +-
 Source/cmVisualStudio10TargetGenerator.cxx  |    6 +-
 9 files changed, 574 insertions(+), 520 deletions(-)
 create mode 100644 Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list