Package Details: cemu-git 2.0.66.r0.ga63678c1-1

Git Clone URL: https://aur.archlinux.org/cemu-git.git (read-only, click to copy)
Package Base: cemu-git
Description: Nintendo Wii U emulator
Upstream URL: https://cemu.info/
Keywords: console emulation emulator game nintendo
Licenses: MPL-2.0
Conflicts: cemu
Provides: cemu
Submitter: abouvier
Maintainer: abouvier
Last Packager: abouvier
Votes: 10
Popularity: 0.92
First Submitted: 2022-08-27 04:24 (UTC)
Last Updated: 2024-02-24 17:33 (UTC)

Dependencies (49)

Required by (1)

Sources (2)

Pinned Comments

abouvier commented on 2022-10-12 17:50 (UTC)

Data and config files previously stored in ~/.local/share/cemu are now searched in ~/.config/Cemu, ~/.local/share/Cemu and ~/.cache/Cemu.

Latest Comments

1 2 3 4 5 Next › Last »

painfularch commented on 2024-02-18 06:28 (UTC)

BUILD.md got updated if relevant: https://github.com/cemu-project/Cemu/blob/main/BUILD.md#for-arch-and-derivatives

patlefort commented on 2023-12-12 18:26 (UTC)

It's missing a dependency on libsm.

There is also some problems with glslang that can solved with the following patch:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c988508..ad2c558 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -128,7 +128,7 @@ find_package(pugixml REQUIRED)
 find_package(RapidJSON REQUIRED)
 find_package(Boost COMPONENTS program_options filesystem nowide REQUIRED)
 find_package(libzip REQUIRED)
-find_package(glslang REQUIRED)
+find_package(Vulkan COMPONENTS glslang REQUIRED)
 find_package(ZLIB REQUIRED)
 find_package(zstd MODULE REQUIRED) # MODULE so that zstd::zstd is available
 find_package(OpenSSL COMPONENTS Crypto SSL REQUIRED)
@@ -136,11 +136,6 @@ find_package(glm REQUIRED)
 find_package(fmt 9 REQUIRED)
 find_package(PNG REQUIRED)

-# glslang versions older than 11.11.0 define targets without a namespace
-if (NOT TARGET glslang::SPIRV AND TARGET SPIRV)
-   add_library(glslang::SPIRV ALIAS SPIRV)
-endif()
-
 if (UNIX AND NOT APPLE)
    find_package(X11 REQUIRED)
    if (ENABLE_WAYLAND)
diff --git a/src/Cafe/CMakeLists.txt b/src/Cafe/CMakeLists.txt
index 29c5a0b..4d0e8de 100644
--- a/src/Cafe/CMakeLists.txt
+++ b/src/Cafe/CMakeLists.txt
@@ -516,7 +516,7 @@ target_link_libraries(CemuCafe PRIVATE
    Boost::nowide
    CURL::libcurl
    fmt::fmt
-   glslang::SPIRV
+   Vulkan::glslang
    ih264d
    OpenSSL::Crypto
    OpenSSL::SSL

queenbiscuit311 commented on 2023-08-03 18:37 (UTC)

No idea why, but recloning the PKGBUILD repository for the 4th time worked. No idea what the deal was before, but it's built successfully now. My apologies, then!

queenbiscuit311 commented on 2023-08-03 18:29 (UTC)

I've downloaded the pkgbuild fresh multiple times, but I'll try again.

abouvier commented on 2023-08-03 18:19 (UTC)

You are not building the latest version of the PKGBUILD.

queenbiscuit311 commented on 2023-08-03 17:41 (UTC)

I've found myself unable to build this package ever since the fmt 9/10 incident. Every time I try to compile, I get met with this error:

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found CURL: /usr/lib/libcurl.so (found version "8.2.1")  
-- RapidJSON found. Headers: /usr/include
-- Found Boost: /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake (found version "1.81.0") found components: program_options filesystem nowide 
-- Found ZLIB: /usr/lib/libz.so (found version "1.2.13")  
-- Found zstd: /usr/lib/cmake/zstd/zstdConfig.cmake (found version "1.5.5") 
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.1.2") found components: Crypto SSL 
CMake Error at CMakeLists.txt:115 (find_package):
  find_package called with invalid argument "9.1.0...<10...<10"


-- Found PNG: /usr/lib/libpng.so (found version "1.6.40") 
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so
-- Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found Wayland_Client: /usr/lib/libwayland-client.so (found version "1.22.0") 
-- Found Wayland: /usr/lib/libwayland-client.so (found version "1.22.0") found components: Client 
-- Found WaylandScanner: /usr/bin/wayland-scanner  
-- Found WaylandProtocols: //usr/share/wayland-protocols (found suitable version "1.32", minimum required is "1.15") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for one of the modules 'gtk+-3.0'
-- Found GTK3: /usr/lib/libgtk-3.so;/usr/lib/libgdk-3.so;/usr/lib/libz.so;/usr/lib/libpangocairo-1.0.so;/usr/lib/libpango-1.0.so;/usr/lib/libharfbuzz.so;/usr/lib/libatk-1.0.so;/usr/lib/libcairo-gobject.so;/usr/lib/libcairo.so;/usr/lib/libgdk_pixbuf-2.0.so;/usr/lib/libgio-2.0.so;/usr/lib/libgobject-2.0.so;/usr/lib/libglib-2.0.so (found version "3.24.38") 
-- Found OpenGL: /usr/lib/libOpenGL.so   
-- Found wxWidgets: /usr/lib/cmake/wxWidgets/wxWidgetsConfig.cmake (found suitable version "3.2.2", minimum required is "3.2") 
-- Checking for one of the modules 'zarchive'
-- Found ZArchive: /usr/lib/libzarchive.so (found version "0.1.2") 
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- The ASM_NASM compiler identification is NASM
-- Found assembler: /usr/bin/nasm
-- Configuring incomplete, errors occurred!
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: cemu-git-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
cemu-git - exit status 4

I've tried reinstalling and updating both fmt and fmt9, but nothing's worked.

Neko-san commented on 2023-08-02 01:52 (UTC)

Building with Clang and -stdlib=libc++ doesn't seem to actually use LLVM's libc++?

Using ldd on the resulting binary shows it links against gcc's:

libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007efcc2c00000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007efcc527c000)

