diff --git a/emulators/flycast/Makefile b/emulators/flycast/Makefile index f9285161e439..2c8eb537a503 100644 --- a/emulators/flycast/Makefile +++ b/emulators/flycast/Makefile @@ -1,67 +1,74 @@ PORTNAME= flycast DISTVERSIONPREFIX= v DISTVERSION= 2.4 PORTREVISION= 1 CATEGORIES= emulators MAINTAINER= bsdcode@disroot.org COMMENT= Multi-platform Sega Dreamcast emulator WWW= https://github.com/flyinghead/flycast LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libchdr.so:devel/libchdr \ libcurl.so:ftp/curl \ libminiupnpc.so:net/miniupnpc \ libzip.so:archivers/libzip \ libzstd.so:archivers/zstd -USES= cmake compiler:c++17-lang lua:52+ pkgconfig sdl +USES= cmake compiler:c++17-lang pkgconfig sdl USE_GITHUB= yes GH_ACCOUNT= flyinghead USE_SDL= sdl2 .include "${.CURDIR}/Makefile.tuples" -OPTIONS_DEFINE= DOCS OPENMP VULKAN -OPTIONS_DEFAULT= ALSA AO OPENMP OSS VULKAN +OPTIONS_DEFINE= DOCS LUA OPENMP VULKAN +OPTIONS_DEFAULT= ALSA AO LUA OPENMP OSS VULKAN OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA AO OSS PULSEAUDIO +# building with lua support fails on i386, see also +# https://github.com/vinniefalco/LuaBridge/issues/302 +OPTIONS_EXCLUDE_i386= LUA + VULKAN_DESC= Build with Vulkan support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL= USE_ALSA AO_LIB_DEPENDS= libao.so:audio/libao AO_CMAKE_BOOL= USE_AO +LUA_USES= lua:52+ +LUA_CMAKE_BOOL= USE_LUA + OPENMP_CMAKE_BOOL= USE_OPENMP OSS_CMAKE_BOOL= USE_OSS PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSEAUDIO VULKAN_BUILD_DEPENDS= glslang:graphics/glslang \ vulkan-headers>0:graphics/vulkan-headers VULKAN_CMAKE_BOOL= USE_HOST_GLSLANG USE_VULKAN post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} (cd ${WRKSRC}/docs && \ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) # For maintainer (do not forget to clean up Makefile.tuples afterwards to # remove useless submodules) Makefile.tuples:: ${RM} -f ${.CURDIR}/Makefile.tuples ${RM} -rf ${WRKDIR}/.maintainer.checkout ${MKDIR} ${WRKDIR}/.maintainer.checkout (cd ${WRKDIR}/.maintainer.checkout && \ git clone --recursive --branch=${DISTVERSIONPREFIX}${DISTVERSION} \ https://github.com/${GH_ACCOUNT}/${PORTNAME} . && \ ${SH} ${FILESDIR}/gen_gh_tuple.sh > ${.CURDIR}/Makefile.tuples) .include diff --git a/emulators/flycast/files/patch-CMakeLists.txt b/emulators/flycast/files/patch-CMakeLists.txt index 1c9626e3d7e4..8fdc9d16811a 100644 --- a/emulators/flycast/files/patch-CMakeLists.txt +++ b/emulators/flycast/files/patch-CMakeLists.txt @@ -1,57 +1,66 @@ --- CMakeLists.txt.orig 2024-10-21 14:13:00 UTC +++ CMakeLists.txt @@ -410,9 +410,13 @@ endif() target_link_libraries(${PROJECT_NAME} PRIVATE glslang::glslang-default-resource-limits glslang::SPIRV) endif() +if(USE_OSS) + target_compile_definitions(${PROJECT_NAME} PRIVATE USE_OSS) +endif() + if(NOT LIBRETRO) find_package(ALSA) - if(ALSA_FOUND AND NOT ANDROID) + if(USE_ALSA AND ALSA_FOUND AND NOT ANDROID) target_compile_definitions(${PROJECT_NAME} PRIVATE USE_ALSA) target_include_directories(${PROJECT_NAME} PRIVATE ${ALSA_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} PRIVATE ${ALSA_LIBRARIES}) +@@ -463,7 +467,7 @@ if(NOT LIBRETRO) + endif() + + find_package(Lua 5.2) +- if(NOT APPLE AND LUA_FOUND) ++ if(USE_LUA AND NOT APPLE AND LUA_FOUND) + target_compile_definitions(${PROJECT_NAME} PRIVATE USE_LUA) + target_include_directories(${PROJECT_NAME} PRIVATE ${LUA_INCLUDE_DIR} core/deps/luabridge/Source) + list(TRANSFORM LUA_LIBRARIES REPLACE "\.dll" "") @@ -471,9 +475,8 @@ endif() endif() endif() -add_subdirectory(core/deps/libchdr EXCLUDE_FROM_ALL) -target_link_libraries(${PROJECT_NAME} PRIVATE chdr-static) -target_include_directories(${PROJECT_NAME} PRIVATE core/deps/libchdr/include) +pkg_check_modules(libchdr REQUIRED libchdr) +target_link_libraries(${PROJECT_NAME} PRIVATE ${libchdr_LINK_LIBRARIES}) if(NOT WITH_SYSTEM_ZLIB) set(ZLIB_RELATIVE_PATH "core/deps/libchdr/deps/zlib-1.3.1") @@ -490,7 +493,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND find_package(PkgConfig) if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND NOT LIBRETRO) pkg_check_modules(AO IMPORTED_TARGET ao) - if(AO_FOUND) + if(USE_AO AND AO_FOUND) target_compile_definitions(${PROJECT_NAME} PRIVATE USE_LIBAO) target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::AO) endif() @@ -510,7 +513,7 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND endif() pkg_check_modules(LIBPULSE IMPORTED_TARGET libpulse) - if(LIBPULSE_FOUND) + if(USE_PULSEAUDIO AND LIBPULSE_FOUND) target_compile_definitions(${PROJECT_NAME} PRIVATE USE_PULSEAUDIO) target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LIBPULSE) endif() @@ -1338,8 +1341,7 @@ if(USE_VULKAN) target_compile_definitions(${PROJECT_NAME} PUBLIC VK_USE_PLATFORM_METAL_EXT) endif() - add_subdirectory(core/deps/Vulkan-Headers) - target_link_libraries(${PROJECT_NAME} PRIVATE Vulkan::Headers) + find_package(VulkanHeaders) add_subdirectory(core/deps/VulkanMemoryAllocator) target_compile_options(VulkanMemoryAllocator INTERFACE $<$,$>:-Wno-nullability-completeness>)