File gnatdoc.spec of Package gnatdoc
%define _pkg_ver_ 26.0.0
%define _src_ver_ 26.0.0
Name: gnatdoc
Version: %{_pkg_ver_}
Release: 6.1
Summary: GNAT Documentation Generator
License: GPL-3.0-or-later
Group: Development/Tools/Building
Url: https://github.com/AdaCore/gnatdoc
Source0: %{name}-%{_src_ver_}.tar.gz
Source1: libgnatdoc.gpr
BuildRequires: gcc-ada >= 12
BuildRequires: gprbuild
BuildRequires: libadalang-devel >= 26.0
BuildRequires: vss-text-devel >= 26.0
BuildRequires: vss-extra-devel >= 26.0
BuildRequires: libgpr2-devel >= 26.0
BuildRequires: markdown-devel >= 26.0
#!BuildIgnore: gcc-PIE
BuildRequires: %{python_module Sphinx}
BuildRequires: %{python_module sphinx_rtd_theme}
%description
GNATdoc is a documentation tool for Ada which processes source files, extracts
documentation from the sources, and generates either annotated HTML files or
Restructured Text (.rst) files.
%package -n lib%{name}
Summary: GNAT Documentation Generator library
Group: System/Libraries
%description -n lib%{name}
GNAT Documentation Generator library.
%package devel
Summary: Development files for lib%{name}
Group: Development/Languages/Ada
Requires: lib%{name} = %{version}
Requires: libadalang-devel >= 26.0
BuildRequires: vss-text-devel >= 26.0
BuildRequires: vss-extra-devel >= 26.0
%description devel
GNAT Documentation Generator library.
This package provides the files requires to build programs that use libgpr.
%package doc
Summary: Documentation for GNAT Documentation Generator
Group: Documentation/HTML
BuildArch: noarch
%description doc
GNATdoc is a documentation tool for Ada which processes source files, extracts
documentation from the sources, and generates either annotated HTML files or
Restructured Text (.rst) files.
This package provides the documentation for Gnatdoc.
%prep
%setup -q -n %{name}-%{_src_ver_}
%__cp %{S:1} gnat
%build
# make libgnatdoc
for kind in static static-pic relocatable; do
gprbuild -R -p %{?_smp_mflags} -gnat2022 \
-XLIBRARY_TYPE=$kind \
gnat/libgnatdoc.gpr
done
# make gnatdoc tool
gprbuild -R -p %{?_smp_mflags} -gnat2022 \
-XGPR_UNIT_PROVIDER_LIBRARY_TYPE=static \
-XVSS_LIBRARY_TYPE=static \
-XMARKDOWN_LIBRARY_TYPE=static \
-XLIBADALANG_LIBRARY_TYPE=static \
-XLANGKIT_SUPPORT_LIBRARY_TYPE=static \
-XPRETTIER_ADA_LIBRARY_TYPE=static \
-XGPR2_LIBRARY_TYPE=static \
gnat/gnatdoc.gpr
# make documentation
%__make -C documentation/users_guide html
%install
# install libgnatdoc
for kind in static static-pic relocatable; do
gprinstall -p \
-XLIBRARY_TYPE=$kind \
--build-name=$kind \
--no-manifest \
--prefix=%{buildroot}%{_prefix} \
--lib-subdir=%{_lib}/%{name}.$kind \
--link-lib-subdir=%{_lib} \
--project-subdir=share/gpr \
--sources-subdir=include/%{name} \
gnat/libgnatdoc.gpr
done
# install gnatdoc
gprinstall -p \
-XGPR_UNIT_PROVIDER_LIBRARY_TYPE=static \
-XVSS_LIBRARY_TYPE=static \
-XMARKDOWN_LIBRARY_TYPE=static \
--mode=usage \
--no-manifest \
--prefix=%{buildroot}%{_prefix} \
gnat/gnatdoc.gpr
%__strip %{buildroot}%{_bindir}/gnatdoc
%__cp -r share/%{name} %{buildroot}%{_datadir}
# install documentation
%__mkdir -p %{buildroot}%{_datadir}/doc/%{name}/users_guide
%__rm documentation/users_guide/_build/html/.buildinfo
%__cp -r documentation/users_guide/_build/html %{buildroot}%{_datadir}/doc/%{name}/users_guide
%__cp -r documentation/* %{buildroot}%{_datadir}/doc/%{name}
%post -n lib%{name}
%run_ldconfig
%postun -n lib%{name}
%run_ldconfig
%files
%defattr(-,root,root)
%doc README.md
%{_bindir}/gnatdoc
%{_datadir}/%{name}
%files -n lib%{name}
%defattr(-,root,root)
%dir %{_libdir}/%{name}.relocatable
%{_libdir}/lib%{name}.so
%{_libdir}/%{name}.relocatable/lib%{name}.so
%files devel
%defattr(-,root,root)
%dir %{_includedir}/%{name}
%{_includedir}/%{name}
%dir %{_libdir}/%{name}.*
%{_libdir}/%{name}.*/*.ali
%{_libdir}/%{name}.*/*.a
%{_datadir}/gpr/lib%{name}.gpr
%files doc
%defattr(-,root,root)
%{_datadir}/doc/%{name}
%changelog