Add QE_ENABLE_FOX option.

This commit is contained in:
Ye Luo 2022-07-10 12:19:08 -05:00
parent a392ef3159
commit 5e356a46e4
2 changed files with 33 additions and 17 deletions

View File

@ -115,11 +115,22 @@ set(QE_FFTW_VENDOR "AUTO" CACHE
STRING "select a specific FFTW library [Intel_DFTI, Intel_FFTW3, ArmPL, IBMESSL, FFTW3, Internal]")
set(QE_ENABLE_SANITIZER "none" CACHE STRING "none,asan,ubsan,tsan,msan")
set(QE_ENABLE_PLUGINS "" CACHE STRING "Semicolon-separated list of plugins")
if(FOX_ROOT)
set(QE_FOX_INTERNAL OFF)
if(CMAKE_Fortran_COMPILER_ID MATCHES "PGI" OR CMAKE_Fortran_COMPILER_ID MATCHES "NVHPC")
set(FOX_DEFAULT ON)
else()
set(FOX_DEFAULT OFF)
endif()
option(QE_FOX_INTERNAL
"enable FoX intenal library" ON)
option(QE_ENABLE_FOX
"enable XML I/O via Fox library" ${FOX_DEFAULT})
if(QE_ENABLE_FOX)
if(FOX_ROOT)
set(QE_FOX_INTERNAL OFF)
endif()
option(QE_FOX_INTERNAL
"enable FoX intenal library" ON)
endif()
if(WANNIER90_ROOT)
set(QE_WANNIER90_INTERNAL OFF)
endif()

31
external/fox.cmake vendored
View File

@ -3,18 +3,23 @@
###########################################################
add_library(qe_fox INTERFACE)
qe_install_targets(qe_fox)
if(QE_FOX_INTERNAL)
message(STATUS "Installing FoX via submodule")
set(fox_targets FoX_fsys FoX_utils FoX_common FoX_dom FoX_sax FoX_wxml)
set(FoX_ENABLE_EXAMPLES
OFF
CACHE BOOL "" FORCE)
qe_git_submodule_update(external/fox)
add_subdirectory(fox EXCLUDE_FROM_ALL)
target_link_libraries(qe_fox INTERFACE ${fox_targets})
qe_fix_fortran_modules(${fox_targets})
qe_install_targets(${fox_targets})
if(QE_ENABLE_FOX)
if(QE_FOX_INTERNAL)
message(STATUS "Installing FoX via submodule")
set(fox_targets FoX_fsys FoX_utils FoX_common FoX_dom FoX_sax FoX_wxml)
set(FoX_ENABLE_EXAMPLES
OFF
CACHE BOOL "" FORCE)
qe_git_submodule_update(external/fox)
add_subdirectory(fox EXCLUDE_FROM_ALL)
target_link_libraries(qe_fox INTERFACE ${fox_targets})
qe_fix_fortran_modules(${fox_targets})
qe_install_targets(${fox_targets})
else()
find_package(FoX REQUIRED)
target_link_libraries(qe_fox INTERFACE FoX::FoX)
endif()
target_compile_definitions(qe_fox INTERFACE __fox)
else()
find_package(FoX REQUIRED)
target_link_libraries(qe_fox INTERFACE FoX::FoX)
target_link_libraries(qe_fox INTERFACE qe_xml)
endif()