summaryrefslogtreecommitdiffstats
path: root/python-nanobind.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-nanobind.spec')
-rw-r--r--python-nanobind.spec200
1 files changed, 200 insertions, 0 deletions
diff --git a/python-nanobind.spec b/python-nanobind.spec
new file mode 100644
index 0000000..81a07a3
--- /dev/null
+++ b/python-nanobind.spec
@@ -0,0 +1,200 @@
+# We are building with clang for faster/lower memory LTO builds.
+# See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros
+%global toolchain clang
+
+Name: python-nanobind
+Version: 2.4.0
+Release: %autorelease
+Summary: nanobind: tiny and efficient C++/Python bindings
+
+License: BSD-3-Clause
+URL: https://github.com/wjakob/nanobind
+Source: %{pypi_source nanobind}
+
+BuildArch: noarch
+BuildRequires: clang
+BuildRequires: cmake
+BuildRequires: eigen3-devel
+BuildRequires: ninja-build
+BuildRequires: python%{python3_pkgversion}-devel
+BuildRequires: python%{python3_pkgversion}-numpy
+BuildRequires: python%{python3_pkgversion}-pytest
+BuildRequires: python%{python3_pkgversion}-scipy
+
+%global _description %{expand:
+nanobind is a small binding library that exposes C++ types
+in Python and vice versa. It is reminiscent of Boost.Python
+and pybind11 and uses near-identical syntax.
+In contrast to these existing tools, nanobind is more
+efficient: bindings compile in a shorter amount of time,
+produce smaller binaries, and have better runtime performance.}
+
+%description %_description
+
+%package -n python%{python3_pkgversion}-nanobind
+Summary: %{summary}
+%description -n python%{python3_pkgversion}-nanobind %_description
+
+
+%package -n python%{python3_pkgversion}-nanobind-devel
+Summary: Libraries and headers for nanobind
+Requires: %{name} = %{version}-%{release}
+Requires: python%{python3_pkgversion}-nanobind-ext-devel = %{version}-%{release}
+%description -n python%{python3_pkgversion}-nanobind-devel
+Development files for nanobind.
+
+
+%package -n python%{python3_pkgversion}-nanobind-ext-devel
+Summary: Development extensions for nanobind
+License: MIT
+Requires: %{name} = %{version}-%{release}
+%description -n python%{python3_pkgversion}-nanobind-ext-devel
+Development extensions for nanobind.
+
+
+%prep
+%autosetup -p1 -n nanobind-%{version}
+
+
+%generate_buildrequires
+%pyproject_buildrequires
+
+
+%build
+%cmake \
+ -G Ninja \
+ -DNB_TEST_STABLE_ABI=ON \
+ -DNB_TEST_SHARED_BUILD=ON
+%cmake_build
+%pyproject_wheel
+
+
+%install
+%pyproject_install
+# Remove not needed files
+rm %{buildroot}%{python3_sitelib}/nanobind/cmake/darwin-ld-cpython.sym
+rm %{buildroot}%{python3_sitelib}/nanobind/cmake/darwin-ld-pypy.sym
+#%%pyproject_save_files 'nanobind'
+
+
+%check
+%_pyproject_check_import_allow_no_modules -t
+cd %{__cmake_builddir}
+%pytest
+
+
+#%%files -n python%%{python3_pkgversion}-nanobind -f %%{pyproject_files}
+%files -n python%{python3_pkgversion}-nanobind
+%license LICENSE
+%dir %{python3_sitelib}/nanobind
+%dir %{python3_sitelib}/nanobind-%{version}.dist-info
+%dir %{python3_sitelib}/nanobind-%{version}.dist-info/licenses
+%dir %{python3_sitelib}/nanobind/__pycache__
+%{python3_sitelib}/nanobind-%{version}.dist-info/INSTALLER
+%{python3_sitelib}/nanobind-%{version}.dist-info/METADATA
+%{python3_sitelib}/nanobind-%{version}.dist-info/WHEEL
+%{python3_sitelib}/nanobind-%{version}.dist-info/licenses/LICENSE
+%{python3_sitelib}/nanobind/__init__.py
+%{python3_sitelib}/nanobind/__main__.py
+%{python3_sitelib}/nanobind/__pycache__/__init__.*.pyc
+%{python3_sitelib}/nanobind/__pycache__/__main__.*.pyc
+%{python3_sitelib}/nanobind/__pycache__/stubgen.*.pyc
+
+
+%files -n python%{python3_pkgversion}-nanobind-devel
+%license LICENSE
+%dir %{python3_sitelib}/nanobind/include
+%dir %{python3_sitelib}/nanobind/include/nanobind
+%dir %{python3_sitelib}/nanobind/include/nanobind/eigen
+%dir %{python3_sitelib}/nanobind/include/nanobind/intrusive
+%dir %{python3_sitelib}/nanobind/include/nanobind/stl
+%dir %{python3_sitelib}/nanobind/include/nanobind/stl/detail
+%dir %{python3_sitelib}/nanobind/src
+%dir %{python3_sitelib}/nanobind/cmake
+%{python3_sitelib}/nanobind/cmake/nanobind-config-version.cmake
+%{python3_sitelib}/nanobind/cmake/nanobind-config.cmake
+%{python3_sitelib}/nanobind/include/nanobind/eigen/dense.h
+%{python3_sitelib}/nanobind/include/nanobind/eigen/sparse.h
+%{python3_sitelib}/nanobind/include/nanobind/eval.h
+%{python3_sitelib}/nanobind/include/nanobind/intrusive/counter.h
+%{python3_sitelib}/nanobind/include/nanobind/intrusive/counter.inl
+%{python3_sitelib}/nanobind/include/nanobind/intrusive/ref.h
+%{python3_sitelib}/nanobind/include/nanobind/make_iterator.h
+%{python3_sitelib}/nanobind/include/nanobind/nanobind.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_accessor.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_attr.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_call.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_cast.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_class.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_defs.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_descr.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_enums.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_error.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_func.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_lib.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_misc.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_python.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_traits.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_tuple.h
+%{python3_sitelib}/nanobind/include/nanobind/nb_types.h
+%{python3_sitelib}/nanobind/include/nanobind/ndarray.h
+%{python3_sitelib}/nanobind/include/nanobind/operators.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/array.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/bind_map.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/bind_vector.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/chrono.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/complex.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/chrono.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/nb_array.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/nb_dict.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/nb_list.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/nb_optional.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/nb_set.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/detail/traits.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/filesystem.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/function.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/list.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/map.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/optional.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/pair.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/set.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/shared_ptr.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/string.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/string_view.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/tuple.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/unique_ptr.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/unordered_map.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/unordered_set.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/variant.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/vector.h
+%{python3_sitelib}/nanobind/include/nanobind/stl/wstring.h
+%{python3_sitelib}/nanobind/include/nanobind/trampoline.h
+%{python3_sitelib}/nanobind/include/nanobind/typing.h
+%{python3_sitelib}/nanobind/src/buffer.h
+%{python3_sitelib}/nanobind/src/common.cpp
+%{python3_sitelib}/nanobind/src/error.cpp
+%{python3_sitelib}/nanobind/src/hash.h
+%{python3_sitelib}/nanobind/src/implicit.cpp
+%{python3_sitelib}/nanobind/src/nb_combined.cpp
+%{python3_sitelib}/nanobind/src/nb_enum.cpp
+%{python3_sitelib}/nanobind/src/nb_func.cpp
+%{python3_sitelib}/nanobind/src/nb_internals.cpp
+%{python3_sitelib}/nanobind/src/nb_internals.h
+%{python3_sitelib}/nanobind/src/nb_ndarray.cpp
+%{python3_sitelib}/nanobind/src/nb_static_property.cpp
+%{python3_sitelib}/nanobind/src/nb_type.cpp
+%{python3_sitelib}/nanobind/src/trampoline.cpp
+%{python3_sitelib}/nanobind/stubgen.py
+
+
+%files -n python%{python3_pkgversion}-nanobind-ext-devel
+%license ext/robin_map/LICENSE
+%dir %{python3_sitelib}/nanobind/ext
+%dir %{python3_sitelib}/nanobind/ext/robin_map
+%dir %{python3_sitelib}/nanobind/ext/robin_map/include
+%dir %{python3_sitelib}/nanobind/ext/robin_map/include/tsl
+%{python3_sitelib}/nanobind/ext/robin_map/include/tsl/*
+
+
+%changelog
+%autochangelog \ No newline at end of file