eden the switch emulator works on FreeBSD, but not officially through fresh ports or a FreeBSD port in the traditional sense.
Instead it must be downloaded as source code and be build manually through cmake following a building guide which is not an ideal or preferred way of installing software on FreeBSD,
I am mostly done with the Makefile, and I think it could work, but I get a error that make cannot open the Makefile.
Maybe it is due to a syntax error inside the Makefile, but I couldn't find one.
I know that eden exists inside the www category, but renaming this port to eden-emu didn't work out, too so, it must be something else.
Here is the Makefile content:
It fails at the building process so.
Instead it must be downloaded as source code and be build manually through cmake following a building guide which is not an ideal or preferred way of installing software on FreeBSD,
I am mostly done with the Makefile, and I think it could work, but I get a error that make cannot open the Makefile.
Maybe it is due to a syntax error inside the Makefile, but I couldn't find one.
I know that eden exists inside the www category, but renaming this port to eden-emu didn't work out, too so, it must be something else.
Here is the Makefile content:
Code:
PORTNAME= eden
PORTVERSION= 0.0.2
PORTREVISION= 0
PKGNAMESUFFIX= -emu
CATEGORIES= emulators
MASTER_SITES= https://git.eden-emu.dev/SDK-chan/eden/archive/
DISTFILES= master.tar.gz
MAINTAINER= sdk-chan@protonmail.com
COMMENT= Nintendo Switch emulator/debugger
WWW= https://eden-emu.dev
#LICENSE= APACHE20 BSD3CLAUSE GPLv3+ ISCL MIT UNLICENSE
LICENSE= APACHE20 BSD3CLAUSE GPLv3+ UNLICENSE
LICENSE_COMB= multi
#LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/externals/sirit/LICENSE.txt
LICENSE_FILE_BSD3CLAUSE= ${WRKDIR}/eden/externals/sirit/LICENSE.txt
LICENSE_FILE_GPLv3+= ${WRKDIR}/eden/LICENSE.txt
#LICENSE_FILE_ISCL= ${WRKDIR}/eden/externals/cubeb/LICENSE
#LICENSE_FILE_MIT= ${WRKDIR}/eden/externals/sirit/externals/SPIRV-Headers/LICENSE
ONLY_FOR_ARCHS= aarch64 amd64
ONLY_FOR_ARCHS_REASON= requires int128 and dynarmic backend
BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
nlohmann-json>0:devel/nlohmann-json \
simpleini>0:devel/simpleini \
glslangValidator:graphics/glslang \
vulkan-headers>0:graphics/vulkan-headers \
vulkan-utility-libraries>0:graphics/vulkan-utility-libraries
LIB_DEPENDS= liblz4.so:archivers/liblz4 \
libzstd.so:archivers/zstd \
libopus.so:audio/opus \
libfmt.so:devel/libfmt \
libavcodec.so:multimedia/ffmpeg \
libenet.so:net/enet
#TEST_DEPENDS= catch2>0:devel/catch2
USE_GITHUB= nodefault
GH_TUPLE= GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:v3.0.1-114-g2f382df:VulkanMemoryAllocator/externals/VulkanMemoryAllocator \
KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-201-gc214f6f:SPIRV_Headers/externals/sirit/externals/SPIRV-Headers \
arun11299:cpp-jwt:v1.4-18-g10ef573:cpp_jwt/externals/cpp-jwt \
arsenm:sanitizers-cmake:aab6948:sanitizers_cmake/externals/cubeb/cmake/sanitizers-cmake \
herumi:xbyak:v6.68:xbyak/externals/xbyak \
kinetiknz:cubeb:cubeb-0.2-1452-g48689ae:cubeb/externals/cubeb \
yhirose:cpp-httplib:v0.14.1:cpp_httplib/externals/cpp-httplib
#USES= cmake:testing localbase:ldflags pkgconfig sdl ssl qt:6
USES= localbase:ldflags pkgconfig sdl ssl qt:6
USE_SDL= sdl2
USE_QT= base
WRKSRC= ${WRKDIR}/${PORTNAME}
#CMAKE_TESTING_ON= YUZU_TESTS
OPTIONS_DEFINE= ALSA QT6 PULSEAUDIO JACK LTO NLS SNDIO VAAPI VULKAN WEBENGINE
OPTIONS_DEFAULT= PULSEAUDIO JACK LTO QT6 SNDIO VAAPI VULKAN WEBENGINE
ALSA_BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib
ALSA_CMAKE_BOOL= USE_ALSA
JACK_BUILD_DEPENDS= jackit>0:audio/jack
JACK_CMAKE_BOOL= USE_JACK
LTO_CMAKE_BOOL= YUZU_ENABLE_LTO
NLS_DESC= UI translations (implies ${NLS_IMPLIES})
#NLS_USE= QT=${"${PORT_OPTIONS:MQT5}":?linguist:}tools:build
NLS_USE= QT=tools:build
NLS_CMAKE_BOOL= ENABLE_QT_TRANSLATION
NLS_IMPLIES= QT6
PULSEAUDIO_BUILD_DEPENDS= pulseaudio>0:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL= USE_PULSE
SNDIO_BUILD_DEPENDS= sndio>0:audio/sndio
SNDIO_CMAKE_BOOL= USE_SNDIO
VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
VULKAN_DESC= Vulkan renderer
VULKAN_RUN_DEPENDS= ${LOCALBASE}/lib/libvulkan.so:graphics/vulkan-loader
WEBENGINE_DESC= Web applet support (implies ${WEBENGINE_IMPLIES})
WEBENGINE_USE= QT=webengine
WEBENGINE_CMAKE_BOOL= YUZU_USE_QT_WEB_ENGINE
WEBENGINE_IMPLIES= QT6
post-patch:
@${REINPLACE_CMD} -e 's/@GIT_BRANCH@/master/' \
-e 's/@GIT_DESC@/${GH_TAGNAME}/' \
${WRKDIR}/eden/src/common/scm_rev.cpp.in
post-patch-VAAPI-off:
@${REINPLACE_CMD} -i .nova '/pkg_check.*libva/d' \
${WRKDIR}/eden/CMakeLists.txt
post-install:
.if exists(/usr/bin/elfctl)
${ELFCTL} -e +wxneeded ${STAGEDIR}${PREFIX}/bin/*
.endif
.include <bsd.port.mk>