# $NetBSD: Makefile.common,v 1.20 2024/01/16 19:23:05 adam Exp $
# used by graphics/opencv/Makefile
# used by graphics/opencv-contrib-face/Makefile
#
# DO NOT FORGET to regen graphics/opencv-contrib-face/distinfo!

OPENCV_VERSION=	3.4.20

CATEGORIES=	graphics devel
MASTER_SITES=	${MASTER_SITE_GITHUB:=opencv/}

HOMEPAGE=	https://opencv.org/
LICENSE=	modified-bsd

PATCHDIR=	${.CURDIR}/../../graphics/opencv/patches

USE_CXX_FEATURES=	c++14
FORCE_CXX_STD=		c++14
USE_LANGUAGES=		c c++
USE_PKGLOCALEDIR=	yes
USE_TOOLS+=		gmake pkg-config
CONFIGURE_DIRS+=	build
CONFIGURE_ENV+=		MACHINE_ARCH=${MACHINE_ARCH}

CHECK_PORTABILITY_SKIP+=	platforms/ios/cmake/Toolchains/xcodebuild_wrapper.in
CHECK_PORTABILITY_SKIP+=	cmake/templates/xcode-*

CMAKE_ARG_PATH=		${WRKSRC}
CMAKE_ARGS+=		-DBUILD_JAVA=OFF
CMAKE_ARGS+=		-DBUILD_PROTOBUF=OFF
CMAKE_ARGS+=		-DCV_ENABLE_INTRINSICS=OFF # XXX: problematic
CMAKE_ARGS+=		-DENABLE_CCACHE=OFF
CMAKE_ARGS+=		-DOPENCV_GENERATE_SETUPVARS=OFF
CMAKE_ARGS+=		-DPROTOBUF_UPDATE_FILES=ON
CMAKE_ARGS+=		-DWITH_EIGEN=OFF
CMAKE_ARGS+=		-DZLIB_ROOT=${BUILDLINK_PREFIX.zlib}
CMAKE_ARGS.SunOS+=	-DENABLE_PRECOMPILED_HEADERS=OFF
CMAKE_ARGS.SunOS+=	-DOPENCV_PYTHON_SKIP_LINKER_EXCLUDE_LIBS=ON

# Pulled in via numpy, too, but we need to handle it explicitly
# for LAPACK C API and CMake tests here.
BLAS_C_INTERFACE=	yes
.include "../../mk/blas.buildlink3.mk"
CMAKE_ARGS+=		-DWITH_LAPACK=ON
CMAKE_ARGS+=		-DBLA_PREFER_PKGCONFIG=ON
CMAKE_ARGS+=		-DBLA_PKGCONFIG_BLAS=${BLAS_PC}
CMAKE_ARGS+=		-DBLA_PKGCONFIG_LAPACK=${LAPACK_PC}
CMAKE_ARGS+=		-DBLA_PKGCONFIG_CBLAS=${CBLAS_PC}
CMAKE_ARGS+=		-DBLA_PKGCONFIG_LAPACKE=${LAPACKE_PC}
CMAKE_ARGS+=		-DOPENCV_SKIP_LAPACK_EXTERN_C=ON

BUILDLINK_TRANSFORM+=	rm:-Werror=address
BUILDLINK_TRANSFORM+=	rm:-Werror=non-virtual-dtor

BUILDLINK_TRANSFORM.SunOS+=	rm:-Wl,--as-needed
BUILDLINK_TRANSFORM.SunOS+=	rm:-Wl,--gc-sections

.include "../../mk/bsd.prefs.mk"

.if ${MACHINE_ARCH} == "i386"
# Disable SSE/SSE2 to avoid build errors from missing _mm_pause.
CMAKE_ARGS+=		-DCPU_BASELINE=""
.endif

PYTHON_VERSIONS_INCOMPATIBLE=	27	# avoid Python 2.7

.include "../../mk/atomic64.mk"
.include "../../lang/python/pyversion.mk"
