File prismlauncher.spec of Package prismlauncher
# Change these variables if you want to use custom keys
# Leave blank if you want to build Prism Launcher without an MSA ID or CurseForge API key
%global msa_id default
%global curseforge_key default
# Set the Qt version
%global qt_version 6
%global min_qt_version 6.2
# Give the launcher our build platform
%define build_platform openSUSE
Name: prismlauncher
Version: 10.0.2
Release: 1%{?dist}
# See COPYING.md for more information
# Each file in the source tree also contains a SPDX-License-Identifier header
License: GPL-3.0-only AND Apache-2.0 AND LGPL-3.0-only AND OFL-1.1 AND LGPL-2.1 AND MIT AND BSD-3-Clause
Group: Amusements/Games/Action/Other
Summary: Minecraft launcher with ability to manage multiple instances
Source0: https://github.com/PrismLauncher/PrismLauncher/releases/download/%{version}/PrismLauncher-%{version}.tar.gz
URL: https://prismlauncher.org/
BuildRequires: cmake >= 3.22
BuildRequires: extra-cmake-modules
BuildRequires: gcc-c++
BuildRequires: java-17-openjdk-devel
BuildRequires: pkgconfig(gamemode)
BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(libcmark)
BuildRequires: pkgconfig(libqrencode)
BuildRequires: pkgconfig(scdoc)
BuildRequires: pkgconfig(tomlplusplus)
BuildRequires: pkgconfig(zlib)
BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}CoreTools) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}Network) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}NetworkAuth) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}OpenGL) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}Test) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version}
BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version}
Requires: qt%{qt_version}-imageformats
Requires: libQt%{qt_version}Svg%{qt_version}
Requires: javapackages-filesystem
Recommends: java = 21
Recommends: java = 17
Suggests: java = 1.8.0
# Used to gather GPU info with `lspci`
Requires: pciutils
# Ditto, but with `glxinfo`
Requires: Mesa-demos
# xrandr needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
Recommends: xrandr
# Needed for using narrator in Minecraft
Recommends: flite
# The launcher supports enabling gamemode
Suggests: gamemode
%description
A custom launcher for Minecraft that allows you to easily manage
multiple installations of Minecraft at once (Fork of MultiMC)
%prep
%autosetup -n PrismLauncher-%{version}
# Do not set RPATH
sed -i "s|\$ORIGIN/||" CMakeLists.txt
%build
%cmake \
-DLauncher_BUILD_PLATFORM="%{build_platform}" \
%if "%{msa_id}" != "default"
-DLauncher_MSA_CLIENT_ID="%{msa_id}" \
%endif
%if "%{curseforge_key}" != "default"
-DLauncher_CURSEFORGE_API_KEY="%{curseforge_key}" \
%endif
%cmake_build
%install
%cmake_install
%check
%ctest
%files
%doc README.md
%license LICENSE COPYING.md
%dir %{_datadir}/PrismLauncher
%dir %{_datadir}/qlogging-categories%{qt_version}
%{_bindir}/prismlauncher
%{_datadir}/PrismLauncher/*
%{_datadir}/applications/org.prismlauncher.PrismLauncher.desktop
%{_datadir}/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg
%{_datadir}/icons/hicolor/256x256/apps/org.prismlauncher.PrismLauncher.png
%{_datadir}/metainfo/org.prismlauncher.PrismLauncher.metainfo.xml
%{_datadir}/mime/packages/modrinth-mrpack-mime.xml
%{_datadir}/qlogging-categories?/prismlauncher.categories
%{_mandir}/man?/prismlauncher.*
%changelog