File: CMakeLists.txt

package info (click to toggle)
scikit-build-core 0.11.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,588 kB
  • sloc: python: 14,643; ansic: 254; cpp: 134; sh: 27; fortran: 18; makefile: 7
file content (39 lines) | stat: -rw-r--r-- 1,089 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
cmake_minimum_required(VERSION 3.17.2...3.29)

project(
  fibby
  VERSION 1.0
  DESCRIPTION "FIB module"
  LANGUAGES C Fortran)

find_package(Python REQUIRED COMPONENTS Interpreter Development.Module NumPy)

# Grab the variables from a local Python installation F2PY headers
execute_process(
  COMMAND "${Python_EXECUTABLE}" -c
          "import numpy.f2py; print(numpy.f2py.get_include())"
  OUTPUT_VARIABLE F2PY_INCLUDE_DIR
  OUTPUT_STRIP_TRAILING_WHITESPACE)

# Generate the wrapper files
add_custom_command(
  OUTPUT fibbymodule.c fibby-f2pywrappers.f
  COMMAND Python::Interpreter -m numpy.f2py --lower
          "${CMAKE_CURRENT_SOURCE_DIR}/fib1.f" -m fibby
  COMMAND cmake -E touch fibby-f2pywrappers.f
  VERBATIM
  DEPENDS fib1.f)

python_add_library(
  fibby
  MODULE
  WITH_SOABI
  "${CMAKE_CURRENT_BINARY_DIR}/fibbymodule.c"
  "${CMAKE_CURRENT_BINARY_DIR}/fibby-f2pywrappers.f"
  "${F2PY_INCLUDE_DIR}/fortranobject.c"
  fib1.f)

target_include_directories(fibby PUBLIC ${F2PY_INCLUDE_DIR})
target_link_libraries(fibby PUBLIC Python::NumPy)

install(TARGETS fibby DESTINATION .)