Neko-san commented on 2023-07-30 20:09 (UTC) (edited on 2023-07-30 20:09 (UTC) by Neko-san)

To clarify, the compile flags aren't being modified;

it checks if those valuea are already defined and decides whether to build with LLVM or not, which upstream only does for clang.

The users themselves wouldn't have to modify the PKBUILD at all.

That aside, if you're sure about a fmt9 package, sure, but it'll only make more work for you.

abouvier commented on 2023-07-30 07:34 (UTC)

Sorry but I will do none of that :p

The added dependencies are only needed when you build the libs manually with vcpkg, which I will not enable.

And it's up to you to tweak the compiler flags in makepkg.conf, not to each PKGBUILD.

The only good solution is to create a compatibility package fmt9, and this PKGBUILD will build again without modification.

Neko-san commented on 2023-07-30 06:21 (UTC) (edited on 2023-07-30 06:51 (UTC) by Neko-san)

(@abouvier we can use these edits to make Cemu build-able again until the libfmt issue gets worked out)

Some the depends/makedepends I included were missing and are actually listed as necessary dependencies upstream:

https://github.com/cemu-project/Cemu/blob/main/BUILD.md#for-arch-and-derivatives

depends=(
    'discord-rpc'
    'freeglut'
    'gcc-libs'
    'glibc'
    'hicolor-icon-theme'
    'libc++abi'
    'libpulse'
    'libx11'
    'pugixml'
    'sdl2'
    'systemd'
    'wxwidgets-gtk3>=3.2'
    'zlib'
)
makedepends=(
    'boost'
    'clang'
    'cmake>=3.21.1'
    'cubeb'
    'curl'
#   'fmt>=9.1'
    'git'
    'glib2'
    'glm'
    'glslang'
    'glu'
    'gtk3'
    'libgcrypt'
    'libgl'
    'libpng'
    'libsecret'
    'libzip'
    'llvm'
    'nasm'
    'openssl'
    'rapidjson'
    'tar'
    'unzip'
    'vulkan-headers>=1:1.3.225'
    'wayland'
    'wayland-protocols'
    'zarchive>=0.1.2'
    'zip'
    'zstd'
)

Need to pull all the submodules or vcpkg will get mad (you might be able to refactor it to include everything besides fmt? Probably not)

prepare() {
    cd $_pkgname
    git config submodule.dependencies/imgui.url ../imgui
    git -c protocol.file.allow=always submodule update --init --recursive
    rm -r bin/shaderCache
    sed -i '/CMAKE_INTERPROCEDURAL_OPTIMIZATION/d' CMakeLists.txt
    sed -i '/discord-rpc/d' CMakeLists.txt
    sed -i '/FMT_HEADER_ONLY/d' src/Common/precompiled.h
    sed -i 's/glm::glm/glm/' src/{Common,input}/CMakeLists.txt
}

The if-check to both start using vcpkg and better account for using clang+LLVM if users have set clang in makepkg.conf

    if [ "${CC} = "gcc" ] || [ "${CC} = "/usr/bin/gcc" ]; then
        cmake -S $_pkgname -B build \
            -DCMAKE_C_COMPILER="${CC}" \
            -DCMAKE_CXX_COMPILER="/usr/bin/g++" \
            -DCMAKE_BUILD_TYPE=Release \
            -DCMAKE_C_FLAGS_RELEASE="${CFLAGS} -DNDEBUG" \
            -DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS} -DNDEBUG" \
            -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
            -DCMAKE_MAKE_PROGRAM="make" \
            -DPORTABLE=OFF \
            -Wno-dev
        cmake --build build
    elif [ "${CC} = "clang" ] || [ "${CC} = "/usr/bin/clang" ]; then
        cmake -S $_pkgname -B build \
            -DCMAKE_BUILD_TYPE=Release \
            -DCMAKE_C_COMPILER="${CC}" \
            -DCMAKE_CXX_COMPILER="/usr/bin/clang++" \
            -DCMAKE_C_FLAGS_RELEASE="${CFLAGS} -DNDEBUG" \
            -DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS} -DNDEBUG" \
            -DCMAKE_EXE_LINKER_FLAGS="-lc++abi ${LDFLAGS}" \
            -DCMAKE_AR="/usr/bin/llvm-ar" \
            -DCMAKE_NM="/usr/bin/llvm-nm" \
            -DCMAKE_AS="/usr/bin/llvm-as" \
            -DCMAKE_RANLIB="/usr/bin/llvm-ranlib" \
            -DCMAKE_OBJCOPY="/usr/bin/llvm-objcopy" \
            -DCMAKE_MAKE_PROGRAM="make" \
            -DPORTABLE=OFF \
            -Wno-dev
        cmake --build build
    fi