%bcond_without icu Name: xalan-c Version: 1.12.0 # The soversion is made from the major and minor version numbers, e.g. 112 for # version 1.12.x. We could do this automatically… # %%global so_version %%(echo %%{version} | cut -d . -f -2 | tr -d .) # …but we do not do so because we want to make sure we detect any soversion # update. %global so_version 112 Release: %autorelease Summary: Xalan XSLT processor for C/C++ License: ASL 2.0 URL: http://xalan.apache.org/%{name}/ %global tag Xalan-C_%(echo '%{version}' | tr . _) %global tar_name xalan_c-%(echo %{version} | cut -d . -f -2) %global release_url https://github.com/apache/%{name}/releases/download/%{tag} Source0: %{release_url}/%{tar_name}.tar.gz Source1: %{release_url}/%{tar_name}.tar.gz.asc Source2: %{release_url}/KEYS BuildRequires: gnupg2 BuildRequires: cmake # Either make or ninja is supported. BuildRequires: ninja-build BuildRequires: gcc-c++ BuildRequires: xerces-c-devel %if %{with icu} BuildRequires: libicu-devel %endif # Required for EPEL8: %undefine __cmake_in_source_build %description The Apache Xalan-C++ Project provides a library and a command line program to transform XML documents using a stylesheet that conforms to XSLT 1.0 standards. Xalan is a project of the Apache Software Foundation. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: cmake-filesystem %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package doc Summary: Documentation for %{name} BuildRequires: doxygen # Explicit BR required for EPEL8: BuildRequires: graphviz %description doc Documentation for %{name}. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -n %{tar_name} # https://github.com/apache/xalan-c/pull/35 chmod -v a-x NOTICE rm -vf samples/configure samples/configure.in %build %cmake %{?with_icu:-Dtranscoder=icu} -GNinja %cmake_build %install %cmake_install # Remove CMake-installed docs in favor of using the doc macro. We refer to # _prefix/share instead of _datadir to mirror how the install path is defined # in the relevant CMakeLists.txt. rm -rf %{buildroot}%{_prefix}/share/doc/xalan-c/api %check %ctest # Required for EPEL8: %ldconfig_scriptlets %files %license LICENSE %doc CREDITS %doc KEYS %doc NOTICE %doc README.md %{_bindir}/Xalan %{_libdir}/libxalanMsg.so.%{so_version} %{_libdir}/libxalanMsg.so.%{so_version}.* %{_libdir}/libxalan-c.so.%{so_version} %{_libdir}/libxalan-c.so.%{so_version}.* %files devel %{_libdir}/libxalanMsg.so %{_libdir}/libxalan-c.so %{_includedir}/xalanc/ %dir %{_libdir}/cmake/XalanC %{_libdir}/cmake/XalanC/*.cmake %dir %{_libdir}/pkgconfig %{_libdir}/pkgconfig/%{name}.pc %files doc %license LICENSE %doc CREDITS %doc KEYS %doc NOTICE %doc README.md %doc docs/*.md docs/images %doc %{_vpath_builddir}/docs/doxygen/api %doc samples %changelog %autochangelog