From 40a2541855c3646ed0b07a036acc602ce2c32fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Fri, 15 May 2020 07:28:09 +0200 Subject: [PATCH] Add Z3 cmake files required by find_package So far, Z3 is not found when using cmake find_package(Z3). The following files have been added, to enable find_package(Z3): Z3Config.cmake Z3ConfigVersion.cmake Z3Targets.cmake Z3Targets-release.cmake Remarks: - Z3 has a build system using CMake. However, it does not support building OCaml bindings yet. Therefore, stay with the classical configure and make build in the spec file here and provide the required cmake files manually. - Version, lib and bitness are updated in above .cmake template files during the rpm prep stage using sed. --- Z3_cmake_files.tar.gz | Bin 0 -> 3095 bytes z3.spec | 29 +++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 Z3_cmake_files.tar.gz diff --git a/Z3_cmake_files.tar.gz b/Z3_cmake_files.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..4774990ceb63835f90c293b9b6dfb48b45e243f8 GIT binary patch literal 3095 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 literal 0 HcmV?d00001 diff --git a/z3.spec b/z3.spec index 99d6d68..f64fc48 100644 --- a/z3.spec +++ b/z3.spec @@ -2,12 +2,16 @@ Name: z3 Version: 4.8.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Satisfiability Modulo Theories (SMT) solver License: MIT URL: https://github.com/Z3Prover/z3 Source0: https://github.com/Z3Prover/z3/archive/%{name}-%{version}.tar.gz +# Z3 has a build system using CMake. However, it does not support building OCaml bindings yet. +# Therefore, stay with the classical configure and make build and provide the required +# cmake files manually, which allow Z3 to be found by find_package(Z3) +Source1: Z3_cmake_files.tar.gz BuildRequires: doxygen BuildRequires: gcc-c++ @@ -85,7 +89,8 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} Python 3 interface to z3. %prep -%autosetup -p1 -n %{name}-%{name}-%{version} +# Unpack Source1 too, using -a 1 +%autosetup -p1 -n %{name}-%{name}-%{version} -a 1 # Install python objects into the right place, enable verbose builds, use # Fedora CFLAGS, preserve timestamps when installing, include the entire @@ -113,6 +118,18 @@ iconv -f iso8859-1 -t utf-8 RELEASE_NOTES > RELEASE_NOTES.utf8 touch -r RELEASE_NOTES RELEASE_NOTES.utf8 mv -f RELEASE_NOTES.utf8 RELEASE_NOTES +# Prepare the cmake files +sed -i -e 's/@CMAKE_INSTALL_LIBDIR@/%{_lib}/g' \ + -e 's/@VERSION@/%{version}/g' \ + -e 's/@Z3_VERSION_MAJOR@/%(echo %{version} | cut -d. -f1)/g' \ + -e 's/@Z3_VERSION_MINOR@/%(echo %{version} | cut -d. -f2)/g' \ + -e 's/@Z3_VERSION_PATCH@/%(echo %{version} | cut -d. -f3)/g' \ + ./Z3_cmake_files/* +%if 0%{__isa_bits} == 32 +# Adjust Z3ConfigVersion.cmake in case of 32-bit builds +sed -i 's/\"8/\"4/g' ./Z3_cmake_files/Z3ConfigVersion.cmake +%endif + %build export CXXFLAGS="$RPM_OPT_FLAGS" export LANG="C.UTF-8" @@ -167,6 +184,10 @@ mv %{buildroot}%{_prefix}/lib/*.jar %{buildroot}%{_jnidir} ln -s %{_jnidir}/com.microsoft.z3.jar %{buildroot}%{_libdir}/%{name} mv %{buildroot}%{_prefix}/lib/lib%{name}java.so %{buildroot}%{_libdir}/%{name} +# Install the provided cmake files +mkdir -p %{buildroot}%{_libdir}/cmake/%{name}/ +install -D -m 644 Z3_cmake_files/Z3*.cmake %{buildroot}%{_libdir}/cmake/%{name}/ + #%%check # Some of the tests require more memory than the koji builders have available. # @@ -187,6 +208,7 @@ mv %{buildroot}%{_prefix}/lib/lib%{name}java.so %{buildroot}%{_libdir}/%{name} %files devel %{_includedir}/%{name}/ %{_libdir}/lib%{name}.so +%{_libdir}/cmake/%{name}/ %files doc %doc doc/api/html examples @@ -214,6 +236,9 @@ mv %{buildroot}%{_prefix}/lib/lib%{name}java.so %{buildroot}%{_libdir}/%{name} %{python3_sitearch}/%{name}/ %changelog +* Thu May 14 2020 Wolfgang Stöggl - 4.8.8-2 +- Add Z3 cmake files required by find_package(Z3) + * Sat May 9 2020 Jerry James - 4.8.8-1 - Version 4.8.8 - Drop all patches; all have been upstreamed