File GBML.spec of Package GBML-dev

#
# spec file for package GBML
#

Name:           GBML-dev
Version:        1.4.0.0
Release:        0
Url:            https://gitlab.com/supremesonicbrazil/GBML
Summary:        Gaming Backup Multitool for Linux (GBML)
License:        GPL v3.0
Group:          Amusements/Games
Source:         %{name}-%{version}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

BuildRequires:  cmake
BuildRequires:  fdupes
BuildRequires:  gcc-c++

BuildRequires:  sqlite3
BuildRequires:  libQt5Core-devel, libqt5-qtbase-common-devel, libQt5Gui-devel, libQt5Widgets-devel

BuildRequires:  update-desktop-files
# Needed to workaround "directories not owned by a package" issue
BuildRequires:  hicolor-icon-theme
BuildRequires:  polkit

Conflicts:      GBML

%description
Steam Linux Swiss Knife is an open-source program that aims to automate the backup and restore of Steam games, their saves and configs, centralizing paths in a local and extremely lightweight database.

%prep
%setup -q -n %{name}-%{version}

%build
# Compiling from source code in a temporary folder
echo "----------[Compiling GBML...]----------"
# Checking qmake installation
if [ -x /usr/bin/qmake-qt5 ]; then
    QMAKE=qmake-qt5     # Fedora
else
    QMAKE=qmake         # Other distros
fi

# Compiling from source code in a temporary folder
mkdir bin
$QMAKE -o ./bin/Makefile ./src/GamingBackupMultitoolLinux.pro
cd bin
make
mv GamingBackupMultitoolLinux gbml

# Creating database
echo "----------[Creating database...]----------"
echo 'CREATE TABLE "RegisteredGames" (
`AppID`TEXT,
`SteamName`TEXT,
`GameFolder`TEXT,
`SavePath1`TEXT,
`SaveFolder1`TEXT,
`ConfigPath1`TEXT,
`ConfigFolder1`TEXT,
`SavePath2`TEXT,
`SaveFolder2`TEXT,
`ConfigPath2`TEXT,
`ConfigFolder2`TEXT,
`SavePath3`TEXT,
`SaveFolder3`TEXT,
`ConfigPath3`TEXT,
`ConfigFolder3`TEXT,
PRIMARY KEY(AppID)
);' | sqlite3 ./SteamLinuxGames.db
echo "DB Created"
cd ..
echo ".import DB.csv RegisteredGames" | sqlite3 -separator '|' ./bin/SteamLinuxGames.db

# Creating desktop entry and setting it as executable
echo "----------[Creating desktop entry...]----------"
echo '[Desktop Entry]
Version=1.0
Name=Gaming Backup Multitool for Linux
Comment=Backup automation for Steam games, saves and configs
Exec=/usr/bin/gbml
Icon=/usr/share/gbml/img/icon.png
Terminal=false
Type=Application
Categories=Utility;Application;' > ./%{name}.desktop
chmod +x ./%{name}.desktop

# Finishing
echo "Done! Steam Linux Swiss Knife was successfully built in 'bin'."
echo "Now, please run INSTALL.sh as sudo."
echo "--------------------------------------------------------------------------------"

%install
echo "----------[Installing SLSK to /opt/SLSK...]----------"
mkdir -p %{buildroot}/usr/share/gbml
mkdir -p %{buildroot}/usr/bin

mv ./bin/gbml %{buildroot}/usr/bin/gbml
mv ./bin/SteamLinuxGames.db %{buildroot}/usr/share/gbml/SteamLinuxGames.db
cp -r ./img %{buildroot}/usr/share/gbml/img
rm -r ./bin

#desktop icon
%suse_update_desktop_file -r -i %{name} Game Amusement
##install -d %{buildroot}%{_datadir}/applications/
##install ./%{name}.desktop %{buildroot}%{_datadir}/applications/
			
# Finishing
echo "Done! Steam Linux Swiss Knife was successfully installed in '/opt/SLSK'."
echo "If you want to uninstall it anytime, just do a 'sudo rm -r /opt/SLSK'."
echo "Enjoy!"
echo "--------------------------------------------------------------------------------"

%post
%icon_theme_cache_post
%desktop_database_post

%postun
%icon_theme_cache_postun
%desktop_database_postun

%files
%defattr(-,root,root)
/usr/bin/gbml
%dir /usr/share/gbml
/usr/share/gbml/SteamLinuxGames.db
%dir /usr/share/gbml/img
/usr/share/gbml/img/*
%{_datadir}/applications/%{name}.desktop

%changelog
openSUSE Build Service is sponsored by