CMake helpers for building F2Py modules
Project description
f2py-cmake
This provides helpers for using F2Py. Use:
include(UseF2Py)
You must have found a Python interpreter beforehand. This will define a
F2Py::F2Py
target (along with a matching F2PY_EXECUTABLE
variable). It will
also provide the following helper functions:
f2py_object_library(<name> <type>)
f2py_generate_module(<module> <files>...
[F2PY_ARGS <args> ...]
[F77 | F90]
[NOLOWER]
[OUTPUT_DIR <OutputDir>]
[OUTPUT_VARIABLE <OutputVariable>]
)
Example
find_package(
Python
COMPONENTS Interpreter Development.Module NumPy
REQUIRED)
include(UseF2Py)
# Create the F2Py `numpyobject` library.
f2py_object_library(f2py_object OBJECT)
f2py_generate_module(fibby fib1.f OUTPUT_VARIABLE fibby_files)
python_add_library(fibby MODULE "${fibby_files}" WITH_SOABI)
target_link_library(fibby PRIVATE f2py_object)
scikit-build-core
To use this package with scikit-build-core, you need to include it in your build requirements:
[build-system]
requires = ["scikit-build-core", "numpy", "f2py-cmake"]
build-backend = "scikit_build_core.build"
Vendoring
You can vendor UseF2Py into your package, as well. This avoids requiring a dependency at build time and protects you against changes in this package, at the expense of requiring manual re-vendoring to get bugfixes and/or improvements. This mechanism is also ideal if you want to support direct builds, outside of scikit-build-core.
You should make a CMake helper directory, such as cmake
. Add this to your
CMakeLists.txt
like this:
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
Then, you can vendor our file into that folder:
pipx run f2py-cmake vendor cmake
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for f2py_cmake-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 794f108943ffee19de3a37ad25a6b355319752cee23dd5d6dad9b083c98349dc |
|
MD5 | ee850334a8dbf592dca02eaa990f5169 |
|
BLAKE2b-256 | b3e46c2dce4fb4b482703f5a4e915261159654136df1fb52bfba946e0498d3ca |