File solvespace.spec of Package solvespace

#
# spec file for package solvespace
#
# Copyright (c) 2026 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define soname 1
%define  _name  com.solvespace.SolveSpace
#%%if 0%%{?suse_version} == 1600 && 0%%{?is_opensuse}
%bcond_without system_eigen3
#%%endif
Name:           solvespace
Version:        3.2
Release:        0
Summary:        Parametric 3d CAD
License:        GPL-3.0-or-later
Group:          Productivity/Graphics/CAD
URL:            https://github.com/solvespace/solvespace
Source0:        %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires:  cmake >= 3.18
BuildRequires:  desktop-file-utils
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  hicolor-icon-theme
BuildRequires:  pkgconfig
BuildRequires:  cmake(Qt6Core)
BuildRequires:  cmake(Qt6Gui)
BuildRequires:  cmake(Qt6OpenGLWidgets)
BuildRequires:  cmake(Qt6Widgets)
BuildRequires:  pkgconfig(cairo)
%{!?with_system_eigen3:BuildRequires:  pkgconfig(eigen3)}
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(json-c)
BuildRequires:  pkgconfig(libpng)
BuildRequires:  pkgconfig(opengl)
BuildRequires:  pkgconfig(zlib)
Provides:       bundled(libdxfrw)
Provides:       bundled(libmimalloc)
ExclusiveArch:  %{ix86} x86_64

%description
Applications include:
  * modeling 3d parts
  * modeling 2d parts
  * 3d-printed parts
  * preparing CAM data
  * mechanism design
  * plane and solid geometry

%package     -n libslvs%{soname}
Summary:        Geometric kernel of %{name}
Group:          System/Libraries

%description -n libslvs%{soname}
Parametric 2d/3d CAD.

Contains the geometric kernel of %{name}, built as a library.

%package     -n libslvs-devel
Summary:        Development files for libslvs
Group:          Development/Libraries/C and C++
Requires:       libslvs%{soname} = %{version}

%description -n libslvs-devel
Development files for libslvs including headers and libraries

%prep
%autosetup -p1
sed -i '/include(GetGitCommitHash)/s/^/#/' CMakeLists.txt

%build
%cmake_qt6 \
    -DUSE_QT_GUI=ON \
    -DENABLE_OPENMP=ON \
    -DENABLE_LTO=ON \
    %{!?with_system_eigen3:-DEIGEN3_INCLUDE_DIRS=%{_includedir}/eigen3}
    %{nil}
%qt6_build

%install
%qt6_install
desktop-file-edit --set-key=Categories --set-value="Graphics;3DGraphics;Engineering;" \
    %{buildroot}%{_datadir}/applications/%{name}-qt.desktop
%fdupes -s %{buildroot}%{_datadir}

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

%ldconfig_scriptlets -n libslvs%{soname}

%files
%doc README.md
%{_bindir}/%{name}-cli
%{_bindir}/%{name}-qt
%{_datadir}/%{name}
%{_datadir}/applications/%{name}-qt.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.??g
%{_datadir}/icons/hicolor/*/mimetypes/application-x-%{name}.??g
%{_datadir}/metainfo/%{_name}.metainfo.xml
%dir %{_datadir}/thumbnailers
%{_datadir}/thumbnailers/%{name}.thumbnailer
%{_datadir}/mime/packages/%{name}-slvs.xml
%license COPYING.txt

%files -n libslvs%{soname}
%{_libdir}/libslvs.so.*

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

%changelog
openSUSE Build Service is sponsored by