summaryrefslogtreecommitdiff
path: root/devel/sdl20/Makefile
blob: 2fc297e699217c7691cb23f4e35f12efa956eb8e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
PORTNAME=	sdl2
DISTVERSION=	2.30.5
CATEGORIES=	devel
MASTER_SITES=	https://github.com/libsdl-org/SDL/releases/download/release-${DISTVERSION}/ \
		https://www.libsdl.org/release/
DISTNAME=	SDL2-${PORTVERSION}

MAINTAINER=	amdmi3@FreeBSD.org
COMMENT=	Cross-platform multimedia development API
WWW=		https://www.libsdl.org/ \
		https://github.com/libsdl-org/SDL

LICENSE=	ZLIB
LICENSE_FILE=	${WRKSRC}/LICENSE.txt

USES=		cmake iconv pkgconfig
CMAKE_OFF=	SDL_ARTS \
		SDL_CCACHE \
		SDL_ESD \
		SDL_LIBICONV \
		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 NAS 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

NAS_LIB_DEPENDS=	libaudio.so:audio/nas
NAS_CMAKE_BOOL=		SDL_NAS

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

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

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,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>