Skip to content

Commit febd0ad

Browse files
hmenkethe-hampel
authored andcommitted
Remove dependency on Meson
1 parent 01cab31 commit febd0ad

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ cmake_policy(VERSION ${CMAKE_VERSION})
2424

2525
# ############
2626
# Define Project
27-
project(triqs_dft_tools VERSION 3.3.1 LANGUAGES CXX Fortran)
27+
project(triqs_dft_tools VERSION 3.3.1 LANGUAGES C CXX Fortran)
2828
get_directory_property(IS_SUBPROJECT PARENT_DIRECTORY)
2929

3030
# ############
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1+
# F2PY headers
2+
execute_process(
3+
COMMAND "${TRIQS_PYTHON_EXECUTABLE}" -c
4+
"import numpy.f2py; print(numpy.f2py.get_include())"
5+
OUTPUT_VARIABLE F2PY_INCLUDE_DIR
6+
OUTPUT_STRIP_TRAILING_WHITESPACE)
7+
8+
add_library(fortranobject OBJECT "${F2PY_INCLUDE_DIR}/fortranobject.c")
9+
target_link_libraries(fortranobject PUBLIC Python::NumPy)
10+
target_include_directories(fortranobject PUBLIC "${F2PY_INCLUDE_DIR}")
11+
set_property(TARGET fortranobject PROPERTY POSITION_INDEPENDENT_CODE ON)
112

2-
# List the sources
3-
set(module_name "getpmatelk")
4-
set(fortran_src_file "${CMAKE_CURRENT_SOURCE_DIR}/getpmatelk.f90")
5-
6-
set(generated_module_file ${module_name}${TRIQS_PYTHON_MODULE_EXT})
7-
8-
add_custom_target(${module_name} ALL
9-
DEPENDS ${generated_module_file}
10-
)
11-
12-
# for Intel fortran compilers we manually have to link against libiomp5 (-fqopenmp is always on in f2py)
13-
if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
14-
set(F2PY_INTEL_OPTIONS -liomp5 --fcompiler=intelem)
15-
endif()
16-
17-
##generate the fortran python wrapper shared library
1813
add_custom_command(
19-
OUTPUT ${generated_module_file}
20-
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
21-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
22-
)
23-
24-
# where to install
25-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DESTINATION
26-
${TRIQS_PYTHON_LIB_DEST_ROOT}/${PROJECT_NAME}/converters/elktools FILES_MATCHING PATTERN "*.so"
27-
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
28-
WORLD_READ WORLD_EXECUTE PATTERN "CMakeFiles" EXCLUDE)
14+
OUTPUT getpmatelkmodule.c getpmatelk-f2pywrappers.f getpmatelk-f2pywrappers2.f90
15+
DEPENDS getpmatelk.f90
16+
VERBATIM
17+
COMMAND "${CMAKE_COMMAND}" -E touch "getpmatelkmodule.c" "getpmatelk-f2pywrappers.f" "getpmatelk-f2pywrappers2.f90"
18+
COMMAND "${TRIQS_PYTHON_EXECUTABLE}" -m numpy.f2py
19+
"${CMAKE_CURRENT_SOURCE_DIR}/getpmatelk.f90" -m getpmatelk --lower)
20+
21+
Python_add_library(getpmatelk MODULE
22+
"${CMAKE_CURRENT_BINARY_DIR}/getpmatelkmodule.c"
23+
"${CMAKE_CURRENT_BINARY_DIR}/getpmatelk-f2pywrappers.f"
24+
"${CMAKE_CURRENT_BINARY_DIR}/getpmatelk-f2pywrappers2.f90"
25+
"${CMAKE_CURRENT_SOURCE_DIR}/getpmatelk.f90")
26+
set_property(TARGET getpmatelk PROPERTY SUFFIX "${TRIQS_PYTHON_MODULE_EXT}")
27+
target_link_libraries(getpmatelk PRIVATE fortranobject)
28+
29+
install(TARGETS getpmatelk DESTINATION ${TRIQS_PYTHON_LIB_DEST_ROOT}/${PROJECT_NAME}/converters/elktools/elkwrappers)
2930

3031
# user warning
3132
message(STATUS "-----------------------------------------------------------------------------")
3233
message(STATUS " ******** USER NOTE ******** ")
3334
message(STATUS " This version of DFTTools contains interface routines to read Elk's binary ")
3435
message(STATUS " files. ")
3536
message(STATUS "-----------------------------------------------------------------------------")
36-

0 commit comments

Comments
 (0)