# The 2.3 release won't build with a current gcc/glibc, use snapshot from 2.x branch
# (contains several small bug fixes)
%global commit b1d87bf284b32e875c8edba592113e691ea10bcd
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global gitdate 20170416

%global commit1 8f958955f54668c142ded760dc951ffd16d9c71b
%global shortcommit1 %(c=%{commit1}; echo ${c:0:7})

Name    : solvespace
Version : 2.3
Release : 3.%{gitdate}git%{shortcommit}%{?dist}
Summary : Parametric 2d/3d CAD
License : GPLv3
URL     : https://github.com/solvespace/solvespace
Source0 : https://github.com/solvespace/solvespace/tarball/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz
Source1 : https://github.com/solvespace/libdxfrw/tarball/%{commit1}/libdxfrw-%{shortcommit1}.tar.gz

# tarball doesn't contain a .git directory, so have to hardcode the commit hash
# see comment in CMakeLists.txt
Patch0  : %{name}-%{version}-%{shortcommit}-git-hash.patch

BuildRequires : gcc
BuildRequires : gcc-c++
BuildRequires : cmake
BuildRequires : mesa-libGL-devel
BuildRequires : mesa-libGLU-devel
BuildRequires : libspnav-devel
BuildRequires : pkgconfig(zlib)
BuildRequires : pkgconfig(libpng)
BuildRequires : pkgconfig(cairo)
BuildRequires : pkgconfig(fontconfig)
BuildRequires : pkgconfig(glew)
BuildRequires : pkgconfig(freetype2)
BuildRequires : pkgconfig(json-c)
BuildRequires : pkgconfig(gtkmm-2.4)
BuildRequires : pkgconfig(pangomm-1.4)
BuildRequires : pkgconfig(x11)
BuildRequires : desktop-file-utils
Requires : hicolor-icon-theme

# solvespace uses its own forked version of libdxfrw
Provides : bundled(libdxfrw) = 0.6.3

%description
SolveSpace is a parametric 2d/3d CAD program. Applications include modeling
2d and 3d parts, 3d-printed parts, preparing CAM data, mechanism design and
plane and solid geometry.

%package -n libslvs
Summary: SolveSpace geometric kernel

%description -n libslvs
SolveSpace is a parametric 2d/3d CAD proram. libslvs cotains the geometric
kernel of SolveSpace built as a library.

%package -n libslvs-devel
Summary: Development files for SolveSpace geometric kernel
Requires: libslvs%{?_isa} = %{version}-%{release}

%description -n libslvs-devel
SolveSpace is a parametric 2d/3d CAD program. libslvs contains the development
files for the library version of the SolveSpace geometric kernel.

%prep
%autosetup -n solvespace-%{name}-%{shortcommit} -a 1

# libdxfrw git submodule is not included in the tarball, insert manually
rmdir extlib/libdxfrw
mv solvespace-libdxfrw-%{shortcommit1} extlib/libdxfrw

%build
mkdir build
cd build
%cmake ..
%make_build

%install
cd build
%make_install

%check
desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop

%post -n libslvs -p /sbin/ldconfig

%postun -n libslvs -p /sbin/ldconfig

%files
%{_bindir}/solvespace
%{_datarootdir}/applications/solvespace.desktop
%{_datarootdir}/icons/hicolor/16x16/apps/solvespace.png
%{_datarootdir}/icons/hicolor/24x24/apps/solvespace.png
%{_datarootdir}/icons/hicolor/32x32/apps/solvespace.png
%{_datarootdir}/icons/hicolor/48x48/apps/solvespace.png
%{_datarootdir}/icons/hicolor/16x16/mimetypes/application.x-solvespace.png
%{_datarootdir}/icons/hicolor/24x24/mimetypes/application.x-solvespace.png
%{_datarootdir}/icons/hicolor/32x32/mimetypes/application.x-solvespace.png
%{_datarootdir}/icons/hicolor/48x48/mimetypes/application.x-solvespace.png
%{_datarootdir}/pixmaps/*
%license COPYING.txt
%doc README.md CHANGELOG.md

%files -n libslvs
%{_libdir}/libslvs.so.*
%license COPYING.txt

%files -n libslvs-devel
%{_libdir}/libslvs.so
%{_includedir}/slvs.h

%changelog
* Sun May 13 2018 Dominik Schubert - 2.3-3.20170416gitb1d87bf
- Rebuild for Fedora 28
- Remove obsolete scriptlets

* Sun Jan 21 2018 Dominik Schubert - 2.3-2.20170416gitb1d87bf
- Fix dependency on hicolor-icon-theme (should be runtime not build)

* Fri Jan 12 2018 Dominik Schubert - 2.3-1.20170416gitb1d87bf
- Initial packaging