ports/devel/allegro/Makefile
Jason E. Hale 65282872b7 devel/allegro: Fix build with CMake >= 3.31.0
For some reason, the check for XDGAQueryExtension in Xxf86dga was
failing in previous versions of CMake, but it now succeeds, which is the
expected result. It's an oversimplified check, however, that just adds
the library name without path if found.

Just using raw data from pkg_check_modules() results in a similar
problem, which this project does. The ALSA option already had the
usual workaround for this scenario (USES+=localbase:ldflags) in place,
but the JACK option did not. Build would fail if the JACK option was
enabled, but not ALSA even in previous versions of CMake.

This version of allegro is ancient, so just elevate the workaround
to the port level.

PR:		282725
2024-11-17 07:47:22 -05:00

73 lines
2.1 KiB
Makefile

PORTNAME= allegro
DISTVERSION= 4.4.3.1
PORTREVISION= 4
CATEGORIES= devel
MASTER_SITES= https://github.com/liballeg/allegro5/releases/download/${DISTVERSION}/
MAINTAINER= ports@FreeBSD.org
COMMENT= Cross-platform library for games and multimedia programming
WWW= https://liballeg.org/
LICENSE= GIFTWARE
LICENSE_NAME= Giftware
LICENSE_FILE= ${WRKSRC}/docs/txt/license.txt
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LIB_DEPENDS= libogg.so:audio/libogg \
libpng.so:graphics/png \
libvorbis.so:audio/libvorbis
USES= cmake gl localbase:ldflags pkgconfig xorg
USE_GL= gl glu
USE_LDCONFIG= yes
USE_XORG= ice sm x11 xcursor xext xpm xxf86dga xxf86vm
CMAKE_ARGS= -DDOCDIR="${DOCSDIR}"
CMAKE_ON= WANT_LOGG
CMAKE_OFF= WANT_EXAMPLES WANT_MODULES
# Wrong versioning upstream
PORTSCOUT= ignore:1
INFO= allegro
PLIST_SUB= SHLIB_VER="${PORTVERSION:R}"
PORTDOCS= *
PORTEXAMPLES= *
OPTIONS_DEFINE= DOCS EXAMPLES
OPTIONS_DEFAULT= OSS
OPTIONS_MULTI= AUDIO
OPTIONS_MULTI_AUDIO= ALSA JACK OSS SNDIO
OPTIONS_SUB= yes
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_CMAKE_BOOL= WANT_ALSA
JACK_LIB_DEPENDS= libjack.so:audio/jack
JACK_CMAKE_BOOL= WANT_JACK
OSS_CMAKE_BOOL= WANT_OSS
SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
SNDIO_CMAKE_BOOL= WANT_SNDIO
post-patch:
@${REINPLACE_CMD} -e 's|/allegro-$${ALLEGRO_VERSION}|| ; s|"info"|"${INFO_PATH}"|g ' \
${WRKSRC}/docs/CMakeLists.txt
@${REINPLACE_CMD} -e 's|<X11/extensions/xf86dga.h>|<X11/extensions/Xxf86dga.h>|' \
${WRKSRC}/src/x/xdga2.c
@${CP} ${FILESDIR}/sndio.c ${WRKSRC}/src/unix
post-patch-JACK-on:
@${REINPLACE_CMD} -e 's|jack_client = jack_client_new(jack_client_name);|jack_client = jack_client_open(jack_client_name, (jack_options_t)0, NULL);|' \
${WRKSRC}/src/unix/jack.c
post-install:
${INSTALL_MAN} ${INSTALL_WRKSRC}/docs/man/*.3 ${STAGEDIR}${PREFIX}/share/man/man3/
post-install-EXAMPLES-on:
@(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
@(cd ${WRKSRC} && ${COPYTREE_SHARE} demos ${STAGEDIR}${EXAMPLESDIR})
${INSTALL_DATA} ${WRKSRC}/allegro.cfg ${STAGEDIR}${EXAMPLESDIR}
.include <bsd.port.mk>