PORTNAME= ares
DISTVERSIONPREFIX= v
DISTVERSION= 146
PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
DISTNAME= ${PORTNAME}-source
DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
MAINTAINER= [email protected]
COMMENT= Multi-system emulator
WWW= https://ares-emu.net
LICENSE= ISCL
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= librashader>0:devel/librashader
USES= cmake compiler:c++17-lang gl gnome pkgconfig xorg
USE_GL= opengl
USE_GNOME= gtk30
USE_XORG= x11 xext xrandr xrender
CMAKE_ARGS= -DARES_CORES="${_CORES:S/ /;/gW}" \
-DENABLE_CCACHE=${CCACHE_ENABLED}
CMAKE_ON= ARES_BUILD_OFFICIAL \
ARES_SKIP_DEPS \
ARES_UNITY_CORES
CMAKE_OFF= ARES_BUILD_LOCAL \
ARES_BUNDLE_SHADERS \
ARES_ENABLE_MINIMUM_CPU
EXTRACT_AFTER_ARGS= --exclude thirdparty/GL \
--exclude thirdparty/KHR \
--exclude thirdparty/libchdr \
--exclude thirdparty/librashader \
--exclude thirdparty/sse2neon.h \
--exclude thirdparty/xxhash.h \
--no-same-owner --no-same-permissions
NO_WRKSUBDIR= yes
OPTIONS_DEFINE= CHD SDL TOOLS
OPTIONS_DEFAULT= A26 ALSA AO CHD CV FC GB GBA LIBRASHADER \
LIBRETRO LTO MD MS MSX MYVISION N64 NG NGP \
OPENAL OPTIMIZED_CFLAGS OSS PCE PS1 SDL SFC SG \
SPEC UDEV USBHID WS
OPTIONS_GROUP= AUDIO CORES INPUT OPTIMIZATION SHADER
OPTIONS_GROUP_AUDIO= ALSA AO OPENAL OSS PULSEAUDIO
OPTIONS_GROUP_CORES= A26 CV FC GB GBA MD MS MSX MYVISION N64 NG NGP \
PCE PS1 SFC SG SPEC WS
OPTIONS_GROUP_INPUT= HOTKEYS UDEV USBHID
OPTIONS_GROUP_OPTIMIZATION= ACCURACY LTO OPTIMIZED_CFLAGS
OPTIONS_GROUP_SHADER= LIBRASHADER LIBRETRO
# linking openal fails on i386, LLD_UNSAFE workaround fails with
# /usr/local/bin/i386-unknown-freebsd14.1-ld.bfd: /usr/bin/../lib/LLVMgold.so:
# error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so"
# on tools/sourcery target, so exclude OPENAL on i386
OPTIONS_EXCLUDE_i386= OPENAL
OPTIONS_SUB= yes
A26_DESC= Atari 2600
ACCURACY_DESC= Emulation accuracy over performance
CHD_DESC= CHD format support via libchdr
CV_DESC= ColecoVision
FC_DESC= NES / Famicom
GBA_DESC= Game Boy Advance
GB_DESC= Game Boy / Game Boy Color
HOTKEYS_DESC= Inofficial hotkeys locking patch
LIBRASHADER_DESC= Slang-shader support via librashader
LIBRETRO_DESC= Install slang-shaders from libretro (implies ${LIBRETRO_IMPLIES})
MD_DESC= Sega Mega Drive / Genesis
MSX_DESC= Microsoft MSX
MS_DESC= Sega Master System / Mark III
MYVISION_DESC= My Vision
N64_DESC= Nintendo 64
NGP_DESC= Neo Geo Pocket / Neo Geo Pocket Color
NG_DESC= Neo Geo (AES/MVS)
PCE_DESC= PC-Engine / TurboGrafx
PS1_DESC= PlayStation
SFC_DESC= SNES / Super Famicom
SG_DESC= Sega SG-1000
SPEC_DESC= ZX Spectrum
TOOLS_DESC= Include supplemental tools and tests
UDEV_DESC= Input support via UDEV
USBHID_DESC= Input support via USBHID
WS_DESC= WonderSwan / WonderSwan Color
A26_VARS= _CORES+=a26
ACCURACY_CMAKE_BOOL= ARES_PROFILE_ACCURACY
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_CMAKE_BOOL= ARES_ENABLE_ALSA
AO_LIB_DEPENDS= libao.so:audio/libao
AO_CMAKE_BOOL= ARES_ENABLE_AO
CHD_LIB_DEPENDS= libchdr.so:devel/libchdr
CHD_USES= localbase
CHD_CMAKE_BOOL= ARES_ENABLE_CHD
CV_VARS= _CORES+=cv
FC_VARS= _CORES+=fc
GBA_VARS= _CORES+=gba
GB_VARS= _CORES+=gb
HOTKEYS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-desktop-ui_input_hotkeys.cpp
LIBRASHADER_LIB_DEPENDS= librashader.so:devel/librashader
LIBRASHADER_CMAKE_BOOL= ARES_ENABLE_LIBRASHADER
LIBRETRO_IMPLIES= LIBRASHADER
_LIBRETRO_BR_DEPENDS= libretro-shaders-slang<0:games/libretro-shaders-slang
LIBRETRO_BUILD_DEPENDS= ${_LIBRETRO_BR_DEPENDS}
LIBRETRO_RUN_DEPENDS= ${_LIBRETRO_BR_DEPENDS}
LTO_CMAKE_BOOL= ENABLE_IPO
MD_BUILD_DEPENDS= xxhash>0:devel/xxhash
MD_USES= localbase
MD_VARS= _CORES+=md
MSX_VARS= _CORES+=msx
MS_VARS= _CORES+=ms
MYVISION_VARS= _CORES+=myvision
_N64_BR_DEPENDS= vulkan-loader>0:graphics/vulkan-loader
_N64_BUILD_DEPENDS_aarch64= sse2neon>0:devel/sse2neon
N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS} \
${_N64_BUILD_DEPENDS_${ARCH}} \
xxhash>0:devel/xxhash
N64_RUN_DEPENDS= ${_N64_BR_DEPENDS}
N64_USES= localbase
N64_VARS= _CORES+=n64
NGP_VARS= _CORES+=ngp
NG_VARS= _CORES+=ng
OPENAL_USES= openal
OPENAL_CMAKE_BOOL= ARES_ENABLE_OPENAL
OPTIMIZED_CFLAGS_CFLAGS= -O3
OSS_CMAKE_BOOL= ARES_ENABLE_OSS
PCE_VARS= _CORES+=pce
PS1_VARS= _CORES+=ps1
PULSEAUDIO_LIB_DEPENDS= libpulse-simple.so:audio/pulseaudio \
libpulse.so:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL= ARES_ENABLE_PULSEAUDIO
SDL_USES= sdl
SDL_USE= SDL=sdl3
SDL_CMAKE_BOOL= ARES_ENABLE_SDL
SFC_VARS= _CORES+=sfc
SG_VARS= _CORES+=sg
SPEC_VARS= _CORES+=spec
TOOLS_CMAKE_BOOL= ARES_BUILD_OPTIONAL_TARGETS
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
UDEV_CMAKE_BOOL= ARES_ENABLE_UDEV
USBHID_CMAKE_BOOL= ARES_ENABLE_USBHID
WS_VARS= _CORES+=ws
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MGBA} || ${PORT_OPTIONS:MSFC})
PLIST_SUB+= TOOLSARM7TDMI=""
.else
PLIST_SUB+= TOOLSARM7TDMI="@comment "
.endif
.if ${PORT_OPTIONS:MTOOLS} && (${PORT_OPTIONS:MMD} || ${PORT_OPTIONS:MNG})
PLIST_SUB+= TOOLSM68000=""
.else
PLIST_SUB+= TOOLSM68000="@comment "
.endif
post-patch:
${REINPLACE_CMD} 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/cmake/finders/*
post-install-LIBRETRO-on:
${LN} -s ${LOCALBASE}/share/libretro/shaders/shaders_slang ${STAGEDIR}${DATADIR}/Shaders
.include <bsd.port.mk>