Package Details: cemu-git 2.6.r6.gc4eab08f-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: 12
Popularity: 0.028046
First Submitted: 2022-08-27 04:24 (UTC)
Last Updated: 2025-04-04 00:04 (UTC)

Dependencies (50)

Required by (0)

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

« First ‹ Previous 1 2 3 4 5 6 7 8 Next › Last »

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

queenbiscuit311 commented on 2023-07-29 05:01 (UTC)

The fmt build error might be related to the update to fmt on the arch repos from yesterday. I can't update my packages because this and two other emulators require the previous version, that might be why but I'm not sure.

Neko-san commented on 2023-07-28 20:14 (UTC) (edited on 2023-07-28 21:07 (UTC) by Neko-san)

There appears to be a build error connected to CubebInputAPI.cpp that might be connected to a core.h header error with the fmt package:

[ 24%] Building CXX object src/audio/CMakeFiles/CemuAudio.dir/CubebInputAPI.cpp.o
In file included from <built-in>:508:
In file included from /build/cemu-git/src/build/src/audio/CMakeFiles/CemuAudio.dir/cmake_pch.hxx:5:
In file included from /build/cemu-git/src/cemu/src/Common/precompiled.h:9:
/usr/include/fmt/core.h:2561:10: error: call to deleted constructor of 'formatter<mapped_type, char_type>' (aka 'formatter<IAudioInputAPI::AudioInputAPI, char>')
  return formatter<mapped_type, char_type>().parse(ctx);
         ^
/usr/include/fmt/core.h:2620:23: note: in instantiation of function template specialization 'fmt::detail::parse_format_specs<IAudioInputAPI::AudioInputAPI, fmt::detail::compile_parse_context<char>>' requested here
        parse_funcs_{&parse_format_specs<Args, parse_context_type>...},
                      ^
/usr/include/fmt/core.h:2769:47: note: in instantiation of member function 'fmt::detail::format_string_checker<char, IAudioInputAPI::AudioInputAPI>::format_string_checker' requested here
      detail::parse_format_string<true>(str_, checker(s));
                                              ^
/build/cemu-git/src/cemu/src/audio/IAudioInputAPI.cpp:54:40: note: in instantiation of function template specialization 'fmt::basic_format_string<char, IAudioInputAPI::AudioInputAPI &>::basic_format_string<char[22], 0>' requested here
                throw std::runtime_error(fmt::format("invalid audio api: {}", api));
                                                     ^
/usr/include/fmt/core.h:792:3: note: 'formatter' has been explicitly marked deleted here
  formatter() = delete;
  ^
/usr/include/fmt/core.h:1690:3: error: static assertion failed due to requirement 'formattable': Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
  static_assert(
  ^
/usr/include/fmt/core.h:1711:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, IAudioInputAPI::AudioInputAPI &>' requested here
  return make_value<Context>(val);
         ^
/usr/include/fmt/core.h:1825:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, IAudioInputAPI::AudioInputAPI &, 0>' requested here
        data_{detail::make_arg<
                      ^
/usr/include/fmt/core.h:1844:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, IAudioInputAPI::AudioInputAPI>::format_arg_store<IAudioInputAPI::AudioInputAPI &>' requested here
  return {FMT_FORWARD(args)...};
         ^
/usr/include/fmt/core.h:2817:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, IAudioInputAPI::AudioInputAPI &>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
/build/cemu-git/src/cemu/src/audio/IAudioInputAPI.cpp:54:33: note: in instantiation of function template specialization 'fmt::format<IAudioInputAPI::AudioInputAPI &>' requested here
                throw std::runtime_error(fmt::format("invalid audio api: {}", api));
                                              ^
2 errors generated.
make[2]: *** [src/audio/CMakeFiles/CemuAudio.dir/build.make:109: src/audio/CMakeFiles/CemuAudio.dir/IAudioInputAPI.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from <built-in>:508:
In file included from /build/cemu-git/src/build/src/audio/CMakeFiles/CemuAudio.dir/cmake_pch.hxx:5:
In file included from /build/cemu-git/src/cemu/src/audio/../Common/precompiled.h:9:
/usr/include/fmt/core.h:2561:10: error: call to deleted constructor of 'formatter<mapped_type, char_type>' (aka 'formatter<IAudioAPI::AudioAPI, char>')
  return formatter<mapped_type, char_type>().parse(ctx);
         ^
/usr/include/fmt/core.h:2620:23: note: in instantiation of function template specialization 'fmt::detail::parse_format_specs<IAudioAPI::AudioAPI, fmt::detail::compile_parse_context<char>>' requested here
        parse_funcs_{&parse_format_specs<Args, parse_context_type>...},
                      ^
/usr/include/fmt/core.h:2769:47: note: in instantiation of member function 'fmt::detail::format_string_checker<char, IAudioAPI::AudioAPI>::format_string_checker' requested here
      detail::parse_format_string<true>(str_, checker(s));
                                              ^
/build/cemu-git/src/cemu/src/audio/IAudioAPI.cpp:134:40: note: in instantiation of function template specialization 'fmt::basic_format_string<char, IAudioAPI::AudioAPI &>::basic_format_string<char[22], 0>' requested here
                throw std::runtime_error(fmt::format("invalid audio api: {}", api));
                                                     ^
/usr/include/fmt/core.h:792:3: note: 'formatter' has been explicitly marked deleted here
  formatter() = delete;
  ^
/usr/include/fmt/core.h:1690:3: error: static assertion failed due to requirement 'formattable': Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
  static_assert(
  ^
/usr/include/fmt/core.h:1711:10: note: in instantiation of function template specialization 'fmt::detail::make_value<fmt::basic_format_context<fmt::appender, char>, IAudioAPI::AudioAPI &>' requested here
  return make_value<Context>(val);
         ^
/usr/include/fmt/core.h:1825:23: note: in instantiation of function template specialization 'fmt::detail::make_arg<true, fmt::basic_format_context<fmt::appender, char>, fmt::detail::type::custom_type, IAudioAPI::AudioAPI &, 0>' requested here
        data_{detail::make_arg<
                      ^
/usr/include/fmt/core.h:1844:10: note: in instantiation of function template specialization 'fmt::format_arg_store<fmt::basic_format_context<fmt::appender, char>, IAudioAPI::AudioAPI>::format_arg_store<IAudioAPI::AudioAPI &>' requested here
  return {FMT_FORWARD(args)...};
         ^
/usr/include/fmt/core.h:2817:28: note: in instantiation of function template specialization 'fmt::make_format_args<fmt::basic_format_context<fmt::appender, char>, IAudioAPI::AudioAPI &>' requested here
  return vformat(fmt, fmt::make_format_args(args...));
                           ^
/build/cemu-git/src/cemu/src/audio/IAudioAPI.cpp:134:33: note: in instantiation of function template specialization 'fmt::format<IAudioAPI::AudioAPI &>' requested here
                throw std::runtime_error(fmt::format("invalid audio api: {}", api));
                                              ^
2 errors generated.
make[2]: *** [src/audio/CMakeFiles/CemuAudio.dir/build.make:93: src/audio/CMakeFiles/CemuAudio.dir/IAudioAPI.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:593: src/audio/CMakeFiles/CemuAudio.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Also mentioned this upstream: https://github.com/cemu-project/Cemu/issues/919

Martchus commented on 2023-01-23 16:38 (UTC)

@modnoob Just rebuild. This "soname" dependency is automatically determined during the build. There's no change to the PKGBUILD file itself required.