Browse Source

ci: Verify that Intel MKL is found when it is the only BLAS/LAPACK

Issue: #22403
Brad King 4 years ago
parent
commit
31ac4b9165

+ 8 - 4
.gitlab/ci/configure_intelcompiler_common.cmake

@@ -1,6 +1,10 @@
-set(CMake_TEST_FindBLAS "Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
-set(CMake_TEST_FindBLAS_STATIC "Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
-set(CMake_TEST_FindLAPACK "Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
-set(CMake_TEST_FindLAPACK_STATIC "Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindBLAS "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindBLAS_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindLAPACK "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC_All "Intel10_64lp" CACHE STRING "")
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 12 - 2
Tests/FindBLAS/CMakeLists.txt

@@ -6,6 +6,11 @@ foreach(variant IN LISTS CMake_TEST_FindBLAS)
     set(vendor "${variant}")
     set(alt_compiler "")
   endif()
+  if(vendor STREQUAL "All" AND CMake_TEST_FindBLAS_All)
+    set(EXPECT_All "-DEXPECT_All=${CMake_TEST_FindBLAS_All}")
+  else()
+    set(EXPECT_All "")
+  endif()
   add_test(NAME FindBLAS.Test_${variant} COMMAND
     ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
     --build-and-test
@@ -13,7 +18,7 @@ foreach(variant IN LISTS CMake_TEST_FindBLAS)
     "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${variant}"
     ${build_generator_args}
     --build-project TestFindBLAS
-    --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor}
+    --build-options ${build_options} ${alt_compiler} ${EXPECT_All} -DBLA_VENDOR=${vendor}
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
 endforeach()
@@ -26,6 +31,11 @@ foreach(variant IN LISTS CMake_TEST_FindBLAS_STATIC)
     set(vendor "${variant}")
     set(alt_compiler "")
   endif()
+  if(vendor STREQUAL "All" AND CMake_TEST_FindBLAS_STATIC_All)
+    set(EXPECT_All "-DEXPECT_All=${CMake_TEST_FindBLAS_STATIC_All}")
+  else()
+    set(EXPECT_All "")
+  endif()
   add_test(NAME FindBLAS.Test_${variant}_Static COMMAND
     ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
     --build-and-test
@@ -33,7 +43,7 @@ foreach(variant IN LISTS CMake_TEST_FindBLAS_STATIC)
     "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${variant}_Static"
     ${build_generator_args}
     --build-project TestFindBLAS
-    --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON
+    --build-options ${build_options} ${alt_compiler} ${EXPECT_All} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
 endforeach()

+ 2 - 1
Tests/FindBLAS/Test/CMakeLists.txt

@@ -12,7 +12,8 @@ add_executable(test_var main.c)
 target_link_libraries(test_var PRIVATE ${BLAS_LIBRARIES})
 add_test(NAME test_var COMMAND test_var)
 
-if(BLA_VENDOR STREQUAL "Intel10_64lp")
+if((BLA_VENDOR STREQUAL "Intel10_64lp") OR
+   (BLA_VENDOR STREQUAL "All" AND EXPECT_All STREQUAL "Intel10_64lp"))
   if(NOT BLAS_LIBRARIES MATCHES "^(-Wl,--start-group;)?[^;]*mkl_intel_lp64")
     message(FATAL_ERROR "BLAS_LIBRARIES does not start in mkl_intel_lp64:\n ${BLAS_LIBRARIES}")
   endif()

+ 12 - 2
Tests/FindLAPACK/CMakeLists.txt

@@ -6,6 +6,11 @@ foreach(variant IN LISTS CMake_TEST_FindLAPACK)
     set(vendor "${variant}")
     set(alt_compiler "")
   endif()
+  if(vendor STREQUAL "All" AND CMake_TEST_FindLAPACK_All)
+    set(EXPECT_All "-DEXPECT_All=${CMake_TEST_FindLAPACK_All}")
+  else()
+    set(EXPECT_All "")
+  endif()
   add_test(NAME FindLAPACK.Test_${variant} COMMAND
     ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
     --build-and-test
@@ -13,7 +18,7 @@ foreach(variant IN LISTS CMake_TEST_FindLAPACK)
     "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${variant}"
     ${build_generator_args}
     --build-project TestFindLAPACK
-    --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor}
+    --build-options ${build_options} ${alt_compiler} ${EXPECT_All} -DBLA_VENDOR=${vendor}
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
 endforeach()
@@ -26,6 +31,11 @@ foreach(variant IN LISTS CMake_TEST_FindLAPACK_STATIC)
     set(vendor "${variant}")
     set(alt_compiler "")
   endif()
+  if(vendor STREQUAL "All" AND CMake_TEST_FindLAPACK_STATIC_All)
+    set(EXPECT_All "-DEXPECT_All=${CMake_TEST_FindLAPACK_STATIC_All}")
+  else()
+    set(EXPECT_All "")
+  endif()
   add_test(NAME FindLAPACK.Test_${variant}_Static COMMAND
     ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
     --build-and-test
@@ -33,7 +43,7 @@ foreach(variant IN LISTS CMake_TEST_FindLAPACK_STATIC)
     "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${variant}_Static"
     ${build_generator_args}
     --build-project TestFindLAPACK
-    --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON
+    --build-options ${build_options} ${alt_compiler} ${EXPECT_All} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
 endforeach()

+ 2 - 1
Tests/FindLAPACK/Test/CMakeLists.txt

@@ -12,7 +12,8 @@ add_executable(test_var main.c)
 target_link_libraries(test_var PRIVATE ${LAPACK_LIBRARIES})
 add_test(NAME test_var COMMAND test_var)
 
-if(BLA_VENDOR STREQUAL "Intel10_64lp")
+if((BLA_VENDOR STREQUAL "Intel10_64lp") OR
+   (BLA_VENDOR STREQUAL "All" AND EXPECT_All STREQUAL "Intel10_64lp"))
   if(NOT LAPACK_LIBRARIES MATCHES "^(-Wl,--start-group;)?[^;]*mkl_intel_lp64")
     message(FATAL_ERROR "LAPACK_LIBRARIES does not start in mkl_intel_lp64:\n ${LAPACK_LIBRARIES}")
   endif()