ppsspp/ppsspp.spec
Klaus Kämpf 2665d54d06 Accepting request 522274 from home:xenonpk
- Update to version 1.4.2~git20170903:
  * Add Sony PS3 controller mappings
- Update to version 1.4.2~git20170901:
  * Integrate sceUsbGps and sceUsbCam with Android
  * Integrate sceUsbGps and sceUsbCam with Android - 2
  * More mingw patches
  * More mingw patches pt. 2
  * Simplify this conditional
  * PACK should be defined different for Win32 based on whether we compile with Mingw or MSVC
  * Revert "PACK should be defined different for Win32 based on whether"
  * Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11
  * Remove snprintf compatibility hacks for MSVC versions before 2015
  * Remove Globals.h
  * Buildfix
  * Linux buildfix
  * mingw patches
- Update to version 1.4.2~git20170830:
  * Assorted cleanup of Vulkan init code. Show Vulkan extensions in system info.
  * Separate VulkanContext::CreateDevice into ChooseDevice and CreateDevice to give an opportunity to enable extensions.
  * Buildfix
  * Minor cleanups
  * Fix bug in vulkan init. Add some sanity checks to GL shader cache loading.
  * Add a hack to override the default framebuffer on non-iOS, to unblock the new RetroArch port attempt  (#9936)
  * Fix a PIC compliance bug in the VFPU. Comment other cases properly (for easy searching).
  * apple buildfix
  * Patches to make it possible to compile with mingw, pt. 1
  * Removed MSVC check
  * Change this to _MSC_VER
  * Remove this too - we will use UNICODE and _UNICODE defines for mingw build
  * SafeMem: Remove the "far" optimization that saves 3 bytes sometimes but is really dangerous and not worth the complexity.
- Update to version 1.4.2~git20170825:
  * Another couple of control mappings, see #9825
  * Fix possible crash when loading GL shader caches. Should help #9930.
- Update to version 1.4.2~git20170824:
  * Bump the GL shader cache version
- Update to version 1.4.2~git20170821:
  * Make keys names translatable in pop-up
  * Reuse some already translated strings
  * Add a new translation category for the remote ISO feature
  * Oops, forgot this one
  * Implement vertex caching for Vulkan.
  * Vulkan vertex cache: Fix bug with "pure prim" draws (where we avoid the index buffer)
  * Make FLAG_FLUSHBEFORE a no-op, move flushes into the execution functions.
  * Fastpath in fastrunloop when diff=0. Remove need for Execute for UV scale/offset.
  * Minor cleanups
  * Buildfix for X86 Android
  * Crashfix on older devices
  * Vulkan: Add code (disabled) to be able to run with more in-flight frames. Only improves performance marginally and needs more testing.
  * FRAGMENT_SHADER needs to be marked dirty if shademode changes. Fixes #9904.
  * Make control mapping pop-up title translatable
  * Make dev menu pop-up title translatable
  * Fixed invalid preprocessor directive
  * ARM: Delete obsolete comments and check
  * More vulkan microoptimizations. Add more profiler scopes.
  * Vulkan: Fix some inefficient command pool usage, might also fix a race condition
  * Vulkan: Fix bug sometimes causing the wrong renderpass to be ended at exit, causing crashes.
  * Add hooks for Marvel video copy func.
  * Replace the most critical unordered_maps and maps with two new maps: FastHashMap and PrehashMap.
  * SIMD-optimize some data conv routines used in uniform updates.
  * Include Hashmaps.h in CMakeLists.txt.
  * Maintain the hashmap from time to time. Fix a bug in count reset on grow.
  * Optimize uniform uploads for D3D9 and GL as well.
  * Buildfix
  * 32-bit buildfix
  * And yet another buildfix.
  * Minor optimizations (use the new hashmap in a few more places)
  * ... And also for the vertex decoder (DenseHashMap)
  * Switch over the GL shader manager to the new hashmaps.
  * Buildfix
  * Fix some missing dirty flags (affects FS_BIT_LMODE)
  * Keeping descriptorsets around between frames can cause problems if we run out.. Try to prevent that. Need a better method than this though.
  * Linux buildfix
  * GPU: Consider bbox failed with zero verts.
  * GPU: Fix alignment on signal jump/call.
  * This might not always be 16-byte aligned.
- Update to version 1.4.2~git20170816:
  * Simple micro-optimization in AdvanceVerts
  * Can't dirty VERTEXSHADER_STATE before the flush in Execute_VertexTypeSkinning, causes obscure bugs when software skinning is enabled
  * NEON-optimize bone matrix loads
  * Vulkan: More minor optimization (avoid pipeline cache lookups when possible)
  * NEON-optimize CLUT loads
  * Neon-optimize the audio s32->s16 packing function
  * Initial work on supporting sustained perf mode
  * Cleaner Vulkan shutdown
  * Add controller entries from gabomdq/SDL_GameControllerDB
  * Oops, forgot to update NativeQueryConfig, thanks unknown
  * Spacing
- Update to version 1.4.2~git20170815:
  * Ensure everything is dirty on frame start.
  * All: Only convert blend state if "dirty"
  * All: Only convert depth stencil state if dirty
  * All: Only convert raster state if dirty
  * Dirty RASTER_STATE when switching between rect and non-rect primitives (culling)
  * All: Only convert viewportscissor state if dirty
  * Dirty viewport state on framebuf resize.
  * Add some missing VIEWPORTSCISSOR dirtying.
  * D3D11: Make better use of the dirty flags to avoid state calls
  * All: Only recompute the vertex shader ID when dirty
  * Dirty vertexshader state on hw bezier/spline.
  * Dirty things on stencil buffer upload.
  * Dirty-flag the fragment shader ID.
  * Add some missing fragment shader state changes.
  * Dirty on various framebuf state helpers.
  * Oops, broke Vulkan in the rebase somehow. Fixed.
  * Use dirty-flags more in Vulkan state setting
  * Dirty-track the current pipeline to avoid many vkBindPipeline calls.
  * Fix minor blendstate oversight, restore a disabled optimization
  * Vulkan: Fix some more state dirtying issues.

OBS-URL: https://build.opensuse.org/request/show/522274
OBS-URL: https://build.opensuse.org/package/show/Emulators/ppsspp?expand=0&rev=15
2017-09-10 11:15:36 +00:00

185 lines
5.0 KiB
RPMSpec

#
# spec file for package ppsspp
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
Name: ppsspp
Version: 1.4.2~git20170903
Release: 0
Summary: PlayStation Portable Emulator
License: GPL-2.0+
Group: System/Emulators/Other
Url: http://www.ppsspp.org
Source: %{name}-%{version}.tar.xz
BuildRequires: gcc-c++
BuildRequires: cmake >= 3.3.2
BuildRequires: Mesa-devel
BuildRequires: libzip-devel
BuildRequires: snappy-devel
BuildRequires: unzip
BuildRequires: fdupes
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libpng)
#Qt deps:
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5OpenGL)
#ffmpeg deps: (Restore once https://github.com/hrydgard/ppsspp/issues/9026 is closed)
#BuildRequires: pkgconfig(libavcodec)
#BuildRequires: pkgconfig(libswscale)
#BuildRequires: pkgconfig(libavformat)
#BuildRequires: pkgconfig(libavutil)
#BuildRequires: pkgconfig(libavdevice)
#BuildRequires: pkgconfig(libavfilter)
#BuildRequires: pkgconfig(libpostproc)
#BuildRequires: pkgconfig(libswresample)
#Desktop icon deps
BuildRequires: update-desktop-files
Requires(post): hicolor-icon-theme
Requires(postun): hicolor-icon-theme
Requires: %{name}-common
%description
PPSSPP is a PSP emulator written in C++, and translates PSP CPU instructions directly into optimized x86, x64 and ARM machine code, using JIT recompilers (dynarecs).
%package qt
Summary: PPSSPP Qt backend
Group: System/Emulators/Other
Requires: %{name}-common
%description qt
PPSSPP build using the Qt framework
%package common
Summary: PPSSPP assets
Group: System/Emulators/Other
%description common
Required assets for PPSSPP GUI
%prep
%setup -q
sed -i 's|cmake_minimum_required(VERSION 3.6)|cmake_minimum_required(VERSION 3.3.2)|g' CMakeLists.txt
echo "// This is a generated file.
const char *PPSSPP_GIT_VERSION = \"%{version}\";
// If you don't want this file to update/recompile, change to 1.
#define PPSSPP_GIT_VERSION_NO_UPDATE 1
" > git-version.cpp
%build
#Restore -DUSE_SYSTEM_FFMPEG="ON" \ once ffmpeg bug is fixed upstream
mkdir build-qt
cd build-qt
cmake .. \
-DUSE_FFMPEG="ON" \
-DUSING_QT_UI="ON" \
-DCMAKE_C_FLAGS="%optflags" \
-DCMAKE_CXX_FLAGS="%optflags" \
-DCMAKE_BUILD_TYPE="Release|RelWithDebugInfo" \
-DCMAKE_SKIP_RPATH="YES"
%make_jobs
mkdir ../build
cd ../build
cmake .. \
-DUSE_FFMPEG="ON" \
-DCMAKE_C_FLAGS="%optflags" \
-DCMAKE_CXX_FLAGS="%optflags" \
-DCMAKE_BUILD_TYPE="Release|RelWithDebugInfo" \
-DCMAKE_SKIP_RPATH="YES"
%make_jobs
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_libexecdir}/%{name}
#setup wrapper(s)
cat > %{buildroot}%{_bindir}/%{name}-qt << 'EOF'
#!/bin/sh
exec %{_libexecdir}/%{name}/%{name}-qt "$@"
EOF
cat > %{buildroot}%{_bindir}/%{name} << 'EOF'
#!/bin/sh
exec %{_libexecdir}/%{name}/%{name} "$@"
EOF
#install files
install -m 755 -D build-qt/PPSSPPQt %{buildroot}%{_libexecdir}/%{name}/%{name}-qt
install -m 755 -D build/PPSSPPSDL %{buildroot}%{_libexecdir}/%{name}/%{name}
mv assets %{buildroot}%{_libexecdir}/%{name}/
mkdir -p %{buildroot}%{_datadir}/pixmaps
install -m 444 -D icons/icon.svg %{buildroot}%{_datadir}/pixmaps/%{name}.svg
%suse_update_desktop_file -c %{name} PPSSPP 'PSP Emulator' %{name} %{name} System Emulator
%suse_update_desktop_file -c %{name}-qt PPSSPPQt 'PSP Emulator' %{name}-qt %{name} System Emulator
%fdupes %{buildroot}
%check
%ctest
%post
%desktop_database_post
%icon_theme_cache_post
%postun
%desktop_database_postun
%icon_theme_cache_postun
%files qt
%defattr(-,root,root)
%attr(755, root, root) %{_bindir}/%{name}-qt
%{_libexecdir}/%{name}/%{name}-qt
%{_datadir}/applications/%{name}-qt.desktop
%files common
%defattr(-,root,root)
#Fix SLE_12_SP2 and LEAP 42.1 builds
%if 0%{?sle_version} <= 120200 && 0%{?suse_version} <= 1320
%doc README.md LICENSE.TXT
%else
%doc README.md
%license LICENSE.TXT
%endif
%{_libexecdir}/%{name}/assets
%{_datadir}/pixmaps/%{name}.svg
%files
%defattr(-,root,root)
%dir %{_libexecdir}/%{name}
%attr(755, root, root) %{_bindir}/%{name}
%{_libexecdir}/%{name}/%{name}
%{_datadir}/applications/%{name}.desktop
%changelog