File libadalang.spec of Package libadalang
%define _pkg_ver_ 26.0.0
%define _src_ver_ 26.0.0
%define pythons python3
Name: libadalang
Version: %{_pkg_ver_}
Release: 9.1
Summary: Ada semantic analysis library
License: Apache-2.0
Group: Development/Languages/Ada
Url: https://github.com/AdaCore/libadalang
Source0: %{name}-%{_src_ver_}.tar.gz
BuildRequires: gcc-ada
BuildRequires: gprbuild
BuildRequires: gnatcoll_core-devel
BuildRequires: gnatcoll_iconv-devel
BuildRequires: gnatcoll_gmp-devel
BuildRequires: langkit_support-devel >= 26.0
BuildRequires: libgpr2-devel >= 26.0
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-base >= 3.11
BuildRequires: python3-pip
BuildRequires: python3-wheel
BuildRequires: python3-e3-core
BuildRequires: python3-Mako
BuildRequires: python3-PyYAML
BuildRequires: python3-docutils
BuildRequires: python3-funcy
BuildRequires: python3-Sphinx
BuildRequires: python3-sphinx_rtd_theme
BuildRequires: python3-langkit >= 26.0
BuildRequires: python3-setuptools
# BuildRequires: python3-sphinxcontrib-adadomain
%description
Libadalang is a library for parsing and semantic analysis of Ada code. It is
meant as a building block for integration into other tools (IDE, static
analyzers, etc.)
%package devel
Summary: Ada semantic analysis library
Requires: %{name} = %{version}
Requires: gcc-ada
Requires: gprbuild
Requires: gnatcoll_core-devel
Requires: gnatcoll_iconv-devel
Requires: gnatcoll_gmp-devel
Requires: langkit_support-devel >= 26.0
Requires: libgpr2-devel >= 26.0
%description devel
Libadalang is a library for parsing and semantic analysis of Ada code. It is
meant as a building block for integration into other tools (IDE, static
analyzers, etc.)
This package contains the development files for Libadalang.
%package -n python3-%{name}
Summary: Ada semantic analysis library
Group: Development/Languages/Python
Requires: %{name} = %{version}
%description -n python3-%{name}
Libadalang is a library for parsing and semantic analysis of Ada code. It is
meant as a building block for integration into other tools (IDE, static
analyzers, etc.)
This package contains the python binding for Libadalang.
# %package doc
# Summary: Documentation for Libadalang
# Group: Documentation/HTML
# BuildArch: noarch
#
# %description doc
# Libadalang is a library for parsing and semantic analysis of Ada code. It is
# meant as a building block for integration into other tools (IDE, static
# analyzers, etc.)
#
# This package provides the documentation for Libadalang in HTML.
%prep
%setup -q -n %{name}-%{_src_ver_}
# type Build_Mode_Type is ("dev", "prod", "prof");
%define build_mode prod
%build
# generating the code and building
python3 -m langkit.scripts.lkm make --build-modes=%{build_mode} --library-types=static,static-pic,relocatable --disable-all-mains
# build python bindings for the libadalang
pushd build/python
%pyproject_wheel
popd
# build docs
# %__make -C dev_manual html
# eval `python3 -m langkit.scripts.lkm printenv`
# %__make -C user_manual html
%install
# install libadalang
# python3 -m langkit.scripts.lkm install --build-modes=%{build_mode} --library-types=static,static-pic,relocatable %{buildroot} --disable-all-mains
for kind in static static-pic relocatable; do
gprinstall -p \
-XBUILD_MODE=%{build_mode} \
-XLIBRARY_TYPE=$kind \
-XGPR_BUILD=$kind \
-XXMLADA_BUILD=$kind \
--build-name=$kind \
--build-var=LIBRARY_TYPE \
--build-var=LIBADALANG_LIBRARY_TYPE \
--prefix=%{buildroot}%{_prefix} \
--lib-subdir=%{_lib}/libadalang.$kind \
--link-lib-subdir=%{_lib} \
--sources-subdir=include/libadalang \
--no-manifest \
build/libadalang.gpr
done
# install python bindings for the libadalang
pushd build/python
%pyproject_install
popd
%python_expand %fdupes %{buildroot}%{$python_sitelib}
# # install docs
# %__install -m 0755 -d %{buildroot}%{_datadir}/doc/%{name}/user_manual
# %__rm user_manual/_build/html/.buildinfo
# %__cp -r user_manual/_build/html %{buildroot}%{_datadir}/doc/%{name}/user_manual
%post
%run_ldconfig
%postun
%run_ldconfig
%files
%defattr(-,root,root)
%license LICENSE.txt
%dir %{_libdir}/libadalang.relocatable
%{_libdir}/libadalang.relocatable/libadalang.so
%{_libdir}/libadalang.so
%files devel
%defattr(-,root,root)
%doc README.md
%dir %{_includedir}/libadalang
%{_includedir}/libadalang/*
%dir %{_libdir}/libadalang.*
%{_libdir}/libadalang.static/*.ali
%{_libdir}/libadalang.static/libadalang.a
%{_libdir}/libadalang.static-pic/*.ali
%{_libdir}/libadalang.static-pic/libadalang.a
%{_libdir}/libadalang.relocatable/*.ali
#{_libdir}/libadalang.relocatable/libadalang.so
%{_datadir}/gpr/libadalang.gpr
%files -n python3-%{name}
%defattr(-,root,root)
%{python_sitelib}/*
# %files doc
# %defattr(-,root,root)
# %{_datadir}/doc/libadalang
%changelog