Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 20 additions & 53 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -184,63 +184,30 @@ if(COMMIT_INFO)
endif()
endif()

# Different exe files of ABACUS
unset(ABACUS_BIN_NAME CACHE)
# Determine the ABACUS executable name.
if(NOT ENABLE_LCAO)
set(_abacus_bin_feature "pw")
elseif(ENABLE_LIBRI AND ENABLE_MLALGO)
set(_abacus_bin_feature "max")
elseif(ENABLE_LIBRI)
set(_abacus_bin_feature "std")
elseif(ENABLE_MLALGO)
set(_abacus_bin_feature "ml")
else()
set(_abacus_bin_feature "basic")
endif()

# Case : LCAO or PW
if(ENABLE_LCAO)
# Case: CUDA is enabled (suffix with 'g' for GPU)
if(USE_CUDA)
if(ENABLE_MPI)
if(NOT ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_basic_gpu)
elseif(ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_std_gpu)
elseif(NOT ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_ml_gpu)
elseif(ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_max_gpu)
endif()
endif()
# Case: CPU is enabled (suffix with 'p' for parallel)
else()
if(ENABLE_MPI)
if(NOT ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_basic_para)
elseif(ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_std_para)
elseif(NOT ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_ml_para)
elseif(ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_max_para)
endif()
else()
if(NOT ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_basic_ser)
elseif(ENABLE_LIBRI AND NOT ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_std_ser)
elseif(NOT ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_ml_ser)
elseif(ENABLE_LIBRI AND ENABLE_MLALGO)
set(ABACUS_BIN_NAME abacus_max_ser)
endif()
endif()
endif()
# Case : PW only
if(USE_CUDA OR USE_ROCM)
set(_abacus_bin_backend "gpu")
elseif(ENABLE_MPI)
set(_abacus_bin_backend "para")
elseif(ENABLE_OPENMP)
set(_abacus_bin_backend "omp")
else()
if(USE_CUDA)
if(ENABLE_MPI)
set(ABACUS_BIN_NAME abacus_pw_gpu)
endif()
else()
if(ENABLE_MPI)
set(ABACUS_BIN_NAME abacus_pw_para)
else()
set(ABACUS_BIN_NAME abacus_pw_ser)
endif()
endif()
set(_abacus_bin_backend "ser")
endif()

set(ABACUS_BIN_NAME "abacus_${_abacus_bin_feature}_${_abacus_bin_backend}")

# Use DSP hardware
if (USE_DSP)
Expand Down
Loading