diff --git a/CMakeLists.txt b/CMakeLists.txt index e4b2bd8a1..a1c323d96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -209,41 +209,6 @@ else() endif() endif() -find_package(hip) - -if(hip_FOUND) - get_filename_component(CXX_COMPILER ${CMAKE_CXX_COMPILER} NAME) - if(hip_VERSION VERSION_LESS "5.3") - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - message(WARNING " Cannot use gcc for rocm < 5.3") - unset(HAVE_ROCSPARSE) - endif() - find_package(rocalution) - if(ROCALUTION_FOUND) - set(HAVE_ROCALUTION 1) - set(COMPILE_BDA_BRIDGE 1) - endif() - else() - find_package(rocblas) - find_package(rocsparse) - if(rocsparse_FOUND AND rocblas_FOUND) - set(HAVE_ROCSPARSE 1) - set(COMPILE_BDA_BRIDGE 1) - else() - unset(HAVE_ROCSPARSE) - endif() - if(${CXX_COMPILER} STREQUAL "hipcc") - find_package(rocalution) - if(ROCALUTION_FOUND) - set(HAVE_ROCALUTION 1) - set(COMPILE_BDA_BRIDGE 1) - endif() - else() - message(WARNING " Cannot use hipcc for rocm >= 5.4") - endif() - endif() -endif() - find_package(amgcl) if(amgcl_FOUND) set(HAVE_AMGCL 1) @@ -291,6 +256,34 @@ macro (config_hook) include_directories(${EXTRA_INCLUDES}) include(UseDamaris) + + if(hip_FOUND) + get_filename_component(CXX_COMPILER ${CMAKE_CXX_COMPILER} NAME) + if(${CXX_COMPILER} STREQUAL "hipcc") + message(FATAL_ERROR " hipcc does not work, use g++ or clang++") + endif() + if(hip_VERSION VERSION_LESS "5.3") + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + message(WARNING " Cannot use g++ for rocsparse with rocm < 5.3\n Disabling rocsparseSolver") + unset(HAVE_ROCSPARSE) + endif() + if(ROCALUTION_FOUND) + set(HAVE_ROCALUTION 1) + set(COMPILE_BDA_BRIDGE 1) + endif() + else() + if(rocsparse_FOUND AND rocblas_FOUND) + set(HAVE_ROCSPARSE 1) + set(COMPILE_BDA_BRIDGE 1) + else() + unset(HAVE_ROCSPARSE) + endif() + if(ROCALUTION_FOUND) + set(HAVE_ROCALUTION 1) + set(COMPILE_BDA_BRIDGE 1) + endif() + endif() + endif() endmacro (config_hook) macro (prereqs_hook)