quantum-espresso/external/wannier90.cmake

83 lines
3.1 KiB
CMake

###########################################################
# WANNIER90
###########################################################
if(QE_WANNIER90_INTERNAL)
message(STATUS "Installing Wannier90 via submodule")
qe_git_submodule_update(external/wannier90)
set(sources
wannier90/src/comms.F90
wannier90/src/constants.F90
wannier90/src/disentangle.F90
wannier90/src/hamiltonian.F90
wannier90/src/io.F90
wannier90/src/kmesh.F90
wannier90/src/overlap.F90
wannier90/src/parameters.F90
wannier90/src/plot.F90
wannier90/src/postw90/berry.F90
wannier90/src/postw90/boltzwann.F90
wannier90/src/postw90/dos.F90
wannier90/src/postw90/geninterp.F90
wannier90/src/postw90/get_oper.F90
wannier90/src/postw90/gyrotropic.F90
wannier90/src/postw90/kpath.F90
wannier90/src/postw90/kslice.F90
wannier90/src/postw90/postw90_common.F90
wannier90/src/postw90/spin.F90
wannier90/src/postw90/wan_ham.F90
wannier90/src/sitesym.F90
wannier90/src/transport.F90
wannier90/src/utility.F90
wannier90/src/wannierise.F90
wannier90/src/wannier_lib.F90
wannier90/src/ws_distance.F90)
qe_add_library(qe_wannier90 ${sources})
target_link_libraries(qe_wannier90 PRIVATE qe_lapack)
###########################################################
# wannier90.x
###########################################################
set(sources wannier90/src/wannier_prog.F90)
qe_add_executable(qe_wannier90_exe ${sources})
set_target_properties(qe_wannier90_exe PROPERTIES OUTPUT_NAME wannier90.x)
target_link_libraries(qe_wannier90_exe PRIVATE qe_wannier90)
###########################################################
# w90chk2chk.x
###########################################################
set(sources wannier90/src/w90chk2chk.F90)
qe_add_executable(qe_w90chk2chk_exe ${sources})
set_target_properties(qe_w90chk2chk_exe PROPERTIES OUTPUT_NAME w90chk2chk.x)
target_link_libraries(qe_w90chk2chk_exe PRIVATE qe_wannier90)
###########################################################
# postw90.x
###########################################################
set(sources wannier90/src/postw90/postw90.F90)
qe_add_executable(qe_wannier90_postw90_exe ${sources})
set_target_properties(qe_wannier90_postw90_exe PROPERTIES OUTPUT_NAME postw90.x)
target_link_libraries(qe_wannier90_postw90_exe PRIVATE qe_wannier90)
###########################################################
add_custom_target(w90
DEPENDS
qe_wannier90 qe_wannier90_exe qe_w90chk2chk_exe qe_wannier90_postw90_exe
COMMENT
"Maximally localised Wannier Functions")
qe_install_targets(
# Libraries
qe_wannier90
# Executables
qe_wannier90_exe qe_w90chk2chk_exe qe_wannier90_postw90_exe)
else()
add_library(qe_wannier90 INTERFACE)
qe_install_targets(qe_wannier90)
find_package(Wannier90 REQUIRED)
target_link_libraries(qe_wannier90 INTERFACE Wannier90::Wannier90)
endif()