Skip to content
jcm edited this page Dec 20, 2024 · 16 revisions

When generating/configuring ares on any platform, a number of configuration options are available.

Primary Configuration Options

ARES_CORES

Default: "a26;fc;sfc;sg;ms;md;ps1;pce;ng;msx;cv;myvision;gb;gba;ws;ngp;spec;n64"

By default, ares configures with all emulator cores. To specify that only a subset of cores should be built, use the -DARES_CORES option. For example:

cmake .. -G Ninja -DARES_CORES="a26;n64;sg;myvision"

CMAKE_BUILD_TYPE

Default: RelWithDebInfo

Multi-configuration generators (Xcode, Visual Studio, Ninja Multi-Config) will automatically configure with all build configurations available. Single-configuration generators will configure by default using the RelWithDebInfo configuration. To specify another configuration, use -DCMAKE_BUILD_TYPE:

cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug

Supported build types are <Debug|Release|RelWithDebInfo|MinSizeRel>.


ARES_ENABLE_LIBRASHADER

Default: ON

This flag may be disabled if you wish to compile without librashader and slang-shaders, producing a slimmer build. Note that the librashader header is still required to build without librashader; however, this header is bundled as a dependency on all platforms and it should not be necessary to install any dependency to build without librashader.


Compilation Options

These options generally control compile optimizations and options that affect compiler performance and behavior.

Variable Description Default OS
ARES_BUILD_LOCAL Controls the -march=native option for producing more optimized code for the target machine. Also controls certain entitlements and runtime options on macOS that interfere with debugging but are required for notarization and distribution. ON All
ENABLE_CCACHE Sets whether to use Ccache to speed up compilation. Disabling Ccache is recommended if you are experimenting with compilation options or working on the build system. ON All
ENABLE_IPO Controls whether CMake's interprocedural optimization (LTO) is enabled. ON All
ARES_PRECOMPILE_HEADERS Controls whether to precompile headers to reduce compile times. Turn off if you encounter compile issues. ON All
ARES_CODESIGN_TEAM Apple Development Team ID for producing signed builds on macOS - macOS
ARES_CODESIGN_IDENTITY Apple Development identity string for producing signed builds on macOS - macOS
ENABLE_COMPILER_TRACE Enable clang compiler traces for debugging compiler performance - All
CMAKE_OSX_DEPLOYMENT_TARGET Minimum version of macOS that you wish to build for "10.13" macOS
CMAKE_OSX_ARCHITECTURES Controls whether single-arch or universal binaries are built on macOS Host macOS

Linux-specific Packaging Options


ARES_BUNDLE_SHADERS

Default: ON

Set to OFF to not install libretro shaders with ares in the ares data directory. Intended for use with package manager installs of libretro's slang-shaders.


ARES_SKIP_DEPS

Default: OFF

For use by package maintainers; instructs CMake to not fetch prebuilt ares-deps containing the librashader header file and the libretro slang-shaders shaders.


ruby Driver Options

These options control whether ares will search for and attempt to build with the following ruby audio and input drivers.

Variable Description Default OS
ARES_ENABLE_OPENAL Enables the OpenAL audio driver ON Linux
ARES_ENABLE_SDL Enables the SDL audio and input drivers ON Linux
ARES_ENABLE_OSS Enables the OSS audio driver ON Linux
ARES_ENABLE_ALSA Enables the ALSA audio driver ON Linux
ARES_ENABLE_PULSEAUDIO Enables the Pulse and Pulse-Simple audio drivers ON Linux
ARES_ENABLE_AO Enables the AO audio driver ON Linux
ARES_ENABLE_UDEV Enables the udev input driver ON Linux
ARES_ENABLE_UHID Enables the uhid input driver ON Linux

Miscellaneous Options

Variable Description Default OS
ARES_BUILD_OPTIONAL_TARGETS Whether to include executable targets besides desktop-ui and sourcery in the build: Includes mia-ui genius, mame2bml and the i8080 test suite. OFF All
CCACHE_PROGRAM Point CMake toward a specific Ccache installation location ON All
ARES_SKIP_DEPS Skip downloading precompiled dependencies from ares-deps. This is NOT intended for general use, but is included for debugging purposes. ON All
<DEPENDENCY>_LIBRARY Point CMake toward a specific library location for a dependency. This is NOT intended for general use, but is included for debugging. If you need to use this option, you should file a bug report. ON All
<DEPENDENCY>_INCLUDE_DIR Point CMake toward a specific library include directory. This is NOT intended for general use, but is included for debugging. If you need to use this option, you should file a bug report. ON All
WITH_SYSTEM_ZLIB Try to use a system-installed zlib when compiling libchdr OFF All
USE_QT5 Try to build with QT5 on Linux instead of GTK3 OFF Linux
ARES_VERSION_OVERRIDE Define a custom ares version when building. - All
ARES_PROFILE_ACCURACY Mostly unused in modern versions of ares; acts as a compile-time switch to prefer accuracy over performance in certain areas in some emulator cores. OFF ALL

Other Useful CMake Options

Variable Description Default OS
CMAKE_C_COMPILER Specify a non-default C compiler for the build. Works with Ccache. Default All
CMAKE_CXX_COMPILER Specify a non-default C++ compiler for the build. Works with Ccache. Default All
CMAKE_PREFIX_PATH Specify directories in which to search for dependencies in addition to the defaults. Default All
CMAKE_INSTALL_PREFIX Specify a prefix in which to install ares after building. Default All