dft_tools/python/triqs_dft_tools/converters/elktools/elkwrappers/CMakeLists.txt

37 lines
1.6 KiB
CMake

# List the sources
set(module_name "getpmatelk")
set(fortran_src_file "${CMAKE_CURRENT_SOURCE_DIR}/getpmatelk.f90")
set(generated_module_file ${module_name}${TRIQS_PYTHON_MODULE_EXT})
add_custom_target(${module_name} ALL
DEPENDS ${generated_module_file}
)
# for Intel fortran compilers we manually have to link against libiomp5 (-fqopenmp is always on in f2py)
if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
set(F2PY_INTEL_OPTIONS -liomp5 --fcompiler=intelem)
endif()
##generate the fortran python wrapper shared library
add_custom_command(
OUTPUT ${generated_module_file}
COMMAND ${TRIQS_PYTHON_EXECUTABLE} -m numpy.f2py --build-dir ${CMAKE_CURRENT_BINARY_DIR}/meson --f90exec=${CMAKE_Fortran_COMPILER} --f77exec=${CMAKE_Fortran_COMPILER} ${F2PY_INTEL_OPTIONS} -c ${fortran_src_file} -m ${module_name} > elk_f2py.log
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
# where to install
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DESTINATION
${TRIQS_PYTHON_LIB_DEST_ROOT}/${PROJECT_NAME}/converters/elktools FILES_MATCHING PATTERN "*.so"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE PATTERN "CMakeFiles" EXCLUDE)
# user warning
message(STATUS "-----------------------------------------------------------------------------")
message(STATUS " ******** USER NOTE ******** ")
message(STATUS " This version of DFTTools contains interface routines to read Elk's binary ")
message(STATUS " files. ")
message(STATUS "-----------------------------------------------------------------------------")