- remove vcpkg references in docs - move externals around - fix non-cpm stuff - remove redundant simpleini call/dir Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/267 Reviewed-by: Maufeat <sahyno1996@gmail.com>
8.5 KiB
THIS GUIDE IS INTENDED FOR DEVELOPERS ONLY, SUPPORT WILL ONLY BE GIVEN IF YOU'RE A DEVELOPER.
Method I: MSVC Build for Windows
Minimal Dependencies
On Windows, all library dependencies are automatically included within the externals
folder, or can be downloaded on-demand. To build Eden, you need to install:
- Visual Studio 2022 Community - Make sure to select C++ support in the installer. Make sure to update to the latest version if already installed.
- CMake - Used to generate Visual Studio project files. Does not matter if either 32-bit or 64-bit version is installed.
- Vulkan SDK - Make sure to select Latest SDK.
- A convenience script to install the latest SDK is provided in
.ci\windows\install-vulkan-sdk.ps1
.
- A convenience script to install the latest SDK is provided in
- Git - We recommend Git for Windows.
- While installing Git Bash, you should tell it to include Git in your system path. (Choose the "Git from the command line and also from 3rd-party software" option.) If you missed that, don't worry, you'll just have to manually tell CMake where your git.exe is, since it's used to include version info into the built executable.
Cloning Eden with Git
Master:
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
cd eden
- *(Note: eden by default downloads to
C:\Users\<user-name>\eden
(Master)
Building
-
Open the CMake GUI application and point it to the
eden
(Master) -
For the build directory, use a
/build
subdirectory inside the source directory or some other directory of your choice. (Tell CMake to create it.) -
Click the "Configure" button and choose
Visual Studio 17 2022
, withx64
for the optional platform.-
(Note: If you used GitHub's own app to clone, run
git submodule update --init --recursive
to get the remaining dependencies) -
(You may also want to disable
YUZU_TESTS
in this case since Catch2 is not yet supported with this.)
-
-
Click "Generate" to create the project files.
-
Open the solution file
yuzu.sln
in Visual Studio 2022, which is located in the build folder. -
Depending if you want a graphical user interface or not (
eden
has the graphical user interface, whileeden-cmd
doesn't), selecteden
oreden-cmd
in the Solution Explorer, right-click andSet as StartUp Project
. -
Select the appropriate build type, Debug for debug purposes or Release for performance (in case of doubt choose Release).
-
Right-click the project you want to build and press Build in the submenu or press F5.
Method II: MinGW-w64 Build with MSYS2
Prerequisites to install
- MSYS2
- Vulkan SDK - Make sure to select Latest SDK.
- Make sure to follow the instructions and update to the latest version by running
pacman -Syu
as many times as needed.
Install eden dependencies for MinGW-w64
- Open the
MSYS2 MinGW 64-bit
(mingw64.exe) shell - Download and install all dependencies using:
pacman -Syu git make mingw-w64-x86_64-SDL2 mingw-w64-x86_64-cmake mingw-w64-x86_64-python-pip mingw-w64-x86_64-qt6 mingw-w64-x86_64-toolchain autoconf libtool automake-wrapper
- Add MinGW binaries to the PATH:
echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc
- Add glslangValidator to the PATH:
echo 'PATH=$(readlink -e /c/VulkanSDK/*/Bin/):$PATH' >> ~/.bashrc
Clone the eden repository with Git
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
cd eden
Run the following commands to build eden (dynamically linked build)
mkdir build && cd build
cmake -G "MSYS Makefiles" -DYUZU_TESTS=OFF ..
make -j$(nproc)
# test eden out with
./bin/eden.exe
- (Note: This build is not a static build meaning that you need to include all of the DLLs with the .exe in order to use it!)
e.g.
cp externals/ffmpeg-*/bin/*.dll bin/
Bonus Note: Running programs from inside MSYS2 MinGW x64
shell has a different %PATH% than directly from explorer. This different %PATH% has the locations of the other DLLs required.
Building without Qt (Optional)
Doesn't require the rather large Qt dependency, but you will lack a GUI frontend:
- Pass the
-DENABLE_QT=no
flag to cmake
Method III: CLion Environment Setup
Minimal Dependencies
To build eden, you need to install the following:
- CLion - This IDE is not free; for a free alternative, check Method I
- Vulkan SDK - Make sure to select the Latest SDK.
Cloning eden with CLion
- Clone the Repository:
Building & Setup
- Once Cloned, You will be taken to a prompt like the image below:
- Set the settings to the image below:
- Change
Build type: Release
- Change
Name: Release
- Change
Toolchain Visual Studio
- Change
Generator: Let CMake decide
- Change
Build directory: build
- Click OK; now Clion will build a directory and index your code to allow for IntelliSense. Please be patient.
- Once this process has been completed (No loading bar bottom right), you can now build eden
- In the top right, click on the drop-down menu, select all configurations, then select eden
- Now run by clicking the play button or pressing Shift+F10, and eden will auto-launch once built.
Building from the command line with MSVC
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
cd eden
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config Release
Building with Scripts
A convenience script for building is provided in .ci/windows/build.sh
. You must run this with Bash, e.g. Git Bash or MinGW TTY. To use this script, you must have windeployqt installed (usually bundled with Qt) and set the WINDEPLOYQT
environment variable to its canonical Bash location, e.g. WINDEPLOYQT="/c/Qt/6.9.1/msvc2022_64/bin/windeployqt6.exe" .ci/windows/build.sh
.
Extra CMake flags should be placed in the arguments of the script.
Additional environment variables can be used to control building:
BUILD_TYPE
: Sets the build type to use. Defaults toRelease
The following environment variables are boolean flags. Set to true
to enable or false
to disable:
DEVEL
(default FALSE): Disable Qt update checkerUSE_WEBENGINE
(default FALSE): Enable Qt WebEngineUSE_MULTIMEDIA
(default TRUE): Enable Qt MultimediaBUNDLE_QT
(default FALSE): Use bundled Qt- Note that using system Qt requires you to include the Qt CMake directory in
CMAKE_PREFIX_PATH
, e.g..ci/windows/build.sh -DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6
- Note that using system Qt requires you to include the Qt CMake directory in
After building, a zip can be packaged via .ci/windows/package.sh
. Note that you must have 7-zip installed and in your PATH. The resulting zip will be placed into artifacts
in the source directory.