Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:ahmedmoselhi2:branches:Emulators
xenia-canary
xenia-canary.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xenia-canary.spec of Package xenia-canary
# # spec file for package xenia # # Copyright (c) 2023 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 use_clang 1 %define use_lld 1 %define use_lto 1 %define __builder ninja %define __sourcedir build Name: xenia-canary Version: 20240515T203451.5bbba85c7 Release: 0 Summary: Xbox 360 emulator License: BSD-3-Clause+ Group: System/Emulators/Other URL: https://xenia.jp/ Source: %{name}-%{version}.tar.xz Patch1: xenia_PR2212.patch Patch2: xenia_PR2229.patch Patch3: xenia_PR2232.patch Patch4: xenia_PR2233.patch Patch5: xenia_PR2234.patch #Patch10: xenia-canary_PR222R.patch # bit-rotten #Patch10: xenia-canary_PR198.patch BuildRequires: cmake #BuildRequires: git BuildRequires: premake5 BuildRequires: automake BuildRequires: binutils-gold BuildRequires: python3 %if "%{__builder}" == "ninja" BuildRequires: ninja %endif %if 0%{?use_clang} BuildRequires: clang-devel #BuildRequires: npth-devel %if 0%{?use_lld} BuildRequires: lld %else BuildRequires: llvm-gold %endif %else BuildRequires: gcc-c++ %endif BuildRequires: chrpath BuildRequires: fdupes BuildRequires: update-desktop-files BuildRequires: curl BuildRequires: dxc BuildRequires: dxc-libdxcompiler-devel BuildRequires: glslang-devel BuildRequires: imgui-devel BuildRequires: mbedtls-devel BuildRequires: renderdoc-devel BuildRequires: zip BuildRequires: unzip BuildRequires: hicolor-icon-theme BuildRequires: pkgconfig BuildRequires: pkgconfig(RapidJSON) BuildRequires: pkgconfig(SPIRV-Tools) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(capstone) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(fmt) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libunwind) BuildRequires: pkgconfig(libxxhash) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(snappy) BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(zarchive) BuildRequires: pkgconfig(zlib) #BuildRequires: pkgconfig(wayland-client) #BuildRequires: pkgconfig(wayland-protocols) #BuildRequires: pkgconfig(wayland-scanner) # ffmpeg BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavfilter) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswresample) BuildRequires: pkgconfig(libswscale) ExclusiveArch: x86_64 Provides: xenia = %{version} Conflicts: xenia %description Xenia-canary is the testing branch of an experimental emulator for the Xbox 360. %package tools Summary: Xbox 360 emulator debugging tools Group: System/Emulators/Other Requires: %{name} = %{version} %description tools Various debugging tools for Xenia-canary. %prep %autosetup -p1 sed -i '/Werror/d' third_party/cxxopts/CMakeLists.txt %build # this macro needs 'BuildRequires: memory-constraints' #limit_build -m 3072 ulimit -Sn 4000 UCFLAGS="%{optflags} -pthread -fopenmp -fPIC -O3 -w" %ifarch x86_64 export UCFLAGS="${UCFLAGS} -march=x86-64 -mtune=generic -mssse3 -msse4 -msse4.1 -msse4.2 -mavx -maes -mpclmul" %endif export ULDFLAGS="-pthread -fopenmp -lgomp -fPIC" export ULDFLAGS="${ULDFLAGS} -Wl,--icf=safe -Wl,--gc-sections" %if 0%{?use_lld} export ULDFLAGS="${ULDFLAGS} -fuse-ld=lld" %ifarch %ix86 %arm export ULDFLAGS="${ULDFLAGS} -Wl,-z,notext" %endif export LD="lld" alias ld=ld.lld %else export ULDFLAGS="${ULDFLAGS} -fuse-ld=gold -Wl,--sort-common -Wl,-O1" export LD=ld.gold alias ld=gold %endif %if 0%{?use_clang} export CC=clang export CXX=clang++ export UCFLAGS="${UCFLAGS} -v -Wno-error=integer-overflow" #export UCFLAGS="${UCFLAGS} -fbracket-depth=1024 -fconstexpr-depth=1024" %ifarch x86_64 #export UCFLAGS="${UCFLAGS} -fglobal-isel" %endif #export UCFLAGS="${UCFLAGS} -D_GNU_SOURCE -fexceptions" export UCXXFLAGS="${UCFLAGS}" #export UCXXFLAGS="${UCFLAGS} -fpermissive -fcxx-exceptions" export HOST="$(${CC} -print-target-triple)" %if 0%{?use_lto} %if 0%{?use_lld} %global _lto_cflags -flto=thin %global _lto_ldlags -flto=thin -Wl,--plugin-opt=O3 %{?jobs:-Wl,--threads=%{jobs}} %else %global _lto_cflags -flto=thin %global _lto_ldlags -flto=thin %endif %else %global _lto_cflags %nil %global _lto_ldlags %nil %endif %else export CC=gcc export CXX=g++ export UCFLAGS="${UCFLAGS} -ftree-parallelize-loops=16 -ftree-vectorize -fvect-cost-model=very-cheap -fpredictive-commoning" export UCXXFLAGS="${UCFLAGS}" export HOST="%{_target_platform}" %if 0%{?use_lto} %global _lto_cflags -fuse-linker-plugin %_lto_cflags -ffat-lto-objects -flto-odr-type-merging %global _lto_ldlags -fuse-linker-plugin -flto %else %global _lto_cflags %nil %global _lto_ldlags %nil %endif %endif export TARGET="${HOST}" export UCFLAGS="${UCFLAGS} %_lto_cflags" export UCXXFLAGS="${UCXXFLAGS} %_lto_cflags" export ULDFLAGS="${ULDFLAGS} %_lto_cflags %_lto_ldlags" # override OBS defaults ? export CFLAGS="${UCFLAGS}" export CXXFLAGS="${UCXXFLAGS}" export LDFLAGS="${ULDFLAGS}" # make-based build by default, to use cmake add `--devenv=cmake` ln -sv /usr/bin/premake5 tools/build/bin/ python3 ./xb premake --cc=${CC} --target_os=linux --devenv=cmake #python3 ./xb build --cc=${CC} --no_premake %cmake \ -DCMAKE_BUILD_TYPE=Release \ %if "%{__builder}" == "ninja" -DCMAKE_MAKE_PROGRAM="ninja" \ %endif -DBUILD_SHARED_LIBS=OFF \ -DBUILD_STATIC_LIBS=ON \ -DUSE_PCH=OFF -DENABLE_PCH=OFF \ -DENABLE_PRECOMPILED_HEADERS=OFF \ -DSKIP_PRECOMPILE_HEADERS=ON \ -DUSE_PRECOMPILED_HEADERS=OFF \ -DCMAKE_SKIP_RPATH=OFF \ -DCMAKE_INSTALL_RPATH="" \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ -DCMAKE_C_COMPILER="${CC}" \ -DCMAKE_CXX_COMPILER="${CXX}" \ -DCMAKE_LINKER="${LD}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ %if !0%{?use_lto} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=OFF \ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO=OFF \ %endif %{?nil} %cmake_build %install # it has no installation… as customary #cmake_install find build/bin -type f || echo ignore rm -v build/bin/Linux/*/*.a || echo "no trash in build/bin/Linux/*/" mkdir -pv %{buildroot}%{_bindir} install -D -m 0755 build/bin/Linux/*/* %{buildroot}%{_bindir}/ chrpath --delete %{buildroot}%{_bindir}/* #fdupes -s %{buildroot} %files %doc README.md %license LICENSE %{_bindir}/xenia #{_datadir}/* #{_datadir}/applications/xenia.desktop #{_mandir}/man?/* #{_datadir}/mime/packages/*.xml #{_datadir}/pixmaps/xenia.* #{_datadir}/icons/hicolor/scalable/apps/xenia.svg %files tools %license LICENSE %{_bindir}/xenia-* %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor