Building for OpenBSD - Zapeth/citra GitHub Wiki

OpenBSD is not officially supported. These instructions are not actively updated and represent what happened to work for one user on amd64 in March 2018.

Install the required packages: (Please amend if you notice some are missing, I did not test this on a clean installation!)

pkg_add cmake sdl2 qtbase 

The repository uses submodules, so remember to clone it recursively:

git clone --recursive https://github.com/citra-emu/citra
cd citra

To build, run the following in the repository root directory:

mkdir build && cd build
export Qt5_DIR=/usr/local/lib/qt5/cmake/Qt5
cmake \
    -DCMAKE_CXX_FLAGS='-I/usr/local/include -O2' \
    -DCMAKE_EXE_LINKER_FLAGS='-z wxneeded' ..
make

Rationale:

  • Setting Qt5_DIR is necessary because cmake does not know to look for it under /usr/local/lib/qt5/cmake by default.
  • -I/usr/local/include is needed for the compiler to find iconv.h, as the base compiler does not look under /usr/local/include by default.
  • -O2 is needed for playable performance; this needs to be set even if CMAKE_BUILD_TYPE=Release, as it does not set optimization flags by default (perhaps because the base amd64 compiler is clang?)
  • Linking with -z wxneeded is needed to enable writable-executable memory on OpenBSD. The resulting binary still needs to be run a partition with wxallowed set in the mount flags; /usr/local is mounted like this by default.