fixes to the FindLibxc logic

This commit is contained in:
toxa81 2021-03-05 17:39:55 +01:00
parent 7ac0a4e6b2
commit 9395493fdd
2 changed files with 31 additions and 5 deletions

View File

@ -367,7 +367,10 @@ qe_install_targets(qe_external_libxc)
if(QE_ENABLE_LIBXC)
target_compile_definitions(qe_external_libxc INTERFACE "__LIBXC")
find_package(Libxc 5.1.2 REQUIRED COMPONENTS Fortran)
find_package(Libxc 5.1.2 COMPONENTS Fortran)
if (NOT Libxc_FOUND)
find_package(Libxc 5.1.2 COMPONENTS Fortran CONFIG)
endif()
if(${Libxc_FOUND})
if (${Libxc_VERSION} VERSION_GREATER_EQUAL "5.1.2" )

View File

@ -11,6 +11,14 @@ find_library(LIBXC_LIBRARIES NAMES xc
${_LIBXC_LIBRARY_DIRS}
DOC "libxc libraries list")
find_library(LIBXC_LIBRARIES_F90 NAMES xcf90
PATH_SUFFIXES lib
HINTS
ENV EBROOTLIBXC
ENV LIBXCROOT
${_LIBXC_LIBRARY_DIRS}
DOC "libxc libraries list")
find_library(LIBXC_LIBRARIES_F03 NAMES xcf03
PATH_SUFFIXES lib
HINTS
@ -19,22 +27,37 @@ find_library(LIBXC_LIBRARIES_F03 NAMES xcf03
${_LIBXC_LIBRARY_DIRS}
DOC "libxc libraries list")
find_path(LIBXC_INCLUDE_DIR NAMES xc.h xc_f90_types_m.mod xc_f03_lib_m.mod
find_path(LIBXC_INCLUDE_DIR NAMES xc.h
PATH_SUFFIXES inc include
HINTS
${_LIBXC_INCLUDE_DIRS}
ENV EBROOTLIBXC
ENV LIBXCROOT
)
ENV LIBXCROOT)
find_path(LIBXC_INCLUDE_DIR_F90 NAMES xc_f90_lib_m.mod
PATH_SUFFIXES inc include
HINTS
${_LIBXC_INCLUDE_DIRS}
ENV EBROOTLIBXC
ENV LIBXCROOT)
find_path(LIBXC_INCLUDE_DIR_F03 NAMES xc_f03_lib_m.mod
PATH_SUFFIXES inc include
HINTS
${_LIBXC_INCLUDE_DIRS}
ENV EBROOTLIBXC
ENV LIBXCROOT)
find_package_handle_standard_args(Libxc DEFAULT_MSG LIBXC_LIBRARIES LIBXC_INCLUDE_DIR)
if (Libxc_FOUND)
if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F90 AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F90 AND LIBXC_INCLUDE_DIR_F03)
set(Libxc_VERSION ${Libxc_FIND_VERSION})
set(Libxc_INCLUDE_DIR ${LIBXC_INCLUDE_DIR})
add_library(Libxc::xcf03 INTERFACE IMPORTED)
set_target_properties(Libxc::xcf03 PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${LIBXC_INCLUDE_DIR}"
INTERFACE_LINK_LIBRARIES "${LIBXC_LIBRARIES};${LIBXC_LIBRARIES_F03}")
else()
unset(Libxc_FOUND)
endif()