1
mirror of https://github.com/yuzu-emu/yuzu synced 2024-11-14 11:37:41 +01:00
yuzu/CMakeModules
Kyle Kienapfel a75542ad2d CMake: rework for Qt6 support
This PR rearranges things in the CMake system to make compiling with Qt6 possible

1. Camera API has changed in Qt6, so the camera feature is disabled
2. A previous fix involving QLocale is now version gated.
3. QRegExp replaced with QRegularExpression, see #5343
4. Qt6_LOCATION option added to specify a location to search for Qt6
  (see examples below)
5. windeployqt is used to copy Qt6 files into the build directory on Windows

Notes for Arch Linux
Arch install happened to have qt6-base qt6-declarative qt6-translations installed

mkdir build && cd build
cmake .. -GNinja -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_TESTS=OFF -DENABLE_QT6=YES -DYUZU_USE_BUNDLED_QT=NO

Windows (MSVC)
Qt wants users to download precompiled libraries via an online installer,
it is worth noting that the GPL/LGPL takes precendence over any ...

In the Qt Maintenance tool, under a version, such as 6.3.1
Select "MSVC 2019 64-bit"
Under Additional Libraries Qt Multimedia may be of use for Camera support

For the Web Applet I had to select the following:
PDF Positioning WebChannel WebEngine

mkdir build && cd build
cmake -G "Visual Studio 16 2019" -DQt6_LOCATION=C:/Qt/6.4.0/msvc2019_64/ \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=YES -DYUZU_USE_BUNDLED_QT=NO \
-DENABLE_QT_TRANSLATION=YES -DENABLE_QT6=YES ..

Some numbers for reference (msvc2019_64)
Qt5 (slimmed down) 508 MB
Qt5.15.2 all in    929 MB
Qt6.3.1           1.71 GB
Qt6.3.2           1.73 GB
Qt6.4.0-beta3     1.83 GB
Qt6.4.0           1.67 GB
2022-11-24 06:28:42 -08:00
..
CopyYuzuFFmpegDeps.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
CopyYuzuQt5Deps.cmake CMake: rework for Qt6 support 2022-11-24 06:28:42 -08:00
CopyYuzuSDLDeps.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
DownloadExternals.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
GenerateSCMRev.cmake cmake: fix git detection 2022-09-18 00:04:35 +02:00
MinGWClangCross.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
MinGWCross.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
MSVCCache.cmake chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00