diff options
-rw-r--r-- | .gitlab/ci/configure_intelcompiler_common.cmake | 8 | ||||
-rw-r--r-- | Modules/FindBLAS.cmake | 23 | ||||
-rw-r--r-- | Tests/FindBLAS/CMakeLists.txt | 30 | ||||
-rw-r--r-- | Tests/FindLAPACK/CMakeLists.txt | 30 |
4 files changed, 55 insertions, 36 deletions
diff --git a/.gitlab/ci/configure_intelcompiler_common.cmake b/.gitlab/ci/configure_intelcompiler_common.cmake index 79f657b..df3a696 100644 --- a/.gitlab/ci/configure_intelcompiler_common.cmake +++ b/.gitlab/ci/configure_intelcompiler_common.cmake @@ -1,6 +1,6 @@ -set(CMake_TEST_FindBLAS "Intel10_64lp" CACHE STRING "") -set(CMake_TEST_FindBLAS_STATIC "Intel10_64lp" CACHE STRING "") -set(CMake_TEST_FindLAPACK "Intel10_64lp" CACHE STRING "") -set(CMake_TEST_FindLAPACK_STATIC "Intel10_64lp" CACHE STRING "") +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 "") include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 0f8360a..826a9c2 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -337,21 +337,12 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE) set(BLAS_mkl_INTFACE "gf") set(BLAS_mkl_THREADING "gnu") + set(BLAS_mkl_OMP "gomp") else() set(BLAS_mkl_INTFACE "intel") set(BLAS_mkl_THREADING "intel") + set(BLAS_mkl_OMP "iomp5") endif() - - foreach(lang IN ITEMS C CXX Fortran) - if(CMAKE_${lang}_COMPILER_LOADED) - find_package(OpenMP COMPONENTS ${lang}) - if(${OpenMP_${lang}_FOUND}) - set(BLAS_mkl_OMP ${OpenMP_${lang}_LIBRARIES}) - break() - endif() - endif() - endforeach() - set(BLAS_mkl_LM "-lm") set(BLAS_mkl_LDL "-ldl") endif() @@ -416,7 +407,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") # mkl >= 10.3 list(APPEND BLAS_SEARCH_LIBS - "${BLAS_mkl_START_GROUP} mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP}") + "${BLAS_mkl_START_GROUP} mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}") endif() if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All") # old version @@ -425,7 +416,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") # mkl >= 10.3 list(APPEND BLAS_SEARCH_LIBS - "${BLAS_mkl_START_GROUP} mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP}") + "${BLAS_mkl_START_GROUP} mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}") endif() if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS @@ -481,7 +472,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") # mkl >= 10.3 list(APPEND BLAS_SEARCH_LIBS - "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP}") + "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}") endif() if(BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All") # old version @@ -490,7 +481,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") # mkl >= 10.3 list(APPEND BLAS_SEARCH_LIBS - "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP}") + "${BLAS_mkl_START_GROUP} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_END_GROUP} ${BLAS_mkl_OMP}") endif() if(BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All") list(APPEND BLAS_SEARCH_LIBS @@ -553,7 +544,7 @@ if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") ${BLAS_mkl_SEARCH_SYMBOL} "" "${SEARCH_LIBS}" - "${BLAS_mkl_OMP};${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}" + "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}" "${BLAS_mkl_MKLROOT}" "${BLAS_mkl_LIB_PATH_SUFFIXES}" ) diff --git a/Tests/FindBLAS/CMakeLists.txt b/Tests/FindBLAS/CMakeLists.txt index 63ef1dd..31c701e 100644 --- a/Tests/FindBLAS/CMakeLists.txt +++ b/Tests/FindBLAS/CMakeLists.txt @@ -1,25 +1,39 @@ -foreach(vendor IN LISTS CMake_TEST_FindBLAS) - add_test(NAME FindBLAS.Test_${vendor} COMMAND +foreach(variant IN LISTS CMake_TEST_FindBLAS) + if(variant MATCHES "^([^.]+)\\.(.*)$") + set(vendor "${CMAKE_MATCH_1}") + set(alt_compiler "-DCMAKE_C_COMPILER=${CMAKE_MATCH_2}") + else() + set(vendor "${variant}") + set(alt_compiler "") + endif() + add_test(NAME FindBLAS.Test_${variant} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test "${CMake_SOURCE_DIR}/Tests/FindBLAS/Test" - "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${vendor}" + "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${variant}" ${build_generator_args} --build-project TestFindBLAS - --build-options ${build_options} -DBLA_VENDOR=${vendor} + --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> ) endforeach() -foreach(vendor IN LISTS CMake_TEST_FindBLAS_STATIC) - add_test(NAME FindBLAS.Test_${vendor}_Static COMMAND +foreach(variant IN LISTS CMake_TEST_FindBLAS_STATIC) + if(variant MATCHES "^([^.]+)\\.(.*)$") + set(vendor "${CMAKE_MATCH_1}") + set(alt_compiler "-DCMAKE_C_COMPILER=${CMAKE_MATCH_2}") + else() + set(vendor "${variant}") + set(alt_compiler "") + endif() + add_test(NAME FindBLAS.Test_${variant}_Static COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test "${CMake_SOURCE_DIR}/Tests/FindBLAS/Test" - "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${vendor}_Static" + "${CMake_BINARY_DIR}/Tests/FindBLAS/Test_${variant}_Static" ${build_generator_args} --build-project TestFindBLAS - --build-options ${build_options} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON + --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> ) endforeach() diff --git a/Tests/FindLAPACK/CMakeLists.txt b/Tests/FindLAPACK/CMakeLists.txt index eab5bb4..26cfa87 100644 --- a/Tests/FindLAPACK/CMakeLists.txt +++ b/Tests/FindLAPACK/CMakeLists.txt @@ -1,25 +1,39 @@ -foreach(vendor IN LISTS CMake_TEST_FindLAPACK) - add_test(NAME FindLAPACK.Test_${vendor} COMMAND +foreach(variant IN LISTS CMake_TEST_FindLAPACK) + if(variant MATCHES "^([^.]+)\\.(.*)$") + set(vendor "${CMAKE_MATCH_1}") + set(alt_compiler "-DCMAKE_C_COMPILER=${CMAKE_MATCH_2}") + else() + set(vendor "${variant}") + set(alt_compiler "") + endif() + add_test(NAME FindLAPACK.Test_${variant} COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test "${CMake_SOURCE_DIR}/Tests/FindLAPACK/Test" - "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${vendor}" + "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${variant}" ${build_generator_args} --build-project TestFindLAPACK - --build-options ${build_options} -DBLA_VENDOR=${vendor} + --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> ) endforeach() -foreach(vendor IN LISTS CMake_TEST_FindLAPACK_STATIC) - add_test(NAME FindLAPACK.Test_${vendor}_Static COMMAND +foreach(variant IN LISTS CMake_TEST_FindLAPACK_STATIC) + if(variant MATCHES "^([^.]+)\\.(.*)$") + set(vendor "${CMAKE_MATCH_1}") + set(alt_compiler "-DCMAKE_C_COMPILER=${CMAKE_MATCH_2}") + else() + set(vendor "${variant}") + set(alt_compiler "") + endif() + add_test(NAME FindLAPACK.Test_${variant}_Static COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> --build-and-test "${CMake_SOURCE_DIR}/Tests/FindLAPACK/Test" - "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${vendor}_Static" + "${CMake_BINARY_DIR}/Tests/FindLAPACK/Test_${variant}_Static" ${build_generator_args} --build-project TestFindLAPACK - --build-options ${build_options} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON + --build-options ${build_options} ${alt_compiler} -DBLA_VENDOR=${vendor} -DBLA_STATIC=ON --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> ) endforeach() |