1
0
Fork 0
oh_my_little_overlay/media-libs/libsdl3/libsdl3-3.1.6.ebuild

208 lines
5.8 KiB
Bash
Raw Normal View History

2024-11-23 04:15:11 +05:00
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake-multilib flag-o-matic
DESCRIPTION="Simple Direct Media Layer"
HOMEPAGE="https://www.libsdl.org/"
SRC_URI="https://github.com/libsdl-org/SDL/archive/refs/tags/preview-${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/SDL-preview-${PV}"
LICENSE="ZLIB"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~x86"
IUSE="X alsa +sound cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 \
cpu_flags_x86_sse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 camera custom-cflags dbus debug doc gles1 gles2 +haptic ibus \
jack +joystick kms opengl pipewire pulseaudio sndio static-libs \
test udev +video vulkan wayland xscreensaver"
2024-11-23 04:15:11 +05:00
RESTRICT="!test? ( test )"
REQUIRED_USE="
alsa? ( sound )
haptic? ( joystick )
ibus? ( dbus )
jack? ( sound )
gles1? ( video )
gles2? ( video )
opengl? ( video )
pipewire? ( sound )
pulseaudio? ( sound )
sndio? ( sound )
vulkan? ( video )
wayland? ( gles2 )
xscreensaver? ( X )
"
COMMON_DEPEND="
X? (
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
>=x11-libs/libXcursor-1.1.14[${MULTILIB_USEDEP}]
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
>=x11-libs/libXfixes-6.0.0[${MULTILIB_USEDEP}]
>=x11-libs/libXi-1.7.2[${MULTILIB_USEDEP}]
>=x11-libs/libXrandr-1.4.2[${MULTILIB_USEDEP}]
xscreensaver? ( >=x11-libs/libXScrnSaver-1.2.2-r1[${MULTILIB_USEDEP}] )
)
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
ibus? ( app-i18n/ibus )
jack? ( virtual/jack[${MULTILIB_USEDEP}] )
kms? (
>=x11-libs/libdrm-2.4.82[${MULTILIB_USEDEP}]
>=media-libs/mesa-9.0.0[${MULTILIB_USEDEP}]
)
opengl? (
>=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
>=virtual/glu-9.0-r1[${MULTILIB_USEDEP}]
)
pipewire? ( media-video/pipewire:=[${MULTILIB_USEDEP}] )
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
udev? ( >=virtual/libudev-208:=[${MULTILIB_USEDEP}] )
virtual/libiconv[${MULTILIB_USEDEP}]
wayland? (
>=dev-libs/wayland-1.20[${MULTILIB_USEDEP}]
gui-libs/libdecor[${MULTILIB_USEDEP}]
>=media-libs/mesa-9.1.6[${MULTILIB_USEDEP},wayland]
>=x11-libs/libxkbcommon-0.2.0[${MULTILIB_USEDEP}]
)
"
RDEPEND="
${COMMON_DEPEND}
opengl? ( media-libs/mesa[${MULTILIB_USEDEP},opengl(+)] )
vulkan? (
media-libs/mesa[${MULTILIB_USEDEP},vulkan(+)]
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
)
"
DEPEND="
${COMMON_DEPEND}
gles1? ( media-libs/libglvnd )
gles2? ( media-libs/libglvnd )
ibus? ( dev-libs/glib:2 )
test? ( x11-libs/libX11[${MULTILIB_USEDEP}] )
vulkan? ( dev-util/vulkan-headers )
X? ( x11-base/xorg-proto )
"
BDEPEND="
virtual/pkgconfig
doc? (
app-text/doxygen
media-gfx/graphviz
)
wayland? ( >=dev-util/wayland-scanner-1.20 )
"
src_prepare() {
cmake_src_prepare
# Unbundle some headers.
rm -r src/video/khronos || die
ln -s "${ESYSROOT}/usr/include" src/video/khronos || die
}
src_configure() {
use custom-cflags || strip-flags
local mycmakeargs=(
-DSDL_ALSA=$(usex alsa)
-DSDL_ALSA_SHARED=OFF
-DSDL_ASAN=$(usex debug)
-DSDL_ASSEMBLY=ON
-DSDL_ASSERTIONS=$(usex debug enabled disabled)
-DSDL_AUDIO=$(usex sound)
-DSDL_AVX=$(usex cpu_flags_x86_avx)
-DSDL_AVX2=$(usex cpu_flags_x86_avx2)
-DSDL_AVX512F=$(usex cpu_flags_x86_avx512f)
-DSDL_CAMERA=$(usex camera)
-DSDL_CCACHE=OFF
-DSDL_DBUS=$(usex dbus)
-DSDL_DIALOG=ON
-DSDL_DISABLE_INSTALL=OFF
-DSDL_DISABLE_INSTALL_CPACK=OFF
-DSDL_DISABLE_INSTALL_DOCS=$(usex doc OFF ON)
-DSDL_DISKAUDIO=$(usex sound)
-DSDL_DUMMYAUDIO=$(usex sound)
-DSDL_DUMMYCAMERA=$(usex camera)
-DSDL_DUMMYVIDEO=$(usex video)
2024-11-23 04:15:11 +05:00
-DSDL_EXAMPLES=$(usex doc)
-DSDL_EXAMPLES_LINK_SHARED=OFF
-DSDL_GCC_ATOMICS=ON
-DSDL_GPU=$(usex video)
-DSDL_HAPTIC=$(usex haptic)
-DSDL_IBUS=$(usex ibus)
-DSDL_JACK=$(usex jack)
-DSDL_JACK_SHARED=OFF
-DSDL_JOYSTICK=$(usex joystick)
-DSDL_HIDAPI=ON
-DSDL_KMSDRM=$(usex kms)
-DSDL_KMSDRM_SHARED=OFF
-DSDL_LIBC=ON
-DSDL_LIBICONV=ON
-DSDL_SYSTEM_ICONV=ON
-DSDL_LIBUDEV=$(usex udev)
-DSDL_MMX=$(usex cpu_flags_x86_mmx)
-DSDL_OPENGL=$(usex opengl)
-DSDL_OPENGLES=$(use gles1 || usex gles2 && echo ON || echo OFF)
2024-11-23 04:15:11 +05:00
-DSDL_PIPEWIRE=$(usex pipewire)
-DSDL_PIPEWIRE_SHARED=OFF
-DSDL_PULSEAUDIO=$(usex pulseaudio)
-DSDL_PULSEAUDIO_SHARED=OFF
-DSDL_RENDER=$(usex video)
-DSDL_RENDER_GPU=$(usex video)
2024-11-23 04:15:11 +05:00
-DSDL_RENDER_VULKAN=$(usex vulkan)
-DSDL_RENDER_D3D=OFF
-DSDL_RENDER_D3D11=OFF
-DSDL_RENDER_D3D12=OFF
-DSDL_RENDER_METAL=OFF
2024-11-23 04:15:11 +05:00
-DSDL_RPATH=OFF
-DSDL_RPI=OFF
-DSDL_SNDIO=$(usex sndio)
-DSDL_SNDIO_SHARED=OFF
-DSDL_SSE=$(usex cpu_flags_x86_sse)
-DSDL_SSE2=$(usex cpu_flags_x86_sse2)
-DSDL_SSE3=$(usex cpu_flags_x86_sse3)
-DSDL_SSE4_1=$(usex cpu_flags_x86_sse4_1)
-DSDL_SSE4_2=$(usex cpu_flags_x86_sse4_2)
-DSDL_STATIC=$(usex static-libs)
-DSDL_TESTS=$(usex test)
-DSDL_TESTS_LINK_SHARED=OFF
-DSDL_TEST_LIBRARY=$(usex test)
-DSDL_VIDEO=$(usex video)
-DSDL_VIRTUAL_JOYSTICK=$(usex joystick)
-DSDL_VULKAN=$(usex vulkan)
-DSDL_WAYLAND=$(usex wayland)
-DSDL_WAYLAND_LIBDECOR=$(usex wayland)
-DSDL_WAYLAND_LIBDECOR_SHARED=OFF
-DSDL_WAYLAND_SHARED=OFF
-DSDL_WERROR=$(usex debug)
-DSDL_X11=$(usex X)
-DSDL_X11_SHARED=OFF
-DSDL_X11_XSCRNSAVER=$(usex xscreensaver)
)
cmake-multilib_src_configure
}
src_compile() {
cmake-multilib_src_compile
if use doc; then
cd docs || die
doxygen || die
fi
}
src_test() {
unset SDL_GAMECONTROLLERCONFIG SDL_GAMECONTROLLER_USE_BUTTON_LABELS
cmake-multilib_src_test
}
multilib_src_install_all() {
rm -r "${ED}"/usr/share/licenses/ || die
dodoc {BUGS,README-SDL,WhatsNew}.txt CREDITS.md README.md docs/README*.md
use doc && dodoc -r docs/output/html/
}