# Local slave port: install Inkscape and its native bridge as one ABI unit.
# The native/ payload is generated by packaging/export_freebsd_port.py.
PORTSDIR?=	/usr/ports
MASTERDIR=	${PORTSDIR}/graphics/inkscape
PKGNAMESUFFIX=	-mcpinkscape
CONFLICTS_INSTALL=	inkscape-[0-9]*
DESCR=		${.CURDIR}/pkg-descr

MCPINKSCAPE_OVERLAY_DIR=	${.CURDIR}/native
CMAKE_ARGS+=	-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=${MCPINKSCAPE_OVERLAY_DIR}/cmake-overlay.cmake \
		-DMCPINKSCAPE_OVERLAY_DIR=${MCPINKSCAPE_OVERLAY_DIR} \
		-DBUILD_SHARED_LIBS=ON
PLIST_FILES+=	share/inkscape/extensions/libmcpinkscape_bridge.so \
		share/inkscape/extensions/mcpinkscape-bridge-start.inx \
		share/inkscape/extensions/mcpinkscape-bridge-stop.inx \
		share/inkscape/extensions/mcpinkscape-bridge-status.inx \
		share/inkscape/mcpinkscape/build-info.txt \
		share/inkscape/mcpinkscape/port-inputs.json \
		share/inkscape/mcpinkscape/LICENSE.md

# Register hooks before the parent includes bsd.port.mk and builds its phase lists.
pre-configure:
	@test -f ${MCPINKSCAPE_OVERLAY_DIR}/src/mcpinkscape_bridge.cpp || \
		(${ECHO_MSG} "Missing native payload: use the complete distributed port directory"; exit 1)
	@${PYTHON_CMD} ${.CURDIR}/files/freebsd_build_info.py ${MCPINKSCAPE_INFO_ARGS}

pre-build:
	@${PYTHON_CMD} ${.CURDIR}/files/freebsd_build_info.py ${MCPINKSCAPE_INFO_ARGS} --build

post-stage:
	@${PYTHON_CMD} ${.CURDIR}/files/freebsd_build_info.py ${MCPINKSCAPE_INFO_ARGS} --verify
	${INSTALL_DATA} ${WRKDIR}/mcpinkscape-port-inputs.json \
		${STAGEDIR}${DATADIR}/mcpinkscape/port-inputs.json

.include "${MASTERDIR}/Makefile"

MAINTAINER=	pypipackages01@tspi.at
COMMENT=	Inkscape SVG editor with an ABI-matched native MCP bridge

.if ${DISTVERSION} != "1.4.4"
.error Unsupported parent Inkscape ${DISTVERSION}; this port recipe supports 1.4.4
.endif

MCPINKSCAPE_INFO_ARGS=	--port ${.CURDIR:Q} --parent ${MASTERDIR:Q} \
		--distinfo ${DISTINFO_FILE:Q} --patch-dir ${PATCHDIR:Q} \
		--options ${SELECTED_OPTIONS:Q} --output ${WRKDIR:Q}/mcpinkscape-port-inputs.json
.for _mcpinkscape_patch in ${EXTRA_PATCHES}
MCPINKSCAPE_INFO_ARGS+=	--extra-patch ${_mcpinkscape_patch:Q}
.endfor
