Here is an inline diff to update emulators/flycast to 2.2, which was
released on October 28, 2023.

release notes:
https://github.com/flyinghead/flycast/releases/tag/v2.2

- use DIST_TUPLE for the git submodules, so I do not need to roll
  my own tarball. delete dist target and SITES.
- move SUBST_CMD fropm do-gen to pre-configure and add in a line to
  delete bundled deps. I omitted deletion of the git submodules deps
  (e.g., SDL, breakpad, glslang...) since those directories would be
  empty anyways.
- garbage collect patch-core_rend_vulkan_compiler_cpp patch since it
  builds fine without this.
- in CMakeLists.txt patch, statically link in
  glslang-default-resource-limits.a, as provided by graphics/glslang.
  This shows up during linking as:
--8<---------------cut here---------------start------------->8---
  /usr/local/lib/libglslang.so.4.0
  /usr/local/lib/libglslang-default-resource-limits.a
  /usr/local/lib/libSPIRV.so.3.0
--8<---------------cut here---------------end--------------->8---

Runtime works in my testing.

Feedback and tests are welcome. OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/flycast/Makefile,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 Makefile
--- Makefile    21 Sep 2023 13:10:26 -0000      1.5
+++ Makefile    5 Nov 2023 01:35:33 -0000
@@ -5,10 +5,11 @@ ONLY_FOR_ARCHS =      amd64
 
 COMMENT =      emulator for Sega Dreamcast and Sega Naomi based on reicast
 
-V =            2.1pl20230303
+V =            2.2
 DISTNAME =     flycast-${V}
-COMMIT =       27b6bafd0f003c8f8bcd1fb3bfd48a3523b298f5
-REVISION =     1
+DIST_TUPLE +=  github flyinghead flycast v${V} . # GPLv2
+DIST_TUPLE +=  github GPUOpen-LibrariesAndSDKs VulkanMemoryAllocator 
6eb62e1515072827db992c2befd80b71b2d04329 core/deps/VulkanMemoryAllocator # MIT
+DIST_TUPLE +=  github KhronosGroup Vulkan-Headers 
85c2334e92e215cce34e8e0ed8b2dce4700f4a50 core/deps/Vulkan-Headers # Apache 2.0
 
 CATEGORIES =   emulators games
 
@@ -28,8 +29,6 @@ PERMIT_PACKAGE =      Yes
 WANTLIB += ${COMPILER_LIBCXX} GL SDL2 SPIRV ao c curl chdr glslang
 WANTLIB += lua${MODLUA_VERSION} m miniupnpc pulse vulkan xxhash z zip
 
-SITES =                https://namtsui.com/source/
-
 NO_TEST =      Yes
 
 FIX_CRLF_FILES =       core/deps/VulkanMemoryAllocator/include/vk_mem_alloc.h
@@ -42,9 +41,6 @@ MODULES =             devel/cmake \
 
 MODLUA_VERSION =       5.3
 
-WRKDIST =      ${WRKDIR}/flycast
-WRKSRC =       ${WRKDIST}
-
 USE_WXNEEDED = Yes
 
 BUILD_DEPENDS =        lang/luabridge
@@ -59,22 +55,11 @@ LIB_DEPENDS =       archivers/libzip \
                net/miniupnp/miniupnpc \
                sysutils/xxhash
 
-do-gen:
+pre-configure:
        ${SUBST_CMD} ${WRKSRC}/CMakeLists.txt
