Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:ahmedmoselhi2:branches:Emulators
cemu
cemu.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File cemu.spec of Package cemu
# # spec file for package cemu # # Copyright (c) 2022 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/ # %global use_clang 1 %global use_lld 1 %global use_lto 1 %define gtk3_ui 1 %define use_qt6 0 %define __builder ninja Name: cemu Version: 2.0~82+7~git20240513.13b90874 Release: 0 Summary: Nintendo 3DS emulator License: MPL-2.0 Group: System/Emulators/Other URL: https://cemu.info/ Source: %{name}-%{version}.tar.xz Patch1: cemu_PR879.patch Patch2: cemu_cstdarg.patch BuildRequires: cmake BuildRequires: extra-cmake-modules %if "%{__builder}" == "ninja" BuildRequires: ninja %endif %if 0%{?use_clang} BuildRequires: clang-devel #BuildRequires: npth-devel %if 0%{?use_lld} BuildRequires: lld %else BuildRequires: binutils-gold BuildRequires: llvm-gold %endif %else BuildRequires: binutils-gold BuildRequires: gcc-c++ %endif BuildRequires: chrpath BuildRequires: fdupes BuildRequires: update-desktop-files BuildRequires: curl BuildRequires: nasm BuildRequires: zip BuildRequires: unzip BuildRequires: hicolor-icon-theme BuildRequires: libboost_filesystem-devel BuildRequires: libboost_program_options-devel BuildRequires: libboost_nowide-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(fmt) BuildRequires: pkgconfig(glm) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(hidapi-hidraw) BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavfilter) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libpostproc) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libswresample) BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(libzip) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(pugixml) BuildRequires: pkgconfig(RapidJSON) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(speexdsp) BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-scanner) %if 0%{?suse_version} < 1550 BuildRequires: zarchive-devel %else BuildRequires: pkgconfig(zarchive) %endif BuildRequires: spirv-tools-devel BuildRequires: glslang-devel BuildRequires: glslang-nonstd-devel BuildRequires: libzip-tools BuildRequires: libzstd-devel-static %if 0%{?gtk3_ui} BuildRequires: wxGTK3-devel BuildRequires: wxWidgets-any-devel BuildRequires: pkgconfig(gtk+-3.0) %else BuildRequires: wxQt-devel BuildRequires: wxWidgets-any-devel %if 0%{?use_qt6} BuildRequires: qt6-gui-private-devel BuildRequires: cmake(Qt5LinguistTools) BuildRequires: pkgconfig(Qt6Concurrent) BuildRequires: pkgconfig(Qt6Core) BuildRequires: pkgconfig(Qt6DBus) BuildRequires: pkgconfig(Qt6Network) BuildRequires: pkgconfig(Qt6Multimedia) BuildRequires: pkgconfig(Qt6MultimediaWidgets) BuildRequires: pkgconfig(Qt6OpenGL) BuildRequires: pkgconfig(Qt6Qml) BuildRequires: pkgconfig(Qt6Widgets) BuildRequires: pkgconfig(Qt6Svg) %else BuildRequires: cmake(Qt5LinguistTools) BuildRequires: pkgconfig(Qt5Concurrent) BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5DBus) BuildRequires: pkgconfig(Qt5Network) BuildRequires: pkgconfig(Qt5Multimedia) BuildRequires: pkgconfig(Qt5MultimediaWidgets) BuildRequires: pkgconfig(Qt5OpenGL) BuildRequires: pkgconfig(Qt5Qml) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Svg) %endif %endif ExclusiveArch: x86_64 %description This is Cemu, a Wii U emulator that is able to run most Wii U games and homebrew in a playable state. It's written in C/C++ and is being actively developed with new features and fixes to increase compatibility, convenience and usability. %{lang_package} %prep %setup -q %autopatch -p1 %build # this macro needs 'BuildRequires: memory-constraints' #limit_build -m 3072 ulimit -Sn 4000 UCFLAGS="%{optflags} -pthread -fopenmp -fPIC -O3" %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 -Wl,--gc-sections -Wl,-O1 -Wl,--icf=safe" %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" #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="${UCXXFLAGS} -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=4 -ftree-vectorize -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}" # -DENABLE_VCPKG=OFF \ export VCPKG_FORCE_SYSTEM_BINARIES=1 %cmake \ %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_BUILD_TYPE=Release \ -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 -DENABLE_VCPKG=OFF \ -DVCPKG_VERBOSE=ON \ -DVCPKG_USE_SYSTEM_BINARIES=ON \ -DVCPKG_PREFER_SYSTEM_LIBS=ON \ -DPORTABLE=OFF \ -DENABLE_DISCORD_RPC=OFF \ -DENABLE_CUBEB=ON \ %{?nil} || cat vcpkg-bootstrap.log %cmake_build %install # it has no installation… as customary #cmake_install mkdir -p %{buildroot}%{_bindir} chmod -v +x bin/Cemu_release mv -v bin/Cemu_release %{buildroot}%{_bindir}/cemu mkdir -p %{buildroot}/%{_datadir}/pixmaps mv -v src/resource/logo_icon.png %{buildroot}/%{_datadir}/pixmaps/%{name}.png mkdir -p %{buildroot}/%{_datadir}/cemu/resources mv -v bin/resources/shared* %{buildroot}/%{_datadir}/cemu/resources/ mv -v bin/resources %{buildroot}/%{_datadir}/locale for lang in $(ls %{buildroot}%{_datadir}/locale); do mkdir -p %{buildroot}%{_datadir}/locale/${lang}/LC_MESSAGES mv -v %{buildroot}%{_datadir}/locale/${lang}/*.mo %{buildroot}%{_datadir}/locale/${lang}/LC_MESSAGES/ done mv -v bin/* %{buildroot}/%{_datadir}/cemu/ %suse_update_desktop_file -c %{name} Cemu 'Wii U Emulator' cemu %{name} System Emulator chmod -x README.md chrpath --delete %{buildroot}%{_bindir}/* %fdupes -s %{buildroot} %find_lang %{name} %check #ctest %files lang -f %{name}.lang %files %doc README.md %license LICENSE.txt %{_bindir}/* %{_datadir}/cemu %{_datadir}/applications/%{name}.desktop #{_mandir}/man?/* #{_datadir}/mime/packages/*.xml %{_datadir}/pixmaps/%{name}.* #{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %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