diff --git a/emulators/Ymir/Makefile b/emulators/Ymir/Makefile index 2b2b9384a8b6..6bc0e667c2a4 100644 --- a/emulators/Ymir/Makefile +++ b/emulators/Ymir/Makefile @@ -1,104 +1,104 @@ PORTNAME= Ymir DISTVERSIONPREFIX= v -DISTVERSION= 0.3.1 +DISTVERSION= 0.3.3 CATEGORIES= emulators MAINTAINER= bsdcode@disroot.org COMMENT= Sega Saturn emulator WWW= https://github.com/StrikerX3/Ymir/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 ONLY_FOR_ARCHS_REASON= upstream only supports aarch64 and amd64 BUILD_DEPENDS= cereal>0:devel/cereal \ concurrentqueue>0:devel/concurrentqueue \ cxxopts>0:devel/cxxopts \ date>0:devel/date \ glslangValidator:graphics/glslang \ glslc:graphics/shaderc \ libnghttp3>0:www/libnghttp3 \ libngtcp2>0:net/libngtcp2 \ nlohmann-json>0:devel/nlohmann-json \ semver>0:devel/semver \ stb>0:devel/stb \ vulkan-headers>0:graphics/vulkan-headers LIB_DEPENDS= libchdr.so:devel/libchdr \ libcurl.so:ftp/curl \ libfmt.so:devel/libfmt \ libglfw.so:graphics/glfw \ libimgui.so:x11-toolkits/imgui \ liblz4.so:archivers/liblz4 \ librtmidi.so:audio/rtmidi \ libtomlplusplus.so:devel/tomlplusplus \ libvulkan.so:graphics/vulkan-loader \ libxxhash.so:devel/xxhash FLAVORS= gtk3 gtk4 FLAVOR?= ${FLAVORS:[1]} gtk4_PKGNAMESUFFIX= -gtk4 _gtk3_BR_DEPENDS= zenity:x11/zenity _gtk4_BR_DEPENDS= zenity:x11/zenity4 ${FLAVOR}_BUILD_DEPENDS= ${_${FLAVOR}_BR_DEPENDS} ${FLAVOR}_RUN_DEPENDS= ${_${FLAVOR}_BR_DEPENDS} USES= cmake compiler:c++20-lang gl llvm${_LLVM_${ARCH}} localbase \ pkgconfig sdl xorg _LLVM_aarch64= :min=21 USE_GITHUB= yes GH_ACCOUNT= StrikerX3 GH_TUPLE= StrikerX3:mio:4e4cdc711d73d9dc96c0cb9475e6951f476218e6:mio/vendor/mio USE_GL= glut USE_SDL= sdl3 USE_XORG= xi xmu CMAKE_OFF= Ymir_DEV_BUILD \ Ymir_ENABLE_IMGUI_DEMO \ Ymir_ENABLE_SANDBOX \ Ymir_ENABLE_TESTS \ Ymir_ENABLE_UPDATE_CHECKS CFLAGS+= -I${LOCALBASE}/include/concurrentqueue/moodycamel \ -I${LOCALBASE}/include/stb \ -I${WRKSRC}/vendor/imgui/ymir PLIST_FILES= bin/ymir-sdl3 \ share/applications/io.github.strikerx3.ymir.desktop \ share/icons/hicolor/256x256/apps/ymir.png \ share/metainfo/io.github.strikerx3.ymir.xml OPTIONS_DEFINE= FEATUREFLAG LTO YMDASM OPTIONS_DEFAULT= LTO FEATUREFLAG_DESC= Enable experimental features YMDASM_DESC= Include Ymir disassembly tool FEATUREFLAG_CMAKE_BOOL= Ymir_FEATUREFLAG_DEFAULT LTO_CMAKE_BOOL= Ymir_ENABLE_IPO YMDASM_CMAKE_BOOL= Ymir_ENABLE_YMDASM YMDASM_PLIST_FILES= bin/ymdasm post-install: ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/apps/ymir-sdl3/ymir-sdl3-${DISTVERSION} \ ${STAGEDIR}${PREFIX}/bin/ymir-sdl3 ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.desktop \ ${STAGEDIR}${DESKTOPDIR} ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps \ ${STAGEDIR}${PREFIX}/share/metainfo ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/ymir.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps ${INSTALL_DATA} ${WRKSRC}/apps/ymir-sdl3/res/io.github.strikerx3.ymir.xml \ ${STAGEDIR}${PREFIX}/share/metainfo post-install-YMDASM-on: ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/apps/ymdasm/ymdasm-${DISTVERSION} \ ${STAGEDIR}${PREFIX}/bin/ymdasm .include diff --git a/emulators/Ymir/distinfo b/emulators/Ymir/distinfo index d37edbc77d25..0578619758fe 100644 --- a/emulators/Ymir/distinfo +++ b/emulators/Ymir/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1777834029 -SHA256 (StrikerX3-Ymir-v0.3.1_GH0.tar.gz) = 6b9a9bcce71cc01eef720ec93725938c93dea5ba17e5506bb626c2c373408776 -SIZE (StrikerX3-Ymir-v0.3.1_GH0.tar.gz) = 6416921 +TIMESTAMP = 1782111327 +SHA256 (StrikerX3-Ymir-v0.3.3_GH0.tar.gz) = 5a890ed515822e15c285e6807b39680c31efa928e3fffb16db63eeb9c5e32236 +SIZE (StrikerX3-Ymir-v0.3.3_GH0.tar.gz) = 8584337 SHA256 (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 5da72ba39d70edab8cc42075c40895758c4a4ad905f9254ed5fd216757331773 SIZE (StrikerX3-mio-4e4cdc711d73d9dc96c0cb9475e6951f476218e6_GH0.tar.gz) = 34878 diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt index 8ba4d51260aa..7ac76cd4be64 100644 --- a/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt +++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_CMakeLists.txt @@ -1,18 +1,17 @@ ---- apps/ymir-sdl3/CMakeLists.txt.orig 2025-10-12 17:41:59 UTC +--- apps/ymir-sdl3/CMakeLists.txt.orig 2026-06-21 22:53:09 UTC +++ apps/ymir-sdl3/CMakeLists.txt -@@ -352,12 +352,12 @@ find_package(date CONFIG REQUIRED) +@@ -413,11 +413,11 @@ find_package(date CONFIG REQUIRED) find_package(cereal CONFIG REQUIRED) find_package(cxxopts CONFIG REQUIRED) find_package(date CONFIG REQUIRED) -find_package(OpenSSL CONFIG REQUIRED) find_package(CURL REQUIRED) -+add_library(CURL::libcurl_static ALIAS CURL::libcurl) - find_package(fmt CONFIG REQUIRED) -find_package(rtmidi CONFIG REQUIRED) ++add_library(CURL::libcurl_static ALIAS CURL::libcurl) +pkg_check_modules(rtmidi REQUIRED IMPORTED_TARGET rtmidi) +add_library(RtMidi::rtmidi ALIAS PkgConfig::rtmidi) find_package(SDL3 CONFIG REQUIRED) -find_package(Stb REQUIRED) find_package(tomlplusplus CONFIG REQUIRED) target_include_directories(ymir-sdl3 diff --git a/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp new file mode 100644 index 000000000000..823829476162 --- /dev/null +++ b/emulators/Ymir/files/patch-apps_ymir-sdl3_src_app_services_display__service.cpp @@ -0,0 +1,12 @@ +--- apps/ymir-sdl3/src/app/services/display_service.cpp.orig 2026-06-21 23:44:48 UTC ++++ apps/ymir-sdl3/src/app/services/display_service.cpp +@@ -9,8 +9,8 @@ + #include + + #include +-#include +-#include ++#include ++#include + #include + #include diff --git a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt index 607ae6341003..f6a067a708db 100644 --- a/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt +++ b/emulators/Ymir/files/patch-libs_ymir-core_CMakeLists.txt @@ -1,15 +1,14 @@ ---- libs/ymir-core/CMakeLists.txt.orig 2025-10-13 12:04:15 UTC +--- libs/ymir-core/CMakeLists.txt.orig 2026-06-21 23:49:19 UTC +++ libs/ymir-core/CMakeLists.txt -@@ -289,10 +289,12 @@ target_compile_features(ymir-core PUBLIC cxx_std_20) +@@ -313,8 +313,11 @@ target_compile_features(ymir-core PUBLIC cxx_std_20) ) target_compile_features(ymir-core PUBLIC cxx_std_20) +find_package(Threads REQUIRED) - find_package(fmt CONFIG REQUIRED) - ++ ## Add dependencies target_link_libraries(ymir-core PUBLIC + Threads::Threads fmt::fmt mio concurrentqueue diff --git a/emulators/Ymir/files/patch-vendor_CMakeLists.txt b/emulators/Ymir/files/patch-vendor_CMakeLists.txt index 0361e0f32358..726301e4752b 100644 --- a/emulators/Ymir/files/patch-vendor_CMakeLists.txt +++ b/emulators/Ymir/files/patch-vendor_CMakeLists.txt @@ -1,39 +1,55 @@ ---- vendor/CMakeLists.txt.orig 2026-04-26 08:01:25 UTC +--- vendor/CMakeLists.txt.orig 2026-06-21 14:11:27 UTC +++ vendor/CMakeLists.txt -@@ -28,27 +28,31 @@ message(STATUS "==> concurrentqueue") +@@ -25,6 +25,8 @@ message(STATUS "Adding vendored libraries") + + message(STATUS "Adding vendored libraries") + ++find_package(PkgConfig REQUIRED) ++ + #################################################################################################### + # Dependencies used by ymir-core + +@@ -37,20 +39,22 @@ message(STATUS "==> libfmt") + + # {fmt} - https://github.com/fmtlib/fmt + message(STATUS "==> libfmt") +-set(FMT_MODULE OFF) +-add_subdirectory(fmt) ++find_package(fmt CONFIG REQUIRED GLOBAL) + # concurrentqueue - https://github.com/cameron314/concurrentqueue - # - Not available as a vcpkg port message(STATUS "==> concurrentqueue") -add_subdirectory(concurrentqueue EXCLUDE_FROM_ALL) +find_package(concurrentqueue REQUIRED GLOBAL) +add_library(concurrentqueue ALIAS concurrentqueue::concurrentqueue) - # dear ImGui - https://github.com/ocornut/imgui - # - Using the docking branch - message(STATUS "==> dear ImGui") --add_subdirectory(imgui EXCLUDE_FROM_ALL) -+find_package(imgui REQUIRED GLOBAL) - # xxHash - https://github.com/Cyan4973/xxHash - # - Unable to configure AVX2 support message(STATUS "==> xxHash") -add_subdirectory(xxHash EXCLUDE_FROM_ALL) +pkg_check_modules(libxxhash REQUIRED IMPORTED_TARGET GLOBAL libxxhash) +add_library(xxHash::xxHash ALIAS PkgConfig::libxxhash) - # lz4 - https://github.com/lz4/lz4 - # - Unable to configure AVX2 support - message(STATUS "==> lz4") --add_subdirectory(lz4 EXCLUDE_FROM_ALL) -+pkg_check_modules(liblz4 REQUIRED IMPORTED_TARGET GLOBAL liblz4) -+add_library(lz4::lz4 ALIAS PkgConfig::liblz4) - # libchdr - https://github.com/rtissera/libchdr - # - Not available as a vcpkg port message(STATUS "==> libchdr") -add_subdirectory(libchdr) +pkg_check_modules(libchdr REQUIRED IMPORTED_TARGET GLOBAL libchdr) +add_library(chdr-static ALIAS PkgConfig::libchdr) + #################################################################################################### + # Other dependencies +@@ -59,12 +63,13 @@ if (NOT Ymir_LIBRARY_ONLY) + # dear ImGui - https://github.com/ocornut/imgui + # - Using the docking branch + message(STATUS "==> dear ImGui") +- add_subdirectory(imgui EXCLUDE_FROM_ALL) ++ find_package(imgui REQUIRED GLOBAL) + + # lz4 - https://github.com/lz4/lz4 + # - Unable to configure AVX2 support from vcpkg + message(STATUS "==> lz4") +- add_subdirectory(lz4 EXCLUDE_FROM_ALL) ++ pkg_check_modules(liblz4 REQUIRED IMPORTED_TARGET GLOBAL liblz4) ++ add_library(lz4::lz4 ALIAS PkgConfig::liblz4) + endif () + # Place vendored library projects under a Vendored folder in Visual Studio solutions - if (MSVC)