File gprbuild.spec of Package gprbuild

%define _pkg_ver_ 26.0.0
%define _src_ver_ 26.0.0
%define _gprconfig_db_ver_ 26.0.0

Name:          gprbuild
Version:       %{_pkg_ver_}
Release:       7.1
Summary:       The GPRBuild Ada/multilanguage build tool
License:       GPL-3.0-or-later
Group:         Development/Tools/Building
Url:           https://github.com/AdaCore/gprbuild
Source0:       %{name}-%{_src_ver_}.tar.gz
Source1:       gprconfig_kb-%{_gprconfig_db_ver_}.tar.gz
Patch0:        fix-gpr-version-ads.patch
Patch1:        make-doc.patch
BuildRequires: gcc-ada
BuildRequires: %{name}-bootstrap
BuildRequires: xmlada-devel
BuildRequires: fdupes
BuildRequires: findutils
BuildRequires: python3-Sphinx
#!BuildIgnore: gcc-PIE
Provides:      %{name}-bootstrap = %{version}
Obsoletes:     %{name}-bootstrap < %{version}
Requires:      gcc-ada

%description
GPRbuild is an advanced build system designed to help automate the construction
of multi-language systems.

%package -n libgpr
Summary: GNAT Project File Library
Group:   System/Libraries

%description -n libgpr
Ada library to handle GPRbuild project files.

%package -n libgpr-devel
Summary:  Development files for libgpr
Group:    Development/Languages/Ada
Requires: libgpr = %{version} xmlada-devel

%description -n libgpr-devel
Ada library to handle GPRbuild project files.

This package provides the files requires to build programs that use libgpr.

%package doc
Summary:   Documentation for gprbuild
Group:     Documentation/HTML
BuildArch: noarch

%description doc
GPRbuild is an advanced build system designed to help automate the construction
of multi-language systems.

This package provides the documentation in HTML.

%prep
%setup -T -D -b 1 -q -n gprconfig_kb-%{_gprconfig_db_ver_}
%setup -q -n %{name}-%{_src_ver_}
%patch -P 0 -p 1
%patch -P 1 -p 0

%build
%__make prefix=%{_prefix} setup
# make gprbuild
gprbuild -R -p -m %{?_smp_mflags} \
    -XBUILD=production \
    -XLIBRARY_TYPE=static \
    -XXMLADA_BUILD=static \
    gprbuild.gpr -largs -s
#make libgpr
for kind in static static-pic relocatable; do
  gprbuild -R -p -m %{?_smp_mflags} \
    -XBUILD=production \
    -XLIBRARY_TYPE=$kind \
    -XXMLADA_BUILD=$kind \
    gpr/gpr.gpr
done
%__make -C doc html

%install
# install gprbuild tools
gprinstall -p \
    --target=%{_target_platform} \
    --prefix=%{buildroot}%{_prefix} \
    --mode=usage \
    --install-name=gprbuild \
    -XBUILD=production \
    -XINSTALL_MODE=nointernal \
    --no-manifest \
    gprbuild.gpr
gprinstall -p \
    --target=%{_target_platform} \
    --prefix=%{buildroot}%{_prefix} \
    --mode=usage \
    --install-name=gprbuild \
    -XBUILD=production \
    -XINSTALL_MODE=internal \
    --no-manifest \
    gprbuild.gpr
# install libgpr
for kind in static static-pic relocatable; do
  gprinstall -p \
    --target=%{_target_platform} \
    --prefix=%{buildroot}%{_prefix} \
    -XBUILD=production \
    -XLIBRARY_TYPE=$kind \
    -XXMLADA_BUILD=$kind \
    --build-var=LIBRARY_TYPE \
    --build-var=GPR_BUILD  \
    --build-name=$kind \
    --lib-subdir=%{_lib}/gpr.$kind \
    --link-lib-subdir=%{_lib} \
    --sources-subdir=include/gpr \
    --no-manifest \
    gpr/gpr.gpr
done
%__rm %{buildroot}%{_prefix}/doinstall
find %{buildroot}%{_datadir}/examples/gprbuild -name .cvsignore -delete
%fdupes %{buildroot}
%__install -m 0755 -d %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/*.xml %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/*.ent %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/gprconfig.xsd %{buildroot}%{_datadir}/gprconfig

%post -n libgpr
%run_ldconfig

%postun -n libgpr
%run_ldconfig

%files
%defattr(-,root,root)
%doc README.md
%license COPYING*
%dir %{_libexecdir}/gprbuild
%dir %{_datadir}/gpr
%dir %{_datadir}/gprconfig
%{_bindir}/gprbuild
%{_bindir}/gprclean
%{_bindir}/gprconfig
%{_bindir}/gprinstall
%{_bindir}/gprls
%{_bindir}/gprname
%{_libexecdir}/gprbuild/gprbind
%{_libexecdir}/gprbuild/gprlib
%{_datadir}/gpr/_default.gpr
%{_datadir}/gprconfig/*.xml
%{_datadir}/gprconfig/*.ent
#{_datadir}/gprconfig/gnat_runtime.mapping
%{_datadir}/gprconfig/gprconfig.xsd

%files -n libgpr
%defattr(-,root,root)
%license COPYING*
%dir %{_libdir}/gpr.relocatable
%{_libdir}/gpr.relocatable/libgpr.so
%{_libdir}/libgpr.so

%files -n libgpr-devel
%defattr(-,root,root)
%dir %{_includedir}/gpr
%{_includedir}/gpr
%dir %{_libdir}/gpr.*
%{_libdir}/gpr.*/*.ali
%{_libdir}/gpr.*/*.a
%{_datadir}/gpr/gpr.gpr
%dir %{_datadir}/examples
%dir %{_datadir}/examples/gprbuild
%{_datadir}/examples/gprbuild/*

%files doc
%defattr(-,root,root)
%{_datadir}/doc/gprbuild

%changelog
openSUSE Build Service is sponsored by