diff options
| author | Konrad Kleine <kkleine@redhat.com> | 2024-12-10 11:39:03 +0100 |
|---|---|---|
| committer | Konrad Kleine <kkleine@redhat.com> | 2024-12-10 23:33:28 +0100 |
| commit | 4743150bbd30dd57f17f1ad3afe950eb64d9ea89 (patch) | |
| tree | 678e1f6bbb435c27036fc80b05e2df1255f357d4 /python-nanobind.spec | |
| download | python-nanobind-main.tar.gz python-nanobind-main.tar.xz python-nanobind-main.zip | |
Diffstat (limited to 'python-nanobind.spec')
| -rw-r--r-- | python-nanobind.spec | 200 |
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 |
