WIP: mingw64 gcc/clang support #278
No reviewers
Labels
No labels
android
audio
bug
ci
cmake
confirmed
core
desktop
duplicate
enhancement
frontend
fw
git
graphics
loader
nv gpu
ui
vulkan
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
eden-emu/eden!278
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "gcc/clang_support"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
HOW TO TEST:
Compile in MSVC. If it's safe, then it's safe to approve.
HOW TO COMPILE IN MINGW64:
GCC:
export CC="ccache gcc" CXX="ccache g++"
cmake -S . -B build-gcc -G Ninja -DYUZU_USE_CPM=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_QT=ON -DYUZU_USE_BUNDLED_QT=OFF -DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_BUNDLED_FFMPEG=OFF -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_ASM_COMPILER=gcc
(Alternative: WITH LTO:
cmake -S . -B build-gcc-lto -G Ninja -DYUZU_USE_CPM=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_QT=ON -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_AR=gcc-ar -DCMAKE_RANLIB=gcc-ranlib -DCMAKE_NM=gcc-nm -DCMAKE_C_FLAGS="-O3 -flto -fno-fat-lto-objects" -DCMAKE_CXX_FLAGS="-O3 -flto -fno-fat-lto-objects" -DCMAKE_EXE_LINKER_FLAGS="-flto" -DCMAKE_SHARED_LINKER_FLAGS="-flto"
)
cmake --build build-gcc -j$(nproc)
CLANG:
export CC="ccache clang" CXX="ccache clang++"
cmake -S . -B build-clang -G Ninja -DYUZU_USE_CPM=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_QT=ON -DYUZU_USE_BUNDLED_QT=OFF -DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_BUNDLED_FFMPEG=OFF -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_ASM_COMPILER=clang
cmake --build build-clang -j$(nproc)
MSVC (cli):
Open “x64 Native Tools Command Prompt for VS 2022” (or Developer PowerShell).
cmake -S . -B build-msvc -G "Visual Studio 17 2022" -A x64 -DYUZU_USE_CPM=ON -DENABLE_QT=ON -DYUZU_ENABLE_LTO=ON
cmake --build build-msvc --config Release --parallel
CHANGES:
-pre released RotateRight32 and RotateRight64 defs in src\dynarmic\src\dynarmic\ir\opcodes.h
-removed unecessary #define stat _stat64 macro in src\core\file_sys\vfs\vfs_real.cpp
-added target link libraries for specific case (win32 & (gcc || clang)) in src\yuzu_cmd\CMakeLists.txt and src\yuzu\CMakeLists.txt
-avoided isDarkMode never used error with [ [maybe_unused] ] in src\yuzu\main.cpp
-covered #pragma comment(lib, "Dwmapi.lib") with a #ifdef _MSC_VER condition in src\yuzu\main.cpp
-covered #pragma comment(lib, "wlanapi.lib") with a #ifdef _MSC_VER condition on multiple files
37f8921057939acbbb4dthis will be buried and people will have to look it up, Please add it under docs/build/Windows.md
mingw64 gcc/clang supportto WIP: mingw64 gcc/clang supportNeeds docs and CI scripts updated here and in the workflow repo
939acbbb4d70811426e670811426e629c32d0f45Pull request closed