-
-# needs: devel/git and archivers/gtar
-D =    /tmp/flycast
-dist:
-       cd /tmp && git clone https://github.com/flyinghead/flycast.git; \
-       cd ${D} && git checkout ${COMMIT}; \
-       git rm -r --cached core/deps/{SDL,breakpad,glslang,libchdr,luabridge}; \
-       git submodule init; \
-       git submodule update; \
-       rm -rfv 
core/deps/{dirent,libretro-common,libzip,miniupnpc,oboe,xxHash}; \
-       cd /tmp && gtar czvf flycast-${V}.tar.gz --exclude-vcs flycast; \
-       scp flycast-${V}.tar.gz train:source/; \
-       rm /tmp/flycast-${V}.tar.gz; \
-       rm -rfv ${D};
+.for D in dirent libretro-common libzip miniupnpc xxHash
+       rm -rfv ${WRKSRC}/core/deps/${D}
+.endfor
 
 do-install:
        ${INSTALL_PROGRAM} ${WRKBUILD}/flycast \
Index: distinfo
===================================================================
RCS file: /cvs/ports/emulators/flycast/distinfo,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 distinfo
--- distinfo    30 Apr 2023 19:39:39 -0000      1.2
+++ distinfo    5 Nov 2023 01:35:33 -0000
@@ -1,2 +1,6 @@
-SHA256 (flycast-2.1pl20230303.tar.gz) = 
F4AjWMwKO1hFJEeUzZOMf7i3drm74+4UtPwIMRX3N3o=
-SIZE (flycast-2.1pl20230303.tar.gz) = 14886805
+SHA256 
(GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-6eb62e1515072827db992c2befd80b71b2d04329.tar.gz)
 = mv5GzgJoF5nKkH+3mZD/J2h337YyTUjaIbIVuSZJNo0=
+SHA256 
(KhronosGroup-Vulkan-Headers-85c2334e92e215cce34e8e0ed8b2dce4700f4a50.tar.gz) = 
m4W9gEz8ABK65g9bVAlH/CBxYDtUfOZGdPuMJKn2qiU=
+SHA256 (flyinghead-flycast-v2.2.tar.gz) = 
O4275BXyUr/qPWVZQjq2WB79j/CKtRshrsb9tmky0yA=
+SIZE 
(GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-6eb62e1515072827db992c2befd80b71b2d04329.tar.gz)
 = 877925
