Skip to content

Commit db9ed0c

Browse files
committed
CMake copied from relMT - not adapted yet
1 parent 3de6bd8 commit db9ed0c

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

CMakeLists.txt

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
cmake_minimum_required(VERSION 3.17.2...3.29)
2+
project(${SKBUILD_PROJECT_NAME} LANGUAGES Fortran)
3+
4+
find_package(
5+
Python
6+
COMPONENTS Interpreter Development.Module NumPy
7+
REQUIRED)
8+
9+
# F2PY headers
10+
execute_process(
11+
COMMAND "${PYTHON_EXECUTABLE}" -c
12+
"import numpy.f2py; print(numpy.f2py.get_include())"
13+
OUTPUT_VARIABLE F2PY_INCLUDE_DIR
14+
OUTPUT_STRIP_TRAILING_WHITESPACE)
15+
16+
add_library(fortranobject OBJECT "${F2PY_INCLUDE_DIR}/fortranobject.c")
17+
18+
# Find the FFTW3 installation on your system
19+
find_package(PkgConfig REQUIRED)
20+
pkg_search_module(FFTW REQUIRED fftw3 IMPORTED_TARGET)
21+
include_directories(PkgConfig::FFTW)
22+
link_libraries(PkgConfig::FFTW)
23+
24+
target_link_libraries(fortranobject PUBLIC Python::NumPy)
25+
target_include_directories(fortranobject PUBLIC "${F2PY_INCLUDE_DIR}")
26+
set_property(TARGET fortranobject PROPERTY POSITION_INDEPENDENT_CODE ON)
27+
28+
add_custom_command(
29+
OUTPUT mccoremodule.c mccore-f2pywrappers.f
30+
DEPENDS src/relmt/mccore.f90
31+
VERBATIM
32+
COMMAND "${Python_EXECUTABLE}" -m numpy.f2py
33+
"${CMAKE_CURRENT_SOURCE_DIR}/src/relmt/mccore.f90" -m mccore --lower)
34+
35+
python_add_library(
36+
mccore MODULE "${CMAKE_CURRENT_BINARY_DIR}/mccoremodule.c"
37+
"${CMAKE_CURRENT_BINARY_DIR}/mccore-f2pywrappers.f"
38+
"${CMAKE_CURRENT_SOURCE_DIR}/src/relmt/mccore.f90" WITH_SOABI)
39+
target_link_libraries(mccore PRIVATE fortranobject)
40+
41+
install(TARGETS mccore DESTINATION .)

0 commit comments

Comments
 (0)