Below are instructions for Fedora 28. The dependencies are pretty common and should be available for any other popular distribution. A recent GCC (7+) is required for C++17.
$ dnf install git gcc-c++ cmake boost-devel qt5-devel glfw-devel \ metis-devel sqlite-devel openssl-devel libpng-devel zlib-devel \ freetype-devel pulseaudio-libs-devel libicu-devel spdlog-devel \ pugixml-devel glm-devel tbb-devel SDL2-devel ninja-build
Clone the repository recursively
$ git clone --recurse-submodules https://github.com/nongeneric/ps3emu.git
$ mkdir /path/to/build-dir $ cd /path/to/build-dir $ cmake -GNinja /path/to/repo
Intel VTune integration
The ITTNOTIFY_API is used in several places for better profiler output. Either make sure the following directory exists
Debug vs. Release
Building in the Debug configuration drastically reduces performance and also impacts the code generation of the rewrite tool. As such it is recommended to initially build in the Release configuration, preparing the environment and then building in Debug to continue developing.
EMU_CONFIGURATION_DEBUG option select the configuration.
EMU_CONFIGURATION_PAUSE allows pausing the virtual machine to implement breakpoints for the debugger. It decreases performance and is only using for debugging.
EMU_CONFIGURATION_LOG can be used to completely remove any trace of logging functionality from the source code. Usually the performance improvement after disabling logging is negligible.
EMU_CONFIGURATION_TESTS enables some hooks necessary for running tests. Setting it to
FALSE has no effect on performance.
EMU_CONFIGURATION_GLDEBUG enables OpenGL debug context and installs a callback that prints any warnings and errors that come from the video driver.