+SIZE 
(KhronosGroup-Vulkan-Headers-85c2334e92e215cce34e8e0ed8b2dce4700f4a50.tar.gz) = 
2046570
+SIZE (flyinghead-flycast-v2.2.tar.gz) = 14510385
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/emulators/flycast/patches/patch-CMakeLists_txt,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt        30 Apr 2023 19:39:39 -0000      1.2
+++ patches/patch-CMakeLists_txt        5 Nov 2023 01:35:33 -0000
@@ -5,8 +5,8 @@ link against -lSDL2 instead of libSDL2.a
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -6,6 +6,11 @@ if(CCACHE_PROGRAM)
-       set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM} CACHE STRING 
"Compiler launcher for CXX.")
+@@ -44,6 +44,11 @@ if(NOT APPLE AND (NOT UNIX OR CMAKE_SYSTEM_NAME MATCHE
+       set(USE_HOST_SDL_DEFAULT ON)
  endif()
  
 +include_directories( ${LOCALBASE}/include
@@ -17,7 +17,7 @@ Index: CMakeLists.txt
  option(ENABLE_CTEST "Enables unit tests" OFF)
  option(ENABLE_OPROFILE "Enable OProfile" OFF)
  option(TEST_AUTOMATION "Enable test automation" OFF)
-@@ -325,8 +330,11 @@ endif()
+@@ -366,8 +371,11 @@ endif()
  
  option(BUILD_SHARED_LIBS "Build shared library" OFF)
  set(XXHASH_BUILD_XXHSUM OFF CACHE BOOL "Build the xxhsum binary")
@@ -31,18 +31,22 @@ Index: CMakeLists.txt
  
  option(BUILD_SHARED_LIBS "Build shared library" OFF)
  add_subdirectory(core/deps/glm)
-@@ -339,8 +347,29 @@ if(USE_VULKAN)
-       option(ENABLE_GLSLANG_BINARIES "Builds glslangValidator and 
spirv-remap" OFF)
+@@ -380,8 +388,38 @@ if(USE_VULKAN)
+       option(ENABLE_GLSLANG_BINARIES "Builds glslang and spirv-remap" OFF)
        option(ENABLE_HLSL "Enables HLSL input support" OFF)
        option(ENABLE_PCH "Enables Precompiled header" OFF)
 -      add_subdirectory(core/deps/glslang EXCLUDE_FROM_ALL)
--      target_link_libraries(${PROJECT_NAME} PRIVATE SPIRV)
+-      target_link_libraries(${PROJECT_NAME} PRIVATE 
glslang-default-resource-limits SPIRV)
 +      find_library(GLSLANG_LIBRARIES glslang)
 +      if (GLSLANG_LIBRARIES)
 +              set(GLSLANG_FOUND 1)
 +              find_path(GLSLANG_INCLUDE_DIR GlslangToSpv.h PATH_SUFFIXES 
glslang/SPIRV)
 +              set(GLSLANG_INCLUDE_DIR "${GLSLANG_INCLUDE_DIR}/..")
 +      endif(GLSLANG_LIBRARIES)
++      find_library(GLSLANG_RESOURCE_LIMITS_LIBRARIES 
glslang-default-resource-limits)
++      if (GLSLANG_RESOURCE_LIMITS_LIBRARIES)
++              set(GLSLANG_RESOURCE_LIMITS_FOUND 1)
++      endif (GLSLANG_RESOURCE_LIMITS_LIBRARIES)
 +      find_library(SPIRV_LIBRARIES SPIRV)
 +      if (SPIRV_LIBRARIES)
 +              set(SPIRV_FOUND 1)
@@ -53,21 +57,26 @@ Index: CMakeLists.txt
 +      else()
 +              message(STATUS "glslang library not found.")
 +      endif()
++      if (GLSLANG_RESOURCE_LIMITS_FOUND)
++              message(STATUS "Found glslang-default-resource-limits.a: 
${GLSLANG_RESOURCE_LIMITS_LIBRARIES}")
++      else()
++              message(STATUS "glslang-default-resource-limits.a not found.")
++      endif()
 +      if (SPIRV_FOUND)
 +              message(STATUS "Found SPIRV: ${SPIRV_LIBRARIES}")
 +      else()
 +              message(STATUS "spirv library not found.")
 +      endif()
 +      target_include_directories(${PROJECT_NAME} PRIVATE 
${GLSLANG_INCLUDE_DIR})
-+      target_link_libraries(${PROJECT_NAME} PRIVATE ${GLSLANG_LIBRARIES} 
${SPIRV_LIBRARIES})
++      target_link_libraries(${PROJECT_NAME} PRIVATE ${GLSLANG_LIBRARIES} 
${GLSLANG_RESOURCE_LIMITS_LIBRARIES} ${SPIRV_LIBRARIES})
  endif()
  
  if(NOT LIBRETRO)
-@@ -356,29 +385,10 @@ if(NOT LIBRETRO)
+@@ -397,29 +435,10 @@ if(NOT LIBRETRO)
        endif()
  
        if(NOT ANDROID AND NOT IOS)
--              if(NOT APPLE AND (NOT UNIX OR CMAKE_SYSTEM_NAME MATCHES 
"(FreeBSD|OpenBSD|NetBSD)"))
+-              if(USE_HOST_SDL)
 -                      find_package(SDL2)
 -              endif()
 -              if(NOT SDL2_FOUND)
@@ -97,7 +106,7 @@ Index: CMakeLists.txt
                target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL 
USE_SDL_AUDIO)
                target_sources(${PROJECT_NAME} PRIVATE core/sdl/sdl.cpp 
core/sdl/sdl.h core/sdl/sdl_gamepad.h core/sdl/sdl_keyboard.h)
  
-@@ -403,10 +413,6 @@ if(NOT LIBRETRO)
+@@ -444,10 +463,6 @@ if(NOT LIBRETRO)
        endif()
  endif()
  
@@ -108,7 +117,7 @@ Index: CMakeLists.txt
  if(NOT WITH_SYSTEM_ZLIB)
        target_include_directories(${PROJECT_NAME} PRIVATE 
"${CMAKE_CURRENT_SOURCE_DIR}/core/deps/libchdr/deps/zlib-1.2.11")
        target_link_libraries(${PROJECT_NAME} PRIVATE zlib)
-@@ -521,7 +527,7 @@ if(UNIX AND NOT APPLE AND NOT ANDROID)
+@@ -562,7 +577,7 @@ if(UNIX AND NOT APPLE AND NOT ANDROID)
                target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBRT})
        endif()
  
Index: patches/patch-core_deps_VulkanMemoryAllocator_include_vk_mem_alloc_h
===================================================================
RCS file: 
/cvs/ports/emulators/flycast/patches/patch-core_deps_VulkanMemoryAllocator_include_vk_mem_alloc_h,v
retrieving revision 1.1.1.1
diff -u -p -u -p -r1.1.1.1 
patch-core_deps_VulkanMemoryAllocator_include_vk_mem_alloc_h
--- patches/patch-core_deps_VulkanMemoryAllocator_include_vk_mem_alloc_h        
25 Apr 2023 19:31:43 -0000      1.1.1.1
+++ patches/patch-core_deps_VulkanMemoryAllocator_include_vk_mem_alloc_h        
5 Nov 2023 01:35:33 -0000
@@ -3,7 +3,7 @@ define vma_aligned_alloc
 Index: core/deps/VulkanMemoryAllocator/include/vk_mem_alloc.h
 --- core/deps/VulkanMemoryAllocator/include/vk_mem_alloc.h.orig
 +++ core/deps/VulkanMemoryAllocator/include/vk_mem_alloc.h
-@@ -2669,7 +2669,7 @@ static void* vma_aligned_alloc(size_t alignment, size_
+@@ -2757,7 +2757,7 @@ static void* vma_aligned_alloc(size_t alignment, size_
  
      return memalign(alignment, size);
  }
Index: patches/patch-core_rend_vulkan_compiler_cpp
===================================================================
RCS file: patches/patch-core_rend_vulkan_compiler_cpp
diff -N patches/patch-core_rend_vulkan_compiler_cpp
--- patches/patch-core_rend_vulkan_compiler_cpp 30 Apr 2023 19:39:39 -0000      
1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-error: excess elements in scalar initializer
-
-undo 8d0654c323028d9d31f67c51d65e99b410a91750 as done in gentoo port
-
-see:
-https://github.com/gentoo/guru/commit/a960b203c4ba687f0eb08e774d919982e791535c
-
-Index: core/rend/vulkan/compiler.cpp
---- core/rend/vulkan/compiler.cpp.orig
-+++ core/rend/vulkan/compiler.cpp
-@@ -115,6 +115,15 @@ static const TBuiltInResource DefaultTBuiltInResource 
-     /* .maxTaskWorkGroupSizeY_NV = */ 1,
-     /* .maxTaskWorkGroupSizeZ_NV = */ 1,
-     /* .maxMeshViewCountNV = */ 4,
-+    /* .maxMeshOutputVerticesEXT = */ 256,
-+    /* .maxMeshOutputPrimitivesEXT = */ 256,
-+    /* .maxMeshWorkGroupSizeX_EXT = */ 128,
-+    /* .maxMeshWorkGroupSizeY_EXT = */ 128,
-+    /* .maxMeshWorkGroupSizeZ_EXT = */ 128,
-+    /* .maxTaskWorkGroupSizeX_EXT = */ 128,
-+    /* .maxTaskWorkGroupSizeY_EXT = */ 128,
-+    /* .maxTaskWorkGroupSizeZ_EXT = */ 128,
-+    /* .maxMeshViewCountEXT = */ 4,
-     /* .maxDualSourceDrawBuffersEXT = */ 1,
- 
-     /* .limits = */ {

Reply via email to