Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37479052
en ru br
Репозитории ALT

Группа :: Эмуляторы
Пакет: pcsx2

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define optflags_lto -flto=thin
%define llvm_version 16.0

# git show -s --format=%ci upstream/pcsx2 | sed 's/[ :-]//g' | sed 's/\(.\{,14\}\).*/\1/'

%define svn_rev 20230513071212

%define libchdr_commit fec8ab94212cc65d9d9a62cb3da924f5830c04b0
%define gtest_version 1.12.1
%define zstd_version 1.5.2
%define vulkan_headers_version 1.3.226
%define glslang_version 11.7.1
%define rcheevos_commit 31f8788fe0e694e99db7ce138d45a655c556fa96

Name: pcsx2
Version: 1.7.4587
Release: alt1

Summary: Playstation 2 console emulator
License: GPLv3 and LGPLv3
Group: Emulators

Url: http://%name.net/
Packager: Nazarov Denis <nenderus at altlinux.org>

ExclusiveArch: x86_64

BuildRequires(pre): at-spi2-atk-devel
BuildRequires(pre): bzlib-devel
BuildRequires(pre): expat-devel
BuildRequires(pre): libat-spi2-core-devel
BuildRequires(pre): libblkid-devel
BuildRequires(pre): libbrotli-devel
BuildRequires(pre): libdatrie-devel
BuildRequires(pre): libdbus-devel
BuildRequires(pre): libepoxy-devel
BuildRequires(pre): libffi-devel
BuildRequires(pre): libfribidi-devel
BuildRequires(pre): libjpeg-devel
BuildRequires(pre): libmount-devel
BuildRequires(pre): libpcre2-devel
BuildRequires(pre): libpixman-devel
BuildRequires(pre): libselinux-devel
BuildRequires(pre): libthai-devel
BuildRequires(pre): libtiff-devel
BuildRequires(pre): libuuid-devel
BuildRequires(pre): wayland-protocols

# https://github.com/PCSX2/%name/archive/v%version/%name-%version.tar.gz

Source0: %name-%version.tar
# https://github.com/rtissera/libchdr/archive/%libchdr_commit/libchdr-%libchdr_commit.tar.gz
Source1: libchdr-%libchdr_commit.tar
# https://github.com/google/googletest/archive/release-%gtest_version/googletest-release-%gtest_version.tar.gz
Source2: googletest-release-%gtest_version.tar
# https://github.com/facebook/zstd/archive/v%zstd_version/zstd-%zstd_version.tar.gz
Source3: zstd-%zstd_version.tar
# https://github.com/KhronosGroup/Vulkan-Headers/archive/v%vulkan_headers_version/Vulkan-Headers-%vulkan_headers_version.tar.gz
Source4: Vulkan-Headers-%vulkan_headers_version.tar
# https://github.com/KhronosGroup/glslang/archive/%glslang_version/glslang-%glslang_version.tar.gz
Source5: glslang-%glslang_version.tar
# https://github.com/RetroAchievements/rcheevos/archive/%rcheevos_commit/rcheevos-%rcheevos_commit.tar.gz
Source6: rcheevos-%rcheevos_commit.tar

BuildRequires: clang%llvm_version
BuildRequires: cmake
BuildRequires: libGLU-devel
BuildRequires: libSDL2-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXcursor-devel
BuildRequires: libXdamage-devel
BuildRequires: libXdmcp-devel
BuildRequires: libXft-devel
BuildRequires: libXinerama-devel
BuildRequires: libXmu-devel
BuildRequires: libXrandr-devel
BuildRequires: libXtst-devel
BuildRequires: libaio-devel
BuildRequires: libalsa-devel
BuildRequires: libavformat-devel
BuildRequires: libbacktrace-devel
BuildRequires: libcurl-devel
BuildRequires: libfast_float-devel
BuildRequires: libfmt-devel
BuildRequires: liblzma-devel
BuildRequires: libpcap-devel
BuildRequires: libpulseaudio-devel
BuildRequires: libryml-devel
BuildRequires: libsoundtouch-devel
BuildRequires: libswresample-devel
BuildRequires: libswscale-devel
BuildRequires: libudev-devel
BuildRequires: libwayland-cursor-devel
BuildRequires: libwayland-egl-devel
BuildRequires: libwayland-server-devel
BuildRequires: libzip-devel
BuildRequires: libzip-utils
BuildRequires: lld%llvm_version
BuildRequires: llvm%llvm_version
BuildRequires: llvm%llvm_version-gold
BuildRequires: ninja-build
BuildRequires: qt6-tools-devel

%description
PCSX2 is an emulator for the playstation 2 video game console. It is written mostly in C++, some part are in C and x86 assembly.
There is still lot of on going work to improve compatibility & speed.

%prep
%setup -b 1 -b 2 -b 3 -b 4 -b 5 -b 6

%__mv -Tf ../libchdr-%libchdr_commit 3rdparty/libchdr/libchdr
%__mv -Tf ../googletest-release-%gtest_version 3rdparty/gtest
%__mv -Tf ../zstd-%zstd_version 3rdparty/zstd/zstd
%__mv -Tf ../Vulkan-Headers-%vulkan_headers_version 3rdparty/vulkan-headers
%__mv -Tf ../glslang-%glslang_version 3rdparty/glslang/glslang
%__mv -Tf ../rcheevos-%rcheevos_commit 3rdparty/rcheevos/rcheevos

%build
export ALTWRAP_LLVM_VERSION=%llvm_version

%cmake \
-DCMAKE_C_COMPILER:STRING=clang \
-DCMAKE_CXX_COMPILER:STRING=clang++ \
-DCMAKE_RANLIB:PATH=%_bindir/llvm-ranlib \
-DCMAKE_AR:PATH=%_bindir/llvm-ar \
-DCMAKE_NM:PATH=%_bindir/llvm-nm \
-DCMAKE_EXE_LINKER_FLAGS:STRING="-fuse-ld=lld" \
-DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" \
-DCMAKE_DISABLE_PRECOMPILE_HEADERS:BOOL=TRUE \
-DCMAKE_BUILD_PO:BOOL=TRUE \
-DDISABLE_ADVANCE_SIMD:BOOL=TRUE \
-DDISABLE_BUILD_DATE:BOOL=TRUE \
-DUSE_SYSTEM_RYML:BOOL=TRUE \
-DLTO_PCSX2_CORE:BOOL=TRUE \
-GNinja \
-Wno-dev

echo "#define SVN_REV $(echo %svn_rev)ll
#define GIT_TAG \"v$(echo %version)\"
#define GIT_TAGGED_COMMIT 1
#define GIT_REV \"\"" > %_cmake__builddir/common/include/svnrev.h

%cmake_build

%install
%__mkdir_p %buildroot%_bindir %buildroot%_libexecdir/%name
%__install -Dp -m0755 %_target_platform/bin/%name-qt %buildroot%_libexecdir/%name/%name-qt
%__ln_s %_libexecdir/%name/%name-qt %buildroot%_bindir/%name-qt
%__cp -r %_target_platform/bin/resources %buildroot%_libexecdir/%name
%__install -Dp -m0644 %_target_platform/bin/resources/icons/AppIconLarge.png %buildroot%_iconsdir/hicolor/256x256/apps/PCSX2.png
%__install -Dp -m0644 .github/workflows/scripts/linux/%name-qt.desktop %buildroot%_desktopdir/%name-qt.desktop

%files
%doc bin/docs/*.pdf
%_bindir/%name-qt
%_desktopdir/%name-qt.desktop
%_libexecdir/%name
%_iconsdir/hicolor/256x256/apps/PCSX2.png

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin