third_party_jsoncpp/jsoncpp.spec

126 lines
3.7 KiB
RPMSpec
Raw Permalink Normal View History

Name: jsoncpp
Version: 1.9.5
Release: 5
Summary: JSON C++ library
License: Public Domain or MIT
URL: https://github.com/open-source-parsers/jsoncpp
Source0: https://github.com/open-source-parsers/jsoncpp/archive/%{version}/%{name}-%{version}.tar.gz
BuildRequires: gcc-c++ cmake >= 3.1 python3-devel
Patch0001: 0001-Parse-large-floats-as-infinity-1349-1353.patch
Patch0002: 0001-Use-default-rather-than-hard-coded-8-for-maximum-agg.patch
%description
JsonCpp is a C++ library that allows manipulating JSON values,
including serialization and deserialization to and from strings.
It can also preserve existing comment in unserialization/serialization steps,
making it a convenient format to store user input files.
%package devel
Summary: Development files for jsoncpp
Requires: %{name} = %{version}-%{release}
%description devel
Document files contain library and head files for jsoncpp.
%package help
Summary: Document for jsoncpp
BuildRequires: doxygen graphviz hardlink
BuildArch: noarch
Provides: jsoncpp-doc = %{version}-%{release}
Obsoletes: jsoncpp-doc < %{version}-%{release}
%description help
Help document for jsoncpp.
%prep
%autosetup -p 1
doxygen -s -u doc/doxyfile.in
sed -i -e 's!^DOT_FONTNAME.*=.*!DOT_FONTNAME =!g' doc/doxyfile.in
%build
install -d %{_vpath_builddir}
cd %{_vpath_builddir}
%cmake -DBUILD_STATIC_LIBS=OFF -DJSONCPP_WITH_WARNING_AS_ERROR=OFF \
-DBUILD_OBJECT_LIBS:BOOL=OFF \
-DJSONCPP_WITH_PKGCONFIG_SUPPORT=ON -DJSONCPP_WITH_CMAKE_PACKAGE=ON \
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF -DPYTHON_EXECUTABLE="%{__python3}" \
..
cd ..
%make_build -C %{_vpath_builddir}
cp -p %{_vpath_builddir}/version .
%{__python3} doxybuild.py --with-dot --doxygen %{_bindir}/doxygen
rm -f version
%install
%make_install -C %{_vpath_builddir}
mkdir -p %{buildroot}%{_docdir}/%{name}
cp README.md %{buildroot}%{_docdir}/%{name}
chmod 644 %{buildroot}%{_docdir}/%{name}/README.md
touch %{buildroot}%{_docdir}/%{name}//README.md
mkdir -p %{buildroot}%{_docdir}/%{name}/html
cp dist/doxygen/*/*.{html,png} %{buildroot}%{_docdir}/%{name}/html
chmod 644 %{buildroot}%{_docdir}/%{name}/html/*.{html,png}
touch %{buildroot}%{_docdir}/%{name}/html
hardlink -cfv %{buildroot}%{_docdir}/%{name}
# When the .so file name changes during version upgrade, you need to copy the lower version of .so file
# cp -a %{_libdir}/libjsoncpp.so.* $RPM_BUILD_ROOT%{_libdir}
%check
%make_build -C %{_vpath_builddir} jsoncpp_check
%post
/sbin/ldconfig
%postun
/sbin/ldconfig
%files
%license AUTHORS LICENSE
%doc %dir %{_docdir}/%{name}
%exclude %{_docdir}/%{name}/html
%{_libdir}/lib%{name}.so.*
%files devel
%{_libdir}/lib%{name}.so
%{_includedir}/json
%{_libdir}/cmake/*
%{_libdir}/pkgconfig/%{name}.pc
%files help
%doc %{_docdir}/%{name}
%doc %{_docdir}/%{name}/README.md
%changelog
* Thu Nov 16 2023 liubo <liubo1@xfusion.com> - 1.9.5-5
- Use default rather than hard-coded 8 for maximum aggregate member alignment
* Wed Oct 18 2023 liubo <liubo1@xfusion.com> - 1.9.5-4
- Parse large floats as infinity
* Mon Jan 10 2022 shixuantong <shixuantong@huawei.com> - 1.9.5-3
- Delete so files of lower versions
* Wed Jan 05 2022 shangyibin <shangyibin1@huawei.com> - 1.9.5-2
- copy the .so file of the old version.
* Wed Dec 22 2021 shangyibin <shangyibin1@huawei.com> - 1.9.5-1
- upgrade version to 1.9.5
* Wed Feb 3 2021 liudabo <liudabo1@huawei.com> - 1.9.4-1
- upgrade version to 1.9.4
* Sat Aug 08 2020 lingsheng<lingsheng@huawei.com> - 1.9.3-2
- Remove old version so
* Fri Jul 31 2020 wenzhanli<wenzhanli2@huawei.com> - 1.9.3-1
- Type:NA
- ID:NA
- SUG:NA
- DESC:update version 1.9.3
* Mon Nov 25 2019 zhujunhao <zhujunhao5@huawei.com> - 1.8.4-6
- Package init