1function(add_BLAS_LAPACK_tests var) 2 if(var MATCHES "^CMake_TEST_Find(BLAS|LAPACK)$") 3 set(package "${CMAKE_MATCH_1}") 4 else() 5 message(FATAL_ERROR "Test list variable '${var}' not supported.") 6 endif() 7 8 set(all "") 9 set(compiler "") 10 set(model "") 11 set(static "") 12 13 set(sizeof_int_lp64 4) 14 set(sizeof_int_ilp64 8) 15 16 foreach(variant IN LISTS ${var}) 17 if(variant MATCHES "^(all|compiler|model|static)=(.*)$") 18 set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}") 19 continue() 20 elseif(variant MATCHES "^([^=]+)=(.*)$") 21 message(FATAL_ERROR "Unknown variable '${variant}'") 22 endif() 23 set(variant_name "${variant}") 24 set(variant_options "-DBLA_VENDOR=${variant}") 25 if(variant STREQUAL "All" AND all) 26 list(APPEND variant_options "-DEXPECT_All=${all}") 27 endif() 28 if(model) 29 if(NOT variant_name MATCHES "Intel10_64") 30 string(APPEND variant_name "_${model}") 31 endif() 32 list(APPEND variant_options "-DBLA_SIZEOF_INTEGER=${sizeof_int_${model}}") 33 endif() 34 if(compiler) 35 string(APPEND variant_name "_${compiler}") 36 list(APPEND variant_options "-DCMAKE_C_COMPILER=${compiler}") 37 endif() 38 if(static) 39 string(APPEND variant_name "_Static") 40 list(APPEND variant_options "-DBLA_STATIC=ON") 41 endif() 42 add_test(NAME Find${package}.Test_${variant_name} COMMAND 43 ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> 44 --build-and-test 45 "${CMake_SOURCE_DIR}/Tests/Find${package}/Test" 46 "${CMake_BINARY_DIR}/Tests/Find${package}/Test_${variant_name}" 47 ${build_generator_args} 48 --build-project TestFind${package} 49 --build-options ${build_options} ${variant_options} 50 --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> 51 ) 52 endforeach() 53endfunction() 54