diff --git a/emulators/Makefile b/emulators/Makefile index 0f8fa6defe8d..fa362858e180 100644 --- a/emulators/Makefile +++ b/emulators/Makefile @@ -1,194 +1,195 @@ COMMENT = Emulators for other operating systems SUBDIR += 86Box SUBDIR += adamem SUBDIR += almostti SUBDIR += anese SUBDIR += aqemu SUBDIR += aranym SUBDIR += ares SUBDIR += atari800 SUBDIR += bfe SUBDIR += bochs SUBDIR += bsvc SUBDIR += cannonball SUBDIR += catapult SUBDIR += cemu SUBDIR += cingb SUBDIR += citra SUBDIR += citra-qt5 SUBDIR += cpmtools SUBDIR += cpmtools2 SUBDIR += darcnes SUBDIR += dgen-sdl SUBDIR += dolphin-emu SUBDIR += dosbox SUBDIR += dosbox-staging SUBDIR += dosbox-x SUBDIR += dps8m SUBDIR += duckstation SUBDIR += dynamips-community SUBDIR += edumips64 SUBDIR += elliott-803 SUBDIR += emu64 SUBDIR += emulationstation + SUBDIR += es-de SUBDIR += fceux SUBDIR += flexemu SUBDIR += fmsx SUBDIR += frodo SUBDIR += fs-uae SUBDIR += fs-uae-launcher SUBDIR += fuse SUBDIR += fuse-roms SUBDIR += fuse-utils SUBDIR += gbe SUBDIR += gens SUBDIR += gngb SUBDIR += gxemul SUBDIR += hatari SUBDIR += hercules SUBDIR += higan SUBDIR += hv_kvp_cmd SUBDIR += javatari SUBDIR += joytran SUBDIR += jzintv SUBDIR += klh10 SUBDIR += lib765 SUBDIR += libc6-shim SUBDIR += libdsk SUBDIR += libretro-bsnes SUBDIR += libretro-flycast SUBDIR += libretro-kronos SUBDIR += libretro-mame SUBDIR += libretro-pcsx2 SUBDIR += libretro-ppsspp SUBDIR += libretro-reicast SUBDIR += libretro-vice SUBDIR += libspectrum SUBDIR += linux-c7 SUBDIR += linux-power10-functional-sim SUBDIR += linux-power9-functional-sim SUBDIR += linux-rl9 SUBDIR += linux_base-c7 SUBDIR += linux_base-rl9 SUBDIR += magia SUBDIR += mame SUBDIR += mastergear SUBDIR += mednafen SUBDIR += mesen SUBDIR += mgba SUBDIR += mtools SUBDIR += mupen64plus SUBDIR += mupen64plus-audio-sdl SUBDIR += mupen64plus-core SUBDIR += mupen64plus-input-sdl SUBDIR += mupen64plus-plugins SUBDIR += mupen64plus-qt SUBDIR += mupen64plus-rsp-cxd4 SUBDIR += mupen64plus-rsp-hle SUBDIR += mupen64plus-rsp-z64 SUBDIR += mupen64plus-ui-console SUBDIR += mupen64plus-video-arachnoid SUBDIR += mupen64plus-video-glide64 SUBDIR += mupen64plus-video-glide64mk2 SUBDIR += mupen64plus-video-rice SUBDIR += mupen64plus-video-z64 SUBDIR += nemu SUBDIR += nestopia SUBDIR += o2em SUBDIR += ods2reader SUBDIR += open-simh SUBDIR += open-vm-tools SUBDIR += openmsx SUBDIR += p5-Acme-6502 SUBDIR += parallels-tools SUBDIR += pcem SUBDIR += pcemu SUBDIR += pcsx2 SUBDIR += playonbsd SUBDIR += ppsspp SUBDIR += ppsspp-qt5 SUBDIR += py-gns3-converter SUBDIR += py-m64py SUBDIR += py-unicorn SUBDIR += qemu SUBDIR += qemu-cheri SUBDIR += qemu-devel SUBDIR += qemu-powernv SUBDIR += qemu-user-static SUBDIR += qemu-user-static-devel SUBDIR += qemu8 SUBDIR += qmc2 SUBDIR += quasi88 SUBDIR += reicast SUBDIR += ripes SUBDIR += riscv-isa-sim SUBDIR += rpcs3 SUBDIR += rubygem-fission SUBDIR += sameboy SUBDIR += simh SUBDIR += simh-hp2100 SUBDIR += simh-hp3000 SUBDIR += simh-hpdoc SUBDIR += snes9x-gtk SUBDIR += spim SUBDIR += stella SUBDIR += stonx SUBDIR += teo SUBDIR += tic-80 SUBDIR += tiemu3 SUBDIR += tilem SUBDIR += tme SUBDIR += tnylpo SUBDIR += tpm-emulator SUBDIR += uae SUBDIR += ucon64 SUBDIR += uconvert SUBDIR += ukncbtl SUBDIR += unicorn SUBDIR += vba SUBDIR += vboxtool SUBDIR += vgb-bin SUBDIR += vgba-bin SUBDIR += vice SUBDIR += virtualbox-ose SUBDIR += virtualbox-ose-additions SUBDIR += virtualbox-ose-additions-legacy SUBDIR += virtualbox-ose-additions-nox11 SUBDIR += virtualbox-ose-additions-nox11-legacy SUBDIR += virtualbox-ose-kmod SUBDIR += virtualbox-ose-kmod-legacy SUBDIR += virtualbox-ose-legacy SUBDIR += virtualbox-ose-nox11 SUBDIR += virtualbox-ose-nox11-legacy SUBDIR += visualboyadvance-m SUBDIR += vmips SUBDIR += vmsbackup SUBDIR += vmw SUBDIR += vt100 SUBDIR += vxtools SUBDIR += wine SUBDIR += wine-devel SUBDIR += wine-gecko SUBDIR += wine-gecko-devel SUBDIR += wine-mono SUBDIR += wine-mono-devel SUBDIR += wine-proton SUBDIR += wine8 SUBDIR += winetricks SUBDIR += x16-emulator SUBDIR += x16-rom SUBDIR += x48 SUBDIR += x49gp SUBDIR += xbraitenberg SUBDIR += xcpc SUBDIR += xen-kernel SUBDIR += xhomer SUBDIR += xsystem35 SUBDIR += xzx SUBDIR += yaze-ag SUBDIR += yuzu SUBDIR += z80pack SUBDIR += zsnes .include diff --git a/emulators/es-de/Makefile b/emulators/es-de/Makefile new file mode 100644 index 000000000000..d7995e8c54b5 --- /dev/null +++ b/emulators/es-de/Makefile @@ -0,0 +1,56 @@ +PORTNAME= es-de +DISTVERSIONPREFIX= v +DISTVERSION= 3.0.3 +CATEGORIES= emulators + +# committed upstream, remove with next version update +# * Provide DEINIT_ON_LAUNCH +# https://gitlab.com/es-de/emulationstation-de/-/issues/1818 +# * Use getPathToBinary(argv[0]) fallback in setExePath +# https://gitlab.com/es-de/emulationstation-de/-/issues/1819 +# * Fix runRebootCommand() and runPoweroffCommand() +# https://gitlab.com/es-de/emulationstation-de/-/issues/1820 +PATCH_SITES= https://gitlab.com/${PORTNAME}/${GL_PROJECT}/-/commit/ +PATCHFILES= 330f36ee14525d59879a36005fa08734b21cf8fc.patch:-p1 \ + bd6956d52ffc950102613b7425eb30f668206888.patch:-p1 \ + 338843ce46ee8ab78a1b3c60dcae0ec79a30aa28.patch:-p1 + +MAINTAINER= bsdcode@disroot.org +COMMENT= Frontend for browsing and launching games +WWW= https://es-de.org + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${LOCALBASE}/include/CImg.h:graphics/cimg \ + ${LOCALBASE}/include/glm/glm.hpp:math/glm \ + ${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson +LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ + libcurl.so:ftp/curl \ + libfreeimage.so:graphics/freeimage \ + libfreetype.so:print/freetype2 \ + libgit2.so:devel/libgit2 \ + libpoppler.so:graphics/poppler \ + libpugixml.so:textproc/pugixml \ + librlottie.so:graphics/rlottie + +USES= cmake compiler:c++17-lang gl localbase pkgconfig sdl +USE_GITLAB= yes +GL_PROJECT= emulationstation-de +USE_GL= opengl +USE_SDL= sdl2 + +CMAKE_ON= VIDEO_HW_DECODING + +OPTIONS_DEFINE= DEINIT DOCS +OPTIONS_DEFAULT= DEINIT + +DEINIT_DESC= Deinit frontend on emulator launch + +DEINIT_CMAKE_BOOL= DEINIT_ON_LAUNCH + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/*.md ${STAGEDIR}${DOCSDIR} + +.include diff --git a/emulators/es-de/distinfo b/emulators/es-de/distinfo new file mode 100644 index 000000000000..91e06dd04985 --- /dev/null +++ b/emulators/es-de/distinfo @@ -0,0 +1,9 @@ +TIMESTAMP = 1724345621 +SHA256 (emulationstation-de-v3.0.3.tar.bz2) = b33b7b6540f17136095d594349e9d6d359cf47be660108cd2b1cabf61434276f +SIZE (emulationstation-de-v3.0.3.tar.bz2) = 69857580 +SHA256 (330f36ee14525d59879a36005fa08734b21cf8fc.patch) = d3f919f50bd869bc712e7caba778b05e8d576450ceb4fb9b8c51fbe2f37b0dd1 +SIZE (330f36ee14525d59879a36005fa08734b21cf8fc.patch) = 988 +SHA256 (bd6956d52ffc950102613b7425eb30f668206888.patch) = c2429a98357b53203431bd6328b2a4fd7541ecef4e02835e88e87ab6e0364525 +SIZE (bd6956d52ffc950102613b7425eb30f668206888.patch) = 1102 +SHA256 (338843ce46ee8ab78a1b3c60dcae0ec79a30aa28.patch) = 8434bf8c0757f1fca69980f01f9097a2728798f0f4d4be34791b77e023a4c7bc +SIZE (338843ce46ee8ab78a1b3c60dcae0ec79a30aa28.patch) = 1392 diff --git a/emulators/es-de/files/patch-CMakeLists.txt b/emulators/es-de/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..cc6224d26519 --- /dev/null +++ b/emulators/es-de/files/patch-CMakeLists.txt @@ -0,0 +1,83 @@ +--- CMakeLists.txt.orig 2024-08-22 16:55:26 UTC ++++ CMakeLists.txt +@@ -139,6 +139,8 @@ elseif(NOT EMSCRIPTEN AND NOT ANDROID) + find_package(Libgit2 REQUIRED) + find_package(Pugixml REQUIRED) + find_package(SDL2 REQUIRED) ++ pkg_check_modules(rapidjson REQUIRED RapidJSON) ++ pkg_check_modules(rlottie REQUIRED rlottie) + endif() + + # Add libCEC support. +@@ -180,8 +182,7 @@ if(CMAKE_BUILD_TYPE MATCHES Debug) + if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /Od /DEBUG:FULL") + else() +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O0 -g3 -Wall -Wpedantic -Wsign-compare -Wnarrowing -Wmissing-field-initializers -Wunused-macros") +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O0") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -Wall -Wpedantic -Wsign-compare -Wnarrowing -Wmissing-field-initializers -Wunused-macros") + endif() + # If using Clang, then add additional debug data needed by GDB. + # Comment this out if you're using LLDB for debugging as this flag makes the binary +@@ -204,11 +205,11 @@ else() + if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG /std:c++17 /O2 /DEBUG:NONE") + else() +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -O2 -DNDEBUG -Wall -Wpedantic -Wsign-compare -Wnarrowing -Wmissing-field-initializers -Wunused-macros") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -DNDEBUG -Wall -Wpedantic -Wsign-compare -Wnarrowing -Wmissing-field-initializers -Wunused-macros") + if(APPLE) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O2") + else() +- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O2 -s") ++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s") + endif() + endif() + endif() +@@ -449,11 +450,7 @@ set(COMMON_INCLUDE_DIRS ${CURL_INCLUDE_DIR} + # Include files. + + set(COMMON_INCLUDE_DIRS ${CURL_INCLUDE_DIR} +- ${CMAKE_CURRENT_SOURCE_DIR}/external/CImg +- ${CMAKE_CURRENT_SOURCE_DIR}/external/glm + ${CMAKE_CURRENT_SOURCE_DIR}/external/lunasvg/include +- ${CMAKE_CURRENT_SOURCE_DIR}/external/rapidjson/include +- ${CMAKE_CURRENT_SOURCE_DIR}/external/rlottie/inc + ${CMAKE_CURRENT_SOURCE_DIR}/external/utfcpp/source + ${CMAKE_CURRENT_SOURCE_DIR}/es-core/src + ${CMAKE_CURRENT_SOURCE_DIR}/es-pdf-converter/src) +@@ -499,7 +496,9 @@ else() + ${FREETYPE_INCLUDE_DIRS} + ${GIT2_INCLUDE_PATH} + ${PUGIXML_INCLUDE_DIRS} +- ${SDL2_INCLUDE_DIR}) ++ ${SDL2_INCLUDE_DIR} ++ ${rapidjson_INCLUDE_DIRS} ++ ${rlottie_INCLUDE_DIRS}) + endif() + + # Add libCEC include directory. +@@ -614,7 +613,8 @@ else() + ${FREETYPE_LIBRARIES} + ${GIT2_LIBRARY} + ${PUGIXML_LIBRARIES} +- ${SDL2_LIBRARY}) ++ ${SDL2_LIBRARY} ++ ${rlottie_LINK_LIBRARIES}) + endif() + + if(NOT WIN32) +@@ -624,7 +624,6 @@ if(NOT WIN32) + set(COMMON_LIBRARIES ${COMMON_LIBRARIES} ${PROJECT_SOURCE_DIR}/android_${ANDROID_ABI}/librlottie.a) + else() + set(COMMON_LIBRARIES ${COMMON_LIBRARIES} ${PROJECT_SOURCE_DIR}/liblunasvg.a) +- set(COMMON_LIBRARIES ${COMMON_LIBRARIES} ${PROJECT_SOURCE_DIR}/librlottie.a) + endif() + endif() + +@@ -682,6 +681,3 @@ add_dependencies(lunasvg es-pdf-convert) + # Make sure that es-pdf-convert is built first, and then that rlottie is built before es-core. + # Also set lottie2gif to not be built. + add_dependencies(lunasvg es-pdf-convert) +- +-add_dependencies(es-core rlottie) +-set_target_properties(lottie2gif PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1) diff --git a/emulators/es-de/files/patch-es-app_CMakeLists.txt b/emulators/es-de/files/patch-es-app_CMakeLists.txt new file mode 100644 index 000000000000..3781b9fbfeac --- /dev/null +++ b/emulators/es-de/files/patch-es-app_CMakeLists.txt @@ -0,0 +1,13 @@ +https://gitlab.com/es-de/emulationstation-de/-/issues/1817 + +--- es-app/CMakeLists.txt.orig 2024-08-17 09:21:08 UTC ++++ es-app/CMakeLists.txt +@@ -258,7 +258,7 @@ elseif(NOT ANDROID) + elseif(NOT ANDROID) + install(TARGETS es-de RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + install(TARGETS es-pdf-convert RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +- if(CMAKE_SYSTEM_NAME MATCHES Linux) ++ if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME MATCHES FreeBSD) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/es-de.6.gz + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man6) + else() diff --git a/emulators/es-de/files/patch-external_CMakeLists.txt b/emulators/es-de/files/patch-external_CMakeLists.txt new file mode 100644 index 000000000000..f52abcddae79 --- /dev/null +++ b/emulators/es-de/files/patch-external_CMakeLists.txt @@ -0,0 +1,23 @@ +--- external/CMakeLists.txt.orig 2024-06-14 15:36:56 UTC ++++ external/CMakeLists.txt +@@ -61,13 +61,9 @@ endif() + set(CMAKE_CXX_FLAGS -pthread) + endif() + +-add_subdirectory(rlottie EXCLUDE_FROM_ALL) +- + # rlottie generates a lot of annoying compiler warnings that we don't need to show. + if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) + target_compile_options(rlottie PRIVATE "/wd4244" "/wd4251" "/wd4263" "/wd4334" "/wd4267" "/wd4530" "/wd4996") +-else() +- target_compile_options(rlottie PRIVATE "-w") + endif() + + if(ANDROID) +@@ -79,6 +75,3 @@ endif() + ${PROJECT_SOURCE_DIR}/android_${ANDROID_ABI}) + endif() + endif() +- +-# Build LunaSVG before rlottie. +-add_dependencies(rlottie lunasvg) diff --git a/emulators/es-de/pkg-descr b/emulators/es-de/pkg-descr new file mode 100644 index 000000000000..f7faf87932f7 --- /dev/null +++ b/emulators/es-de/pkg-descr @@ -0,0 +1,11 @@ +ES-DE (formerly known as EmulationStation Desktop Edition) is a frontend for +browsing and launching games from your multi-platform collection. It comes +preconfigured for use with a large selection of emulators, game engines, game +managers and gaming services. It can also run locally installed games and +applications. It's fully customizable, so you can easily expand it with support +for additional systems and applications. + +It features a modern and attractive user interface, full controller navigation +support, supports over 150 different game systems, highly customizable setup, a +built-in scraper for downloading game info and game media, full theme support +with lots of high-quality themes. diff --git a/emulators/es-de/pkg-message b/emulators/es-de/pkg-message new file mode 100644 index 000000000000..baf5be9228ad --- /dev/null +++ b/emulators/es-de/pkg-message @@ -0,0 +1,13 @@ +[ +{ type: install + message: <