Cemu
Cemu copied to clipboard
Problem building on Fedora
Following official build instructions for Fedora Linux, I encounter this error when building:
-- Checking for one of the modules 'zarchive'
-- Could NOT find ZArchive (missing: zarchive_LINK_LIBRARIES zarchive_FOUND) (found version "")
-- Configuring done
-- Generating done
This error comes a long way through the build process, and occurs while running the command cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -G Ninja
How did you download the code? It seems that the Zarchive submodule is missing.
I can confirm this is an issue on Fedora 37 KDE Beta.
This is what I ran:
cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -CMAKE_BUILD_WITH_INSTALL_RPATH=ON -G Ninja
And this is where it breaks (same error):
Checking for one of the modules 'zarchive'
-- Could NOT find ZArchive (missing: zarchive_LINK_LIBRARIES zarchive_FOUND) (found version "")
-- The ASM_NASM compiler identification is NASM
-- Found assembler: /usr/bin/nasm
-- Configuring incomplete, errors occurred!
To make sure I didn't do anything wrong I completelty removed the Cemu folder and recloned using the build instructions. Same error.
Uhm, thinking about it it is possible that Zarchive is not the issue. Could you please include the full log?
Uhm, thinking about it it is possible that Zarchive is not the issue. Could you please include the full log?
Thanks, but those files do not include the full logs; I'd be great if
you could also paste the console output of the cmake invocation
itself :)
Thanks, but those files do not include the full logs; I'd be great if you could also paste the console output of the
cmakeinvocation itself :)
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -CMAKE_BUILD_WITH_INSTALL_RPATH=ON -G Ninja
loading initial cache file MAKE_BUILD_WITH_INSTALL_RPATH=ON
CMake Error: Error processing file: /home/qushy/Cemu/MAKE_BUILD_WITH_INSTALL_RPATH=ON
-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
All requested packages are currently installed.
Restored 0 package(s) from /home/qushy/.cache/vcpkg/archives in 781 ns. Use --debug to see more details.
Total elapsed time: 327.5 ms
The package boost is compatible with built-in CMake targets:
find_package(Boost REQUIRED [COMPONENTS <libs>...])
target_link_libraries(main PRIVATE Boost::boost Boost::<lib1> Boost::<lib2> ...)
The package openssl is compatible with built-in CMake targets:
find_package(OpenSSL REQUIRED)
target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto)
The package zlib is compatible with built-in CMake targets:
find_package(ZLIB REQUIRED)
target_link_libraries(main PRIVATE ZLIB::ZLIB)
curl provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(CURL CONFIG REQUIRED)
target_link_libraries(main PRIVATE CURL::libcurl)
The package fmt provides CMake targets:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt)
# Or use the header-only version
target_link_libraries(main PRIVATE fmt::fmt-header-only)
glm provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(glm CONFIG REQUIRED)
target_link_libraries(main PRIVATE glm::glm)
glslang provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(glslang CONFIG REQUIRED)
# note: 5 additional targets are not displayed.
target_link_libraries(main PRIVATE HLSL SPIRV glslang OGLCompiler)
imgui provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(imgui CONFIG REQUIRED)
target_link_libraries(main PRIVATE imgui::imgui)
The package libpng is compatible with built-in CMake targets:
find_package(PNG REQUIRED)
target_link_libraries(main PRIVATE PNG::PNG)
libzip provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(libzip CONFIG REQUIRED)
target_link_libraries(main PRIVATE libzip::zip)
pugixml provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(pugixml CONFIG REQUIRED)
target_link_libraries(main PRIVATE pugixml pugixml::static pugixml::pugixml)
rapidjson provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(RapidJSON CONFIG REQUIRED)
target_link_libraries(main PRIVATE rapidjson)
sdl2 provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(SDL2 CONFIG REQUIRED)
target_link_libraries(main PRIVATE SDL2::SDL2 SDL2::SDL2main SDL2::SDL2-static)
The package wxwidgets provides CMake targets:
find_package(wxWidgets CONFIG REQUIRED)
target_link_libraries(main PRIVATE wx::core wx::base)
The package zstd provides CMake targets:
find_package(zstd CONFIG REQUIRED)
target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:zstd::libzstd_shared>,zstd::libzstd_shared,zstd::libzstd_static>)
-- Running vcpkg install - done
-- Found OpenSSL: /home/qushy/Cemu/build/vcpkg_installed/x64-linux/lib/libcrypto.a (found suitable version "3.0.5", minimum required is "3")
-- Found ZLIB: optimized;/home/qushy/Cemu/build/vcpkg_installed/x64-linux/lib/libz.a;debug;/home/qushy/Cemu/build/vcpkg_installed/x64-linux/debug/lib/libz.a (found suitable version "1.2.12", minimum required is "1")
-- RapidJSON found. Headers: /home/qushy/Cemu/build/vcpkg_installed/x64-linux/share/rapidjson/../../include
-- Found ZLIB: optimized;/home/qushy/Cemu/build/vcpkg_installed/x64-linux/lib/libz.a;debug;/home/qushy/Cemu/build/vcpkg_installed/x64-linux/debug/lib/libz.a (found version "1.2.12")
-- Found OpenSSL: /home/qushy/Cemu/build/vcpkg_installed/x64-linux/lib/libcrypto.a (found version "3.0.5") found components: Crypto SSL
-- Checking for one of the modules 'zarchive'
-- Could NOT find ZArchive (missing: zarchive_LINK_LIBRARIES zarchive_FOUND) (found version "")
-- Configuring incomplete, errors occurred!
See also "/home/qushy/Cemu/build/CMakeFiles/CMakeOutput.log".
See also "/home/qushy/Cemu/build/CMakeFiles/CMakeError.log".
Il giorno sab 24 set 2022 alle 08:43:20 -07:00:00, QushyQushy @.***> ha scritto:
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -CMAKE_BUILD_WITH_INSTALL_RPATH=ON -G Ninja loading initial cache file MAKE_BUILD_WITH_INSTALL_RPATH=ON CMake Error: Error processing file: /home/qushy/Cemu/MAKE_BUILD_WITH_INSTALL_RPATH=ON
The error is in the first line. Instead of
-CMAKE_BUILD_WITH_INSTALL_RPATH=ON you should be probably passing
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON (note the missing "D", which
stands for "define").
Oh yeah thanx! :)
Well, still fails at Zarchive.
EDIT: Actually the build files were written, able to compile somewhat now but copmilation fails at:
usr/bin/ld: cannot find -lcoregrind-amd64-linux: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
/usr/bin/ld: cannot find -lvex-amd64-linux: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος
collect2: σφάλμα: η ld επέστρεψε κατάσταση εξόδου 1
It says No such file or Directory for -lcoregrind-amd64-linux and -lvex-amd64-linux
Il giorno sab 24 set 2022 alle 08:53:55 -07:00:00, QushyQushy @.***> ha scritto:
Well, still fails at Zarchive.
It isn't failing at Zarchive, it's simply telling you that the library wasn't found on your system; when this happens, Cemu falls back to using the bundled version in dependencies/ZArchive/.
https://github.com/cemu-project/Cemu/blob/101ff7783ea8d39bbf0d8f2ec7c3f65168870d65/CMakeLists.txt#L141-L144
Is the configure phase still failing though? What's the error now?
Il giorno sab 24 set 2022 alle 08:53:55 -07:00:00, QushyQushy @.***> ha scritto: Well, still fails at Zarchive. It isn't failing at Zarchive, it's simply telling you that the library wasn't found on your system; when this happens, Cemu falls back to using the bundled version in dependencies/ZArchive/. https://github.com/cemu-project/Cemu/blob/101ff7783ea8d39bbf0d8f2ec7c3f65168870d65/CMakeLists.txt#L141-L144 Is the configure phase still failing though? What's the error now?
Updated the post with the error I'm getting during cmake --build build.
EDIT: Actually the build files were written, able to compile somewhat now but copmilation fails at:
usr/bin/ld: cannot find -lcoregrind-amd64-linux: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος /usr/bin/ld: cannot find -lvex-amd64-linux: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος collect2: σφάλμα: η ld επέστρεψε κατάσταση εξόδου 1It says
No such file or Directoryfor-lcoregrind-amd64-linuxand-lvex-amd64-linux
Mh, never saw those libraries before. To make debugging easier, could you please set your terminal session to display messages in English? You can do so by running export LANG=C.UTF-8.
Then, just to be sure that the issue is not related to caches or old files, please delete your build directory (with rm -r build/) and try to rebuild Cemu. If it still fails, you could maybe try to delete the vcpkg folder or try to build without using vcpkg at all; I don't know how you can reset vcpkg's state (you should ask the project developers for that), but to build without vcpkg you can pass -DENABLE_VCPKG=false to cmake.
[281/471] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/IOSU/legacy/iosu_crypto.cpp.o
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp: In function ‘EC_KEY* ECCPubKey_getPublicKey(ECCPubKey&)’:
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:151:53: warning: ‘EC_KEY* EC_KEY_new_by_curve_name(int)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
151 | EC_KEY* ec_pubKey = EC_KEY_new_by_curve_name(NID_sect233r1);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
In file included from /home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:6:
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:998:31: note: declared here
998 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:152:57: warning: ‘int EC_KEY_set_public_key_affine_coordinates(EC_KEY*, BIGNUM*, BIGNUM*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
152 | int r = EC_KEY_set_public_key_affine_coordinates(ec_pubKey, bn_r, bn_s);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1122:27: note: declared here
1122 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp: In function ‘void iosuCrypto_generateDeviceCertificate()’:
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:276:45: warning: ‘int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP*, const EC_POINT*, BIGNUM*, BIGNUM*, BN_CTX*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
276 | EC_POINT_get_affine_coordinates_GF2m(group, pubkey, bn_x, bn_y, NULL);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:712:27: note: declared here
712 | OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GF2m
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp: In function ‘bool iosuCrypto_loadCertificate(uint32, std::wstring_view, std::wstring_view)’:
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:359:44: warning: ‘RSA* d2i_RSAPrivateKey(RSA**, const unsigned char**, long int)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
359 | pkeyRSA = d2i_RSAPrivateKey(nullptr, (const unsigned char **)&pkeyTempPtr, pkeyData->size());
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:92:
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/rsa.h:309:1: note: declared here
309 | DECLARE_ASN1_ENCODE_FUNCTIONS_name_attr(OSSL_DEPRECATEDIN_3_0,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp: In function ‘bool iosuCrypto_addClientCertificate(void*, sint32)’:
/home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:399:54: warning: ‘int SSL_CTX_use_RSAPrivateKey(SSL_CTX*, RSA*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
399 | if (SSL_CTX_use_RSAPrivateKey(ctx, iosuCryptoCertificates.certList[i].pkey) != 1)
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/qushy/Cemu/src/Cafe/IOSU/legacy/iosu_crypto.cpp:8:
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ssl.h:1810:12: note: declared here
1810 | __owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
[309/471] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/OS/libs/coreinit/coreinit_OSScreen.cpp.o
/home/qushy/Cemu/src/Cafe/OS/libs/coreinit/coreinit_OSScreen.cpp: In function ‘void coreinit::coreinitExport_OSScreenFlipBuffersEx(PPCInterpreter_t*)’:
/home/qushy/Cemu/src/Cafe/OS/libs/coreinit/coreinit_OSScreen.cpp:100:60: warning: ‘++’ expression of ‘volatile’-qualified type is deprecated [-Wvolatile]
100 | LatteGPUState.osScreen.screen[screenIndex].flipRequestCount++;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
[400/471] Building CXX object src/Cafe/CMakeFiles/CemuCafe.dir/OS/libs/snd_user/snd_user.cpp.o
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp: In function ‘snd::user::_MIXChannelResetDRC(snd::user::MixChannel*, int)’:
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp:252:68: warning: iteration 3 invokes undefined behavior [-Waggressive-loop-optimizations]
252 | channel->drc_control[index].aux[i] = -960;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp:250:46: note: within this loop
250 | for (size_t i = 0; i < AX_MAX_NUM_BUS; ++i)
| ~~^~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp: In function ‘snd::user::_MIXChannelResetRmt(snd::user::MixChannel*, int)’:
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp:277:68: warning: iteration 3 invokes undefined behavior [-Waggressive-loop-optimizations]
277 | channel->rmt_control[index].aux[i] = -960;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/home/qushy/Cemu/src/Cafe/OS/libs/snd_user/snd_user.cpp:275:46: note: within this loop
275 | for (size_t i = 0; i < AX_MAX_NUM_BUS; ++i)
| ~~^~~~~~~~~~~~~~~~
[418/471] Building CXX object src/Cemu/CMakeFiles/CemuComponents.dir/ncrypto/ncrypto.cpp.o
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In static member function ‘static bool NCrypto::ETicketParser::Depersonalize(uint8*, size_t, uint32, const NCrypto::ECCPrivKey&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:364:52: warning: ‘int ECDH_compute_key(void*, size_t, const EC_POINT*, const EC_KEY*, void* (*)(const void*, size_t, void*, size_t*))’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
364 | int sharedKeyLen = ECDH_compute_key(sharedKey, sizeof(sharedKey), ec_publicKey, ec_privKey, nullptr);
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:6:
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1296:27: note: declared here
1296 | OSSL_DEPRECATEDIN_3_0 int ECDH_compute_key(void *out, size_t outlen,
| ^~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:366:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
366 | EC_KEY_free(ec_privKey);
| ~~~~~~~~~~~^~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In member function ‘void NCrypto::ECCPrivKey::setPrivateKey(EC_KEY*)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:485:66: warning: ‘const BIGNUM* EC_KEY_get0_private_key(const EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
485 | const BIGNUM* bnPrivKey = EC_KEY_get0_private_key(key);
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1048:37: note: declared here
1048 | OSSL_DEPRECATEDIN_3_0 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In member function ‘EC_KEY* NCrypto::ECCPrivKey::getPrivateKey() const’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:494:62: warning: ‘EC_KEY* EC_KEY_new_by_curve_name(int)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
494 | EC_KEY* ec_privKey = EC_KEY_new_by_curve_name(NID_sect233r1);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:998:31: note: declared here
998 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:495:39: warning: ‘int EC_KEY_set_private_key(EC_KEY*, const BIGNUM*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
495 | EC_KEY_set_private_key(ec_privKey, bn_privKey);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1056:27: note: declared here
1056 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv);
| ^~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In member function ‘EC_KEY* NCrypto::ECCPubKey::getPublicKey()’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:516:61: warning: ‘EC_KEY* EC_KEY_new_by_curve_name(int)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
516 | EC_KEY* ec_pubKey = EC_KEY_new_by_curve_name(NID_sect233r1);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:998:31: note: declared here
998 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:517:65: warning: ‘int EC_KEY_set_public_key_affine_coordinates(EC_KEY*, BIGNUM*, BIGNUM*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
517 | int r = EC_KEY_set_public_key_affine_coordinates(ec_pubKey, bn_x, bn_y);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1122:27: note: declared here
1122 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In static member function ‘static NCrypto::ECCPubKey NCrypto::ECCPubKey::generateFromPrivateKey(NCrypto::ECCPrivKey&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:553:53: warning: ‘int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP*, const EC_POINT*, BIGNUM*, BIGNUM*, BN_CTX*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
553 | EC_POINT_get_affine_coordinates_GF2m(group, pubkey, bn_x, bn_y, NULL);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:712:27: note: declared here
712 | OSSL_DEPRECATEDIN_3_0 int EC_POINT_get_affine_coordinates_GF2m
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In member function ‘bool NCrypto::CertECC::verifySignatureViaPubKey(NCrypto::ECCPubKey&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:624:40: warning: ‘int ECDSA_do_verify(const unsigned char*, int, const ECDSA_SIG*, EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
624 | int r = ECDSA_do_verify(hash, sizeof(hash), ecSig, ecPubKey);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1391:27: note: declared here
1391 | OSSL_DEPRECATEDIN_3_0 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
| ^~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:627:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
627 | EC_KEY_free(ecPubKey);
| ~~~~~~~~~~~^~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In member function ‘void NCrypto::CertECC::sign(NCrypto::ECCPrivKey&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:639:47: warning: ‘ECDSA_SIG* ECDSA_do_sign(const unsigned char*, int, EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
639 | ECDSA_SIG* sig = ECDSA_do_sign(hash, sizeof(hash), ec_privKey);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1365:34: note: declared here
1365 | OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst,
| ^~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:640:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
640 | EC_KEY_free(ec_privKey);
| ~~~~~~~~~~~^~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In function ‘NCrypto::ECCSig NCrypto::signHash(uint32, uint32, uint8*, sint32, CertECC&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:689:62: warning: ‘EC_KEY* EC_KEY_new_by_curve_name(int)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
689 | EC_KEY* ec_keyPair = EC_KEY_new_by_curve_name(NID_sect233r1);
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:998:31: note: declared here
998 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new_by_curve_name(int nid);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:690:36: warning: ‘int EC_KEY_generate_key(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
690 | EC_KEY_generate_key(ec_keyPair);
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1101:27: note: declared here
1101 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key);
| ^~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:695:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
695 | EC_KEY_free(ec_keyPair);
| ~~~~~~~~~~~^~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:705:47: warning: ‘ECDSA_SIG* ECDSA_do_sign(const unsigned char*, int, EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
705 | ECDSA_SIG* sig = ECDSA_do_sign(hash, hashLen, ec_privKey);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1365:34: note: declared here
1365 | OSSL_DEPRECATEDIN_3_0 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst,
| ^~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:706:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
706 | EC_KEY_free(ec_privKey);
| ~~~~~~~~~~~^~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:710:47: warning: ‘int ECDSA_do_verify(const unsigned char*, int, const ECDSA_SIG*, EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
710 | bool isValid = ECDSA_do_verify(hash, hashLen, sig, ec_pubKey) == 1;
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1391:27: note: declared here
1391 | OSSL_DEPRECATEDIN_3_0 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
| ^~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:711:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
711 | EC_KEY_free(ec_pubKey);
| ~~~~~~~~~~~^~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp: In function ‘bool NCrypto::verifyHashSignature(uint8*, sint32, ECCPubKey&, ECCSig&)’:
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:732:41: warning: ‘int ECDSA_do_verify(const unsigned char*, int, const ECDSA_SIG*, EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
732 | bool r = ECDSA_do_verify(hash, hashLen, ecdsa_sig, ec_pubKey) == 1;
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1391:27: note: declared here
1391 | OSSL_DEPRECATEDIN_3_0 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len,
| ^~~~~~~~~~~~~~~
/home/qushy/Cemu/src/Cemu/ncrypto/ncrypto.cpp:734:28: warning: ‘void EC_KEY_free(EC_KEY*)’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
734 | EC_KEY_free(ec_pubKey);
| ~~~~~~~~~~~^~~~~~~~~~~
/home/qushy/Cemu/build/vcpkg_installed/x64-linux/include/openssl/ec.h:1003:28: note: declared here
1003 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
[471/471] Linking CXX executable /home/qushy/Cemu/bin/Cemu_release
FAILED: /home/qushy/Cemu/bin/Cemu_release
: && /usr/bin/g++ -O3 -DNDEBUG -flto=auto -fno-fat-lto-objects src/CMakeFiles/CemuBin.dir/main.cpp.o src/CMakeFiles/CemuBin.dir/mainLLE.cpp.o -o /home/qushy/Cemu/bin/Cemu_release src/audio/libCemuAudio.a src/Cafe/libCemuCafe.a src/Common/libCemuCommon.a src/Cemu/libCemuComponents.a src/config/libCemuConfig.a src/gui/libCemuGui.a src/input/libCemuInput.a src/util/libCemuUtil.a vcpkg_installed/x64-linux/lib/libSDL2.a vcpkg_installed/x64-linux/lib/libwx_baseu-3.2.a vcpkg_installed/x64-linux/lib/libwx_gtk3u_core-3.2.a src/resource/libCemuResource.a src/imgui/libimguiImpl.a src/audio/libCemuAudio.a src/Cafe/libCemuCafe.a src/Common/libCemuCommon.a src/Cemu/libCemuComponents.a src/config/libCemuConfig.a src/gui/libCemuGui.a src/input/libCemuInput.a src/util/libCemuUtil.a src/resource/libCemuResource.a src/imgui/libimguiImpl.a src/asm/libCemuAsm.a vcpkg_installed/x64-linux/lib/libSPIRV.a vcpkg_installed/x64-linux/lib/libMachineIndependent.a vcpkg_installed/x64-linux/lib/libOGLCompiler.a vcpkg_installed/x64-linux/lib/libOSDependent.a vcpkg_installed/x64-linux/lib/libGenericCodeGen.a dependencies/ih264d/libih264d.a vcpkg_installed/x64-linux/lib/libpng16.a vcpkg_installed/x64-linux/lib/libboost_filesystem.a /usr/lib64/libXrender.so /usr/lib64/libX11.so vcpkg_installed/x64-linux/lib/libfmt.a dependencies/discord-rpc/src/libdiscord-rpc.a -lpthread /usr/lib64/libcubeb.so.0 vcpkg_installed/x64-linux/lib/libcurl.a vcpkg_installed/x64-linux/lib/libssl.a dependencies/ZArchive/libzarchive.a vcpkg_installed/x64-linux/lib/libzstd.a vcpkg_installed/x64-linux/lib/libzip.a vcpkg_installed/x64-linux/lib/libz.a vcpkg_installed/x64-linux/lib/libwx_gtk3u_gl-3.2.a /usr/lib64/libGLU.so /usr/lib64/libGLX.so /usr/local/lib64/libEGL.so /usr/lib64/libOpenGL.so -lffi vcpkg_installed/x64-linux/lib/libwx_gtk3u_propgrid-3.2.a vcpkg_installed/x64-linux/lib/libwx_gtk3u_xrc-3.2.a vcpkg_installed/x64-linux/lib/libwx_gtk3u_html-3.2.a vcpkg_installed/x64-linux/lib/libwx_baseu_xml-3.2.a vcpkg_installed/x64-linux/lib/libexpat.a vcpkg_installed/x64-linux/lib/libSDL2.a -lwayland-egl -lwayland-client -lwayland-cursor -lEGL -lxkbcommon -ldbus-1 -lrt -Wl,--no-undefined -pthread vcpkg_installed/x64-linux/lib/libpugixml.a vcpkg_installed/x64-linux/lib/libboost_program_options.a vcpkg_installed/x64-linux/lib/libwx_gtk3u_core-3.2.a vcpkg_installed/x64-linux/lib/libwx_baseu-3.2.a -lc -lm vcpkg_installed/x64-linux/lib/libz.a /usr/lib64/libgtk-3.so /usr/lib64/libgdk-3.so /usr/lib64/libz.so -lm /usr/lib64/libglib-2.0.so /usr/lib64/libpcre2-8.so /usr/lib64/libffi.so /usr/lib64/libfreetype.so /usr/lib64/libbrotlicommon.so /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libblkid.so /usr/lib64/libsepol.so /usr/lib64/libfribidi.so /usr/lib64/libdatrie.so /usr/lib64/libgraphite2.so /usr/lib64/libxml2.so vcpkg_installed/x64-linux/lib/liblzma.a /usr/lib64/libXrender.so /usr/lib64/libpthread.a /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libdl.a /usr/lib64/libpangocairo-1.0.so /usr/lib64/libpango-1.0.so /usr/lib64/libcairo.so /usr/lib64/libharfbuzz-gobject.so vcpkg_installed/x64-linux/lib/libpng16.a /usr/lib64/libgdk_pixbuf-2.0.so /usr/lib64/libcairo-gobject.so /usr/lib64/libfontconfig.so /usr/lib64/libXcomposite.so /usr/lib64/libXdamage.so /usr/lib64/libwayland-client.so /usr/lib64/librt.a /usr/lib64/libepoxy.so -lcoregrind-amd64-linux -lvex-amd64-linux -lgcc /usr/lib64/libcloudproviders.so /usr/lib64/libatk-1.0.so vcpkg_installed/x64-linux/lib/libtiff.a vcpkg_installed/x64-linux/lib/libjpeg.a /usr/lib64/libatk-bridge-2.0.so /usr/lib64/libsystemd.so /usr/lib64/libatspi.so /usr/lib64/libdbus-1.so /usr/lib64/libXtst.so /usr/lib64/libxkbcommon.so /usr/lib64/libwayland-cursor.so /usr/lib64/libwayland-egl.so /usr/lib64/libGL.so /usr/lib64/libEGL.so /usr/lib64/libX11-xcb.so /usr/lib64/libxcb-glx.so /usr/lib64/libxcb-dri2.so /usr/lib64/libdrm.so /usr/lib64/libpangoft2-1.0.so /usr/lib64/libthai.so /usr/lib64/libXft.so /usr/lib64/libxcb-render.so /usr/lib64/libxcb-shm.so /usr/lib64/libpixman-1.so /usr/lib64/libharfbuzz.so /usr/lib64/libbz2.so /usr/lib64/libbrotlidec.so /usr/lib64/libmount.so /usr/lib64/libselinux.so /usr/lib64/libsysprof-capture-4.a /usr/lib64/libz.so -lm /usr/lib64/libglib-2.0.so /usr/lib64/libpcre2-8.so /usr/lib64/libffi.so /usr/lib64/libfreetype.so /usr/lib64/libbrotlicommon.so /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libblkid.so /usr/lib64/libsepol.so /usr/lib64/libfribidi.so /usr/lib64/libdatrie.so /usr/lib64/libgraphite2.so /usr/lib64/libxml2.so vcpkg_installed/x64-linux/lib/liblzma.a /usr/lib64/libXrender.so /usr/lib64/libpthread.a /usr/lib64/libxcb.so /usr/lib64/libXau.so /usr/lib64/libdl.a /usr/lib64/libpangocairo-1.0.so /usr/lib64/libpango-1.0.so /usr/lib64/libcairo.so /usr/lib64/libharfbuzz-gobject.so vcpkg_installed/x64-linux/lib/libpng16.a /usr/lib64/libgdk_pixbuf-2.0.so /usr/lib64/libcairo-gobject.so /usr/lib64/libfontconfig.so /usr/lib64/libXcomposite.so /usr/lib64/libXdamage.so /usr/lib64/libwayland-client.so /usr/lib64/librt.a /usr/lib64/libepoxy.so -lcoregrind-amd64-linux -lvex-amd64-linux -lgcc /usr/lib64/libcloudproviders.so /usr/lib64/libatk-1.0.so vcpkg_installed/x64-linux/lib/libtiff.a vcpkg_installed/x64-linux/lib/libjpeg.a /usr/lib64/libatk-bridge-2.0.so /usr/lib64/libsystemd.so /usr/lib64/libatspi.so /usr/lib64/libdbus-1.so /usr/lib64/libXtst.so /usr/lib64/libxkbcommon.so /usr/lib64/libwayland-cursor.so /usr/lib64/libwayland-egl.so /usr/lib64/libGL.so /usr/lib64/libEGL.so /usr/lib64/libX11-xcb.so /usr/lib64/libxcb-glx.so /usr/lib64/libxcb-dri2.so /usr/lib64/libdrm.so /usr/lib64/libpangoft2-1.0.so /usr/lib64/libthai.so /usr/lib64/libXft.so /usr/lib64/libxcb-render.so /usr/lib64/libxcb-shm.so /usr/lib64/libpixman-1.so /usr/lib64/libharfbuzz.so /usr/lib64/libbz2.so /usr/lib64/libbrotlidec.so /usr/lib64/libmount.so /usr/lib64/libselinux.so /usr/lib64/libsysprof-capture-4.a /usr/lib64/libX11.so /usr/lib64/libXcursor.so /usr/lib64/libXinerama.so /usr/lib64/libXi.so /usr/lib64/libXfixes.so /usr/lib64/libXrandr.so /usr/lib64/libXxf86vm.so /usr/lib64/libXext.so vcpkg_installed/x64-linux/lib/libboost_nowide.a vcpkg_installed/x64-linux/lib/libcrypto.a -ldl vcpkg_installed/x64-linux/lib/libimgui.a && :
/usr/bin/ld: cannot find -lcoregrind-amd64-linux: No such file or directory
/usr/bin/ld: cannot find -lvex-amd64-linux: No such file or directory
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
This is where it fails normally.
This is the result with -DENABLE_VCPKG=false :
CMake Error at CMakeLists.txt:83 (find_package):
By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "SDL2", but
CMake did not find one.
Could not find a package configuration file provided by "SDL2" with any of
the following names:
SDL2Config.cmake
sdl2-config.cmake
Add the installation prefix of "SDL2" to CMAKE_PREFIX_PATH or set
"SDL2_DIR" to a directory containing one of the above files. If "SDL2"
provides a separate development package or SDK, be sure it has been
installed.
This is what I get with CLANG compiler, meaning running cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++ -G Ninja :
Make Error at CMakeLists.txt:22 (project):
The CMAKE_C_COMPILER:
/usr/local/opt/llvm@14/bin/clang
is not a full path to an existing compiler tool.
Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
CMake Error at CMakeLists.txt:22 (project):
The CMAKE_CXX_COMPILER:
/usr/local/opt/llvm@14/bin/clang++
is not a full path to an existing compiler tool.
Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
Clang is installed properly on Fedora.
/usr/bin/ld: cannot find -lcoregrind-amd64-linux: No such file or directory /usr/bin/ld: cannot find -lvex-amd64-linux: No such file or directory
coregrind and vex seem to be Valgrind components. I don't know how they got into your build process, but you either messed up something in your system or some Fedora package make CMake link to valgrind for some reason. I honestly don't know how to debug this without direct access to a Fedora PC :)
To make sure that this is an issue in Fedora and not something odd that you may have installed you can try to build Cemu in a clean container / virtual machine. I'd suggest using GNOME Boxes, Atoms or Pods.
This is the result with
-DENABLE_VCPKG=false:CMake Error at CMakeLists.txt:83 (find_package): By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project has
This is because you don't have the development files for SDL2 installed on your system.
This is what I get with CLANG compiler, meaning running
cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++ -G Ninja:
Those Clang paths seem to be macOS ones. Try to do CC=clang CXX=clang++ cmake -B build [rest of commmand...] instead, so that you don't have to list the full path.
I compiled with CLANG using cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -G Ninja, still compilation fails at the exact same step as before.
/usr/bin/ld: cannot find -lcoregrind-amd64-linux: No such file or directory /usr/bin/ld: cannot find -lvex-amd64-linux: No such file or directory
coregrindandvexseem to be Valgrind components. I don't know how they got into your build process, but you either messed up something in your system or some Fedora package make CMake link to valgrind for some reason. I honestly don't know how to debug this without direct access to a Fedora PC :)To make sure that this is an issue in Fedora and not something odd that you may have installed you can try to build Cemu in a clean container / virtual machine. I'd suggest using GNOME Boxes, Atoms or Pods.
This is the result with
-DENABLE_VCPKG=false:CMake Error at CMakeLists.txt:83 (find_package): By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project hasThis is because you don't have the development files for SDL2 installed on your system.
This is what I get with CLANG compiler, meaning running
cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DPUBLIC_RELEASE=ON -DCMAKE_C_COMPILER=/usr/local/opt/llvm@14/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm@14/bin/clang++ -G Ninja:Those Clang paths seem to be macOS ones. Try to do
CC=clang CXX=clang++ cmake -B build [rest of commmand...]instead, so that you don't have to list the full path.
valgrind and valgrind-devel are installed. -DENABLE_VCPKG=false requires all kinds of other components to be installed. I'm stuck at imgui for the moment. Will look into it and get back to you.
EDIT: rust-imgui-devel package is not available on Fedora 37 undorunately so not using VCPKG is not an option unfortunately.
I followed the exact steps provided in the BUILD.md tutorial. I am on Fedora 36 Workstation (Gnome) on Wayland. This issue is still present on the current main codebase.
I created a podman-based Fedora 37 Cemu builder that I've been using over the last few weeks. https://github.com/leifliddy/podman-cemu-builder
It works perfectly
Just compiled Cemu on it no problem
[root@cemu_builder ~]# uname -a
Linux cemu_builder 5.19.14-300.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 5 21:31:43 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@cemu_builder ~]# ll /output/
total 26356
-rwxr-xr-x. 1 root root 26987728 Oct 7 20:30 Cemu_release
drwxr-xr-x. 1 root root 14 Aug 28 01:07 gameProfiles
drwxr-xr-x. 1 root root 86 Aug 28 01:07 resources
drwxr-xr-x. 1 root root 16 Oct 7 20:30 shaderCache
Built in Fedora 36 toolbox successfully, following BUILD.md almost to the letter.
Exact steps as follows. ⬢ indicates commands inside the toolbox.
$ git clone --recursive https://github.com/cemu-project/Cemu
$ cd Cemu
$ toolbox create --distro fedora --release f36 cemu
$ toolbox enter cemu
⬢$ sudo dnf --setopt=install_weak_deps=False upgrade
⬢$ sudo dnf --setopt=install_weak_deps=False install clang cmake cubeb-devel freeglut-devel git gtk3-devel kernel-headers libgcrypt-devel libsecret-devel nasm ninja-build perl-core systemd-devel zlib-devel
⬢$ cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -G Ninja
⬢$ cmake --build build
⬢$ exit
$ ./bin/Cemu_release
Follow up to my previous comment, when updating to or past 52cc7c59964c72240874dc5e9c9178523df81404, a new submodule for imgui was added.
git pull --recurse-submodules was not sufficient; it did not init the new submodule (dependencies/imgui was created, but remained empty). I had to explicitly do:
$ git submodule update --init dependencies/imgui
Other than that hiccup, I rebuilt latest 8b3f36ad50372feb7b62e5efd70a697beed9c6eb in the same F36 toolbox successfully, using both clang and gcc.
cmake --build build
Can confirm this worked on my install of F36. Steps I did:
git clone --recursive https://github.com/cemu-project/Cemu
cd Cemu
git submodule update --init dependencies/imgui
cd ..
toolbox create --distro fedora --release f36 cemu
toolbox enter cemu
sudo dnf --setopt=install_weak_deps=False upgrade
sudo dnf --setopt=install_weak_deps=False install clang cmake cubeb-devel freeglut-devel git gtk3-devel kernel-headers libgcrypt-devel libsecret-devel nasm ninja-build perl-core systemd-devel zlib-devel
cd Cemu
cmake -S . -B build -DCMAKE_BUILD_TYPE=release -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -G Ninja
cmake --build build
exit
Forgot about the lack of Wayland support initally, but I started to be able to load games by prefixing with GDK_BACKEND=x11. Seems to be working so far.
I have a working non-vcpkg build on F37. Note it might not be possible on F36 due to older libs.
I haven't had time to actually use it much, but everything seems fine with a quick run around in BotW. Had to redo every controller profile because the controller UUIDs changed (?).
Once this is stable for a while, I'll put together a spec file and try building rpm packages.
⬢ indicates commands inside toolbox.
Setup
$ git clone https://github.com/cemu-project/Cemu
$ cd Cemu
$ git submodule update --init dependencies/{imgui,ZArchive}
$ toolbox create --distro fedora --release f37 cemu-dev-f37
$ toolbox enter cemu-dev-f37
⬢$ sudo dnf -y --setopt=install_weak_deps=False upgrade
⬢$ sudo dnf -y --setopt=install_weak_deps=False install clang cmake cubeb-devel freeglut-devel git gtk3-devel kernel-headers libgcrypt-devel libsecret-devel nasm ninja-build perl-core systemd-devel zlib-devel --comment='Cemu deps'
⬢$ sudo dnf -y --setopt=install_weak_deps=False install SDL2-devel boost-devel fmt-devel glm-devel glslang-devel libcurl-devel libzip-devel libzip-tools libzstd-devel openssl-devel pugixml-devel rapidjson-devel vulkan-headers wxGTK-devel --comment='Cemu deps for non-vcpkg build'
Notes:
- Don't
clone --recursivesince we won't be using all submodules. Specifically, novcpkg(saves ~7GB?),cubeb, orVulkan-Headers. - I split installing the deps in two transactions:
- 1st is the deps required for a standard build (with vcpkg), exactly what is documented in BUILD.md.
- !! Should be able to drop
systemd-devel, I forgot to test
- !! Should be able to drop
- 2nd is the additional deps for non-vcpkg build
- 1st is the deps required for a standard build (with vcpkg), exactly what is documented in BUILD.md.
wxGTK-develis the latest version (3.2.x) we need,wxGTK3-develis pegged to 3.0. See rhbz#1714714.
Patches
At this point if you try to build, you'll probably get some CMake error about glslangConfig.cmake. I've used the workaround indicated here.
I don't know anything about CMake or glslang, so follow at your own risk.
⬢$ cat <<'EOF' | sudo tee /usr/lib64/cmake/glslangConfig.cmake
include("${CMAKE_CURRENT_LIST_DIR}/OSDependentTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/OGLCompilerTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/glslangTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/SPIRVTargets.cmake")
EOF
Build
I'm building in non-portable mode and without Discord presence.
⬢$ export glslang_DIR=/usr/lib64/cmake
⬢$ cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_BUILD_TYPE=release -DPORTABLE=OFF -DENABLE_VCPKG=OFF -DENABLE_DISCORD_RPC=OFF -DEXPERIMENTAL_VERSION=999999 -Wno-dev
⬢$ cmake --build build
Install
I'm installing Cemu to /usr/local. Make sure to exit the toolbox as /usr is not shared with the host.
Rough install script. Run from one level above Cemu repo dir:
#!/usr/bin/bash
cd Cemu || exit
readonly name='Cemu'
readonly prefix='/usr/local'
readonly bindir="${prefix}/bin"
readonly datadir="${prefix}/share"
# Install binary
install -Dpm 0755 "bin/${name}_release" "${bindir}/${name}"
# Install data files
install -dm 0755 "${datadir}/${name}"/{gameProfiles,resources}
cp -r --preserve=timestamps -t "${datadir}/${name}/gameProfiles" bin/gameProfiles/*
cp -r --preserve=timestamps -t "${datadir}/${name}/resources" bin/resources/*
# Install desktop-related files
install -Dpm 0644 -t "${datadir}/applications" dist/linux/info.cemu.Cemu.desktop
install -Dpm 0644 -t "${datadir}/metainfo" dist/linux/info.cemu.Cemu.metainfo.xml
install -Dpm 0644 -t "${datadir}/icons/hicolor/128x128/apps" dist/linux/info.cemu.Cemu.png
Closing this since it's stale. If there are still issues with compiling then feel free to open a new issue, but check BUILD.md for some of the known problems&workarounds first.
@Exzap I seem to be able to build it now. Thanks for closing the issue!