Skip to content
Snippets Groups Projects
Commit 4a7895fb authored by Dmitry Marakasov's avatar Dmitry Marakasov
Browse files

devel/sdl3: add port: Cross-platform multimedia development API, version 3 preview

parent 66bd68f3
No related branches found
No related tags found
No related merge requests found
......@@ -7820,6 +7820,7 @@
SUBDIR += sdl12-compat
SUBDIR += sdl20
SUBDIR += sdl2pp
SUBDIR += sdl3
SUBDIR += sdl_console
SUBDIR += sdlmm
SUBDIR += sdlskk
......
PORTNAME= sdl3
DISTVERSION= 3.1.2
CATEGORIES= devel
MAINTAINER= amdmi3@FreeBSD.org
COMMENT= Cross-platform multimedia development API (version 3 preview)
WWW= https://www.libsdl.org/ \
https://github.com/libsdl-org/SDL
LICENSE= ZLIB
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
USES= cmake iconv pkgconfig
USE_GITHUB= yes
GH_ACCOUNT= libsdl-org
GH_PROJECT= SDL
GH_TAGNAME= 9a4fc81
CMAKE_OFF= SDL_RPATH
CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_Git
USE_LDCONFIG= yes
PORTSCOUT= limitw:1,even
OPTIONS_DEFINE= CSD DBUS FCITX IBUS JOYSTICK HIDAPI \
SAMPLERATE UDEV
OPTIONS_GROUP= AUDIO VIDEO
OPTIONS_GROUP_AUDIO= ALSA JACK OSS PIPEWIRE PULSEAUDIO SNDIO
OPTIONS_GROUP_VIDEO= KMSDRM OPENGL OPENGLES VULKAN \
WAYLAND X11
OPTIONS_DEFAULT= JOYSTICK OSS KMSDRM OPENGL \
OPENGLES VULKAN WAYLAND X11
OPTIONS_DEFINE_powerpc= ALTIVEC
OPTIONS_DEFINE_powerpc64= ALTIVEC
OPTIONS_DEFAULT_powerpc= ALTIVEC
OPTIONS_DEFAULT_powerpc64= ALTIVEC
AUDIO_DESC= Audio drivers
VIDEO_DESC= Video drivers
CSD_DESC= Client-side decorations for Wayland via libdecor
FCITX_DESC= fcitx support
HIDAPI_DESC= Use HIDAPI for low level joystick drivers
IBUS_DESC= IBus support
JOYSTICK_DESC= Joystick and haptic support
KMSDRM_DESC= KMSDRM display support
OPENGLES_DESC= OpenGL ES rendering support
UDEV_DESC= Use udev for input device detection
VULKAN_DESC= Vulkan rendering support
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_CMAKE_BOOL= SDL_ALSA
ALSA_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_ALSA
ALTIVEC_CMAKE_BOOL= SDL_ALTIVEC
CSD_LIB_DEPENDS= libdecor-0.so:x11-toolkits/libdecor
CSD_CMAKE_BOOL= SDL_WAYLAND_LIBDECOR
CSD_IMPLIES= WAYLAND
DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
DBUS_CMAKE_BOOL= SDL_DBUS
FCITX_LIB_DEPENDS= libfcitx-config.so:chinese/fcitx
FCITX_IMPLIES= DBUS
HIDAPI_CMAKE_BOOL= SDL_HIDAPI
HIDAPI_IMPLIES= JOYSTICK
IBUS_LIB_DEPENDS= libibus-1.0.so:textproc/ibus
IBUS_CMAKE_BOOL= SDL_IBUS
IBUS_IMPLIES= DBUS
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CMAKE_BOOL= SDL_JACK
JOYSTICK_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
JOYSTICK_LIB_DEPENDS= libinotify.so:devel/libinotify
JOYSTICK_CMAKE_BOOL= SDL_HIDAPI_JOYSTICK SDL_HIDAPI_LIBUSB SDL_VIRTUAL_JOYSTICK
KMSDRM_USES= gl
KMSDRM_USE= GL=gbm
KMSDRM_CMAKE_BOOL= SDL_KMSDRM
OPENGL_USES= gl
OPENGL_USE= GL=opengl
OPENGL_CMAKE_BOOL= SDL_OPENGL
OPENGLES_USES= gl
OPENGLES_USE= GL=egl,glesv1,glesv2
OPENGLES_CMAKE_BOOL= SDL_OPENGLES
OSS_CMAKE_BOOL= SDL_OSS
PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_CMAKE_BOOL= SDL_PIPEWIRE
PIPEWIRE_BROKEN= does not build
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL= SDL_PULSEAUDIO
SAMPLERATE_LIB_DEPENDS= libsamplerate.so:audio/libsamplerate
SAMPLERATE_CMAKE_BOOL= SDL_LIBSAMPLERATE
SAMPLERATE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_SampleRate
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_CMAKE_BOOL= SDL_SNDIO
UDEV_BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto
UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
UDEV_CMAKE_BOOL= SDL_LIBUDEV
VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader
VULKAN_CMAKE_BOOL= SDL_VULKAN SDL_RENDER_VULKAN
WAYLAND_BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols \
${LOCALBASE}/include/linux/input.h:devel/evdev-proto
WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland \
libxkbcommon.so:x11/libxkbcommon
WAYLAND_CMAKE_BOOL= SDL_WAYLAND
WAYLAND_IMPLIES= OPENGLES
X11_USES= xorg
X11_USE= XORG=x11,xcursor,xext,xi,xfixes,xrandr,xrender,xscrnsaver
X11_CMAKE_BOOL= SDL_X11
.include <bsd.port.options.mk>
# Similar to x11/pixman
.if ${ARCH} == "armv6" || ${ARCH} == "armv7"
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
CFLAGS+= -B${LOCALBASE}/bin -no-integrated-as
.endif
post-patch:
@${REINPLACE_CMD} -e '/dep_option.*Dynamically load/ s|ON|OFF|' \
${WRKSRC}/CMakeLists.txt
post-patch-FCITX-off:
@${REINPLACE_CMD} -e 's|HAVE_FCITX TRUE|HAVE_FCITX FALSE|g' \
${WRKSRC}/CMakeLists.txt
.include <bsd.port.mk>
TIMESTAMP = 1717772637
SHA256 (libsdl-org-SDL-3.1.2-9a4fc81_GH0.tar.gz) = 238a7920b1cd053cee9f28f185abd6e82a6a1dfc72669aa3400625c0582ecaf5
SIZE (libsdl-org-SDL-3.1.2-9a4fc81_GH0.tar.gz) = 6929806
--- CMakeLists.txt.orig 2024-06-06 17:59:48 UTC
+++ CMakeLists.txt
@@ -280,7 +280,7 @@ set_option(SDL_ASSEMBLY "Enable assembly ro
option_string(SDL_ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto")
set_option(SDL_ASSEMBLY "Enable assembly routines" ${SDL_ASSEMBLY_DEFAULT})
-dep_option(SDL_AVX "Use AVX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
+#[[ dep_option(SDL_AVX "Use AVX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
dep_option(SDL_AVX2 "Use AVX2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
dep_option(SDL_AVX512F "Use AVX512F assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
dep_option(SDL_SSE "Use SSE assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
@@ -289,7 +289,7 @@ dep_option(SDL_MMX "Use MMX assembly r
dep_option(SDL_SSE4_1 "Use SSE4.1 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
dep_option(SDL_SSE4_2 "Use SSE4.2 assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
dep_option(SDL_MMX "Use MMX assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_X86 OR SDL_CPU_X64" OFF)
-dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_POWERPC32 OR SDL_CPU_POWERPC64" OFF)
+dep_option(SDL_ALTIVEC "Use Altivec assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_POWERPC32 OR SDL_CPU_POWERPC64" OFF) ]]
dep_option(SDL_ARMSIMD "Use SIMD assembly blitters on ARM" OFF "SDL_ASSEMBLY;SDL_CPU_ARM32" OFF)
dep_option(SDL_ARMNEON "Use NEON assembly routines" ON "SDL_ASSEMBLY;SDL_CPU_ARM32 OR SDL_CPU_ARM64" OFF)
dep_option(SDL_ARMNEON_BLITTERS "Use NEON assembly blitters on ARM32" OFF "SDL_VIDEO;SDL_ASSEMBLY;SDL_ARMNEON;SDL_CPU_ARM32" OFF)
@@ -639,6 +639,7 @@ if(SDL_ASSEMBLY)
if(SDL_ASSEMBLY)
set(HAVE_ASSEMBLY TRUE)
+#[[
if(SDL_MMX)
cmake_push_check_state()
if(USE_GCC OR USE_CLANG OR USE_INTELCC)
@@ -830,6 +831,7 @@ if(SDL_ASSEMBLY)
set(HAVE_AVX512F TRUE)
endif()
endif()
+ ]]
if(USE_GCC OR USE_CLANG)
# TODO: Those all seem to be quite GCC specific - needs to be
This library is designed to make it easy to write games that run on UNIX,
Win32, MacOS X and other platforms using the various native high-performance
media interfaces (for video, audio, etc) and presenting a single source-code
level API to your application. This is a fairly low level API, but using this,
completely portable applications can be written with a great deal of
flexibility.
include/SDL3/SDL.h
include/SDL3/SDL_assert.h
include/SDL3/SDL_atomic.h
include/SDL3/SDL_audio.h
include/SDL3/SDL_begin_code.h
include/SDL3/SDL_bits.h
include/SDL3/SDL_blendmode.h
include/SDL3/SDL_camera.h
include/SDL3/SDL_clipboard.h
include/SDL3/SDL_close_code.h
include/SDL3/SDL_copying.h
include/SDL3/SDL_cpuinfo.h
include/SDL3/SDL_dialog.h
include/SDL3/SDL_egl.h
include/SDL3/SDL_endian.h
include/SDL3/SDL_error.h
include/SDL3/SDL_events.h
include/SDL3/SDL_filesystem.h
include/SDL3/SDL_gamepad.h
include/SDL3/SDL_guid.h
include/SDL3/SDL_haptic.h
include/SDL3/SDL_hidapi.h
include/SDL3/SDL_hints.h
include/SDL3/SDL_init.h
include/SDL3/SDL_intrin.h
include/SDL3/SDL_iostream.h
include/SDL3/SDL_joystick.h
include/SDL3/SDL_keyboard.h
include/SDL3/SDL_keycode.h
include/SDL3/SDL_loadso.h
include/SDL3/SDL_locale.h
include/SDL3/SDL_log.h
include/SDL3/SDL_main.h
include/SDL3/SDL_main_impl.h
include/SDL3/SDL_messagebox.h
include/SDL3/SDL_metal.h
include/SDL3/SDL_misc.h
include/SDL3/SDL_mouse.h
include/SDL3/SDL_mutex.h
include/SDL3/SDL_oldnames.h
include/SDL3/SDL_opengl.h
include/SDL3/SDL_opengl_glext.h
include/SDL3/SDL_opengles.h
include/SDL3/SDL_opengles2.h
include/SDL3/SDL_opengles2_gl2.h
include/SDL3/SDL_opengles2_gl2ext.h
include/SDL3/SDL_opengles2_gl2platform.h
include/SDL3/SDL_opengles2_khrplatform.h
include/SDL3/SDL_pen.h
include/SDL3/SDL_pixels.h
include/SDL3/SDL_platform.h
include/SDL3/SDL_platform_defines.h
include/SDL3/SDL_power.h
include/SDL3/SDL_properties.h
include/SDL3/SDL_rect.h
include/SDL3/SDL_render.h
include/SDL3/SDL_revision.h
include/SDL3/SDL_scancode.h
include/SDL3/SDL_sensor.h
include/SDL3/SDL_stdinc.h
include/SDL3/SDL_storage.h
include/SDL3/SDL_surface.h
include/SDL3/SDL_system.h
include/SDL3/SDL_test.h
include/SDL3/SDL_test_assert.h
include/SDL3/SDL_test_common.h
include/SDL3/SDL_test_compare.h
include/SDL3/SDL_test_crc32.h
include/SDL3/SDL_test_font.h
include/SDL3/SDL_test_fuzzer.h
include/SDL3/SDL_test_harness.h
include/SDL3/SDL_test_log.h
include/SDL3/SDL_test_md5.h
include/SDL3/SDL_test_memory.h
include/SDL3/SDL_test_random.h
include/SDL3/SDL_thread.h
include/SDL3/SDL_time.h
include/SDL3/SDL_timer.h
include/SDL3/SDL_touch.h
include/SDL3/SDL_version.h
include/SDL3/SDL_video.h
include/SDL3/SDL_vulkan.h
lib/cmake/SDL3/SDL3Config.cmake
lib/cmake/SDL3/SDL3ConfigVersion.cmake
lib/cmake/SDL3/SDL3headersTargets.cmake
lib/cmake/SDL3/SDL3sharedTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/SDL3/SDL3sharedTargets.cmake
lib/cmake/SDL3/SDL3testTargets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/SDL3/SDL3testTargets.cmake
lib/libSDL3.so
lib/libSDL3.so.0
lib/libSDL3.so.0.1.2
lib/libSDL3_test.a
libdata/pkgconfig/sdl3.pc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment