emulators/ares: update to 146, unbundle dependencies

Release notes:
https://ares-emu.net/news/ares-v146-released

* The provided release archive doesn't contain a root directory anymore, so the
  port has to replace WRKSRC with NO_WRKSUBDIR=yes. Additionally use DIST_SUBDIR
  to prevent collision among multiple versions of the unversioned DISTFILES.

* This release builds the binaries bin/arm7tdmi and bin/m68000 only if one of the
  relevant cores is enabled. The port reflects this by removing TOOLS_IMPLIES and
  by adjusting PLIST_SUB and pkg-plist accordingly.

* The LaserActive system is added to the list of experimentally supported systems
  in pkg-descr. While there, reorder the list of supported systems in order to
  match the order on the project's homepage.

* Unbundle several dependencies which are available in ports.

PR:		289118
Reported by:	Stefan Schlosser <bsdcode@disroot.org> (maintainer)
This commit is contained in:
Stefan Schlosser 2025-08-01 09:55:21 +02:00 committed by Hiroki Tagato
parent fbd2427bb6
commit cd8520a8a9
5 changed files with 120 additions and 20 deletions

View File

@ -1,10 +1,10 @@
PORTNAME= ares
DISTVERSIONPREFIX= v
DISTVERSION= 145
PORTREVISION= 1
DISTVERSION= 146
CATEGORIES= emulators
MASTER_SITES= https://github.com/${PORTNAME}-emulator/${PORTNAME}/releases/download/${DISTVERSIONFULL}/
DISTNAME= ${PORTNAME}-source
DIST_SUBDIR= ${PORTNAME}-${DISTVERSION}
MAINTAINER= bsdcode@disroot.org
COMMENT= Multi-system emulator
@ -29,10 +29,15 @@ CMAKE_OFF= ARES_BUILD_LOCAL \
ARES_BUNDLE_SHADERS \
ARES_ENABLE_MINIMUM_CPU
EXTRACT_AFTER_ARGS= --exclude thirdparty/librashader \
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
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
NO_WRKSUBDIR= yes
OPTIONS_DEFINE= CHD SDL TOOLS
OPTIONS_DEFAULT= A26 ALSA AO CHD CV FC GB GBA LIBRASHADER \
@ -92,8 +97,9 @@ ALSA_CMAKE_BOOL= ARES_ENABLE_ALSA
AO_LIB_DEPENDS= libao.so:audio/libao
AO_CMAKE_BOOL= ARES_ENABLE_AO
CHD_CMAKE_BOOL= ARES_ENABLE_CHD \
WITH_SYSTEM_ZLIB
CHD_LIB_DEPENDS= libchdr.so:devel/libchdr
CHD_USES= localbase
CHD_CMAKE_BOOL= ARES_ENABLE_CHD
CV_VARS= _CORES+=cv
@ -115,6 +121,8 @@ 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
@ -124,8 +132,12 @@ MS_VARS= _CORES+=ms
MYVISION_VARS= _CORES+=myvision
_N64_BR_DEPENDS= vulkan-loader>0:graphics/vulkan-loader
N64_BUILD_DEPENDS= ${_N64_BR_DEPENDS}
_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
@ -157,8 +169,6 @@ SG_VARS= _CORES+=sg
SPEC_VARS= _CORES+=spec
# https://github.com/ares-emulator/ares/issues/2090
TOOLS_IMPLIES= GBA MD NG SFC
TOOLS_CMAKE_BOOL= ARES_BUILD_OPTIONAL_TARGETS
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
@ -168,6 +178,20 @@ 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/*

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1752185303
SHA256 (ares-source.tar.gz) = 7a76acf87cca2903552683347fdf6f1cd06f436fa4e0c247108688785cbbd14b
SIZE (ares-source.tar.gz) = 8967048
TIMESTAMP = 1756454355
SHA256 (ares-146/ares-source.tar.gz) = 0f0b878c19ce09dab57584235e9c639c4c14a0bd1de6cef50238f006bd797bf1
SIZE (ares-146/ares-source.tar.gz) = 9021617

View File

@ -0,0 +1,75 @@
--- thirdparty/CMakeLists.txt.orig 2025-08-27 21:41:50 UTC
+++ thirdparty/CMakeLists.txt
@@ -7,55 +7,9 @@ if(ARES_ENABLE_CHD)
option(ARES_ENABLE_CHD "Enable CHD format support via libchdr" ON)
if(ARES_ENABLE_CHD)
- # lzma
- add_subdirectory(libchdr/deps/lzma-24.05 EXCLUDE_FROM_ALL)
- list(APPEND CHDR_LIBS lzma)
- list(APPEND CHDR_INCLUDES lzma)
-
- if(OS_MACOS)
- option(WITH_SYSTEM_ZLIB "Use system zlib" ON)
- endif()
- # zlib
- if(WITH_SYSTEM_ZLIB)
- find_package(ZLIB REQUIRED)
- list(APPEND PLATFORM_LIBS ZLIB::ZLIB)
- else()
- option(ZLIB_BUILD_EXAMPLES "Enable Zlib Examples" OFF)
- add_subdirectory(libchdr/deps/zlib-1.3.1 EXCLUDE_FROM_ALL)
- set_target_properties(
- zlibstatic
- PROPERTIES POSITION_INDEPENDENT_CODE ON FOLDER thirdparty PREFIX ""
- )
- list(APPEND CHDR_LIBS zlibstatic)
- endif()
-
- # zstd
- option(ZSTD_BUILD_SHARED "BUILD SHARED LIBRARIES" OFF)
- option(ZSTD_BUILD_PROGRAMS "BUILD PROGRAMS" OFF)
- add_subdirectory(libchdr/deps/zstd-1.5.6/build/cmake EXCLUDE_FROM_ALL)
- list(APPEND CHDR_LIBS libzstd_static)
- #--------------------------------------------------
- # chdr
- #--------------------------------------------------
-
- set(
- CHDR_SOURCES
- libchdr/src/libchdr_bitstream.c
- libchdr/src/libchdr_cdrom.c
- libchdr/src/libchdr_chd.c
- libchdr/src/libchdr_flac.c
- libchdr/src/libchdr_huffman.c
- )
-
- list(APPEND CHDR_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/libchdr/include)
-
- add_library(chdr-static STATIC ${CHDR_SOURCES})
- target_include_directories(chdr-static PUBLIC ${CHDR_INCLUDES} PUBLIC libchdr/include)
- target_link_libraries(chdr-static PRIVATE ${CHDR_LIBS} ${PLATFORM_LIBS})
- target_compile_options(
- chdr-static
- PRIVATE $<$<CXX_COMPILER_ID:Clang,AppleClang>:-Wno-unreachable-code -Wno-unused-function>
- )
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr)
+ add_library(chdr-static ALIAS PkgConfig::libchdr)
endif()
add_library(
@@ -111,12 +65,4 @@ set_target_properties(sljit PROPERTIES FOLDER thirdpar
set_target_properties(ymfm PROPERTIES FOLDER thirdparty PREFIX "")
set_target_properties(tzxfile PROPERTIES FOLDER thirdparty PREFIX "")
set_target_properties(sljit PROPERTIES FOLDER thirdparty PREFIX "")
-if(ARES_ENABLE_CHD)
- set_target_properties(chdr-static PROPERTIES FOLDER thirdparty PREFIX "")
- if(NOT WITH_SYSTEM_ZLIB)
- set_target_properties(zlib PROPERTIES FOLDER thirdparty PREFIX "")
- endif()
- set_target_properties(lzma PROPERTIES FOLDER thirdparty PREFIX "")
- set_target_properties(libzstd_static PROPERTIES FOLDER thirdparty PREFIX "")
-endif()
set_target_properties(qon PROPERTIES FOLDER thirdparty PREFIX "")
\ No newline at end of file

View File

@ -3,14 +3,15 @@ preservation. It is a descendant of the emulators higan and bsnes. It's source
code is structured to be maximally readable and self-documenting.
ares supports the following systems: Arcade, WonderSwan, WonderSwan Color,
Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, SuperGrafx, My
Vision, NES / Famicom, Famicom Disk System, SNES / Super Famicom, Satellaview,
Sufami Turbo, Nintendo 64, Nintendo 64DD, Game Boy, Game Boy Color, Game Boy
Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Mega CD, 32X,
Game Gear, Neo Geo Pocket, Neo Geo Pocket Color
Pocket Challenge V2, ColecoVision, PC-Engine / TurboGrafx, PC-Engine SuperGrafx,
My Vision, NES / Famicom, Famicom Disk System, Game Boy, SNES / Super Famicom,
Satellaview, Nintendo 64, SuFami Turbo, Game Boy Color, Nintendo 64DD, Game Boy
Advance, SG-1000, Master System / Mark III, Mega Drive / Genesis, Game Gear,
Mega CD, 32X, Neo Geo Pocket, Neo Geo Pocket Color
ares has experimental support for the following systems: Atari 2600, MSX, MSX2,
PC-Engine CD / TurboGrafx CD, ZX Spectrum, Neo Geo (AES/MVS), PlayStation
PC-Engine CD / TurboGrafx CD, LaserActive, ZX Spectrum, Neo Geo (AES/MVS),
PlayStation
ares has all the features one would expect from a great emulator system: native
multi-platform UI, dynamic rate control, save states, run-ahead, rewind and

View File

@ -1,8 +1,8 @@
bin/ares
%%TOOLS%%bin/arm7tdmi
%%TOOLSARM7TDMI%%bin/arm7tdmi
%%TOOLS%%bin/genius
%%TOOLS%%bin/i8080
%%TOOLS%%bin/m68000
%%TOOLSM68000%%bin/m68000
%%TOOLS%%bin/mame2bml
%%TOOLS%%bin/mia
bin/sourcery