aboutsummaryrefslogtreecommitdiff
path: root/math/g2o/Makefile
blob: 8dc49a0a9ddda10b1145f58798481fad9d552534 (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
PORTNAME=	g2o
DISTVERSION=	20230806
PORTREVISION=	10
DISTVERSIONSUFFIX=	_git
CATEGORIES=	math

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	General framework for graph optimization
WWW=		https://openslam-org.github.io/g2o.html

LICENSE=	LGPL3 GPLv3
LICENSE_COMB=	dual

LIB_DEPENDS=	libamd.so:math/suitesparse-amd \
		libcamd.so:math/suitesparse-camd \
		libccolamd.so:math/suitesparse-ccolamd \
		libcholmod.so:math/suitesparse-cholmod \
		libcolamd.so:math/suitesparse-colamd \
		libcxsparse.so:math/suitesparse-cxsparse \
		libQGLViewer.so:graphics/libQGLViewer \
		libmetis.so:math/metis \
		libopenblas.so:math/openblas \
		libsuitesparseconfig.so:math/suitesparse-config
TEST_DEPENDS=	googletest>0:devel/googletest

USES=		cmake:testing compiler:c++14-lang gl eigen:3 blaslapack:netlib localbase qt:5
USE_GL=		gl glu
USE_QT=		core gui opengl xml widgets buildtools:build qmake:build
USE_LDCONFIG=	yes

USE_GITHUB=	yes
GH_ACCOUNT=	RainerKuemmerle

CMAKE_OFF=	DO_SSE_AUTODETECT
CMAKE_TESTING_ON=	BUILD_UNITTESTS

OPTIONS_DEFINE=			FAST_MATH
OPTIONS_SINGLE=			SIMD_${ARCH:tu}
OPTIONS_SINGLE_SIMD_AMD64=	NOSSE SSE2 SSE3 SSE41 SSE42 SSE4A
OPTIONS_SINGLE_SIMD_I386=	${OPTIONS_SINGLE_SIMD_AMD64}
OPTIONS_DEFAULT_amd64=		SSE2
OPTIONS_DEFAULT_i386=		SSE2

SIMD_AMD64_DESC=	Use SSE SIMD optimizations
SIMD_I386_DESC=		${SIMD_AMD64_DESC}
FAST_MATH_DESC=		Enable fast math operations
NOSSE_DESC=		Do not use SIMD optimization
SSE2_DESC=		SSE2 optimization
SSE3_DESC=		SSE3 optimization
SSE41_DESC=		SSE41 optimization
SSE42_DESC=		SSE42 optimization
SSE4A_DESC=		SSE4a optimization

FAST_MATH_CMAKE_BOOL=	G2O_FAST_MATH
NOSSE_CMAKE_ON=		-DDISABLE_SSE2:BOOL=ON -DDISABLE_SSE3:BOOL=ON -DDISABLE_SSE4_1:BOOL=ON -DDISABLE_SSE4_2:BOOL=ON -DDISABLE_SSE4_A:BOOL=ON
SSE2_CMAKE_ON=		-DDISABLE_SSE3:BOOL=ON -DDISABLE_SSE4_1:BOOL=ON -DDISABLE_SSE4_2:BOOL=ON -DDISABLE_SSE4_A:BOOL=ON
SSE3_CMAKE_ON=		-DDISABLE_SSE4_1:BOOL=ON -DDISABLE_SSE4_2:BOOL=ON -DDISABLE_SSE4_A:BOOL=ON
SSE41_CMAKE_ON=		-DDISABLE_SSE4_2:BOOL=ON -DDISABLE_SSE4_A:BOOL=ON
SSE42_CMAKE_ON=		-DDISABLE_SSE4_A:BOOL=ON
SSE4A_CMAKE_ON=		# empty to make portlint happy

.include <bsd.port.options.mk>

.if ${ARCH} != amd64 && ${ARCH} != i386
CMAKE_ARGS+=	-DDISABLE_SSE2:BOOL=ON -DDISABLE_SSE3:BOOL=ON -DDISABLE_SSE4_1:BOOL=ON -DDISABLE_SSE4_2:BOOL=ON -DDISABLE_SSE4_A:BOOL=ON
.endif

post-patch:
	@${REINPLACE_CMD} -e 's|/usr/include|${LOCALBASE}/include|' \
		${WRKSRC}/cmake_modules/*.cmake

# tests fail to compile, see https://github.com/RainerKuemmerle/g2o/issues/711

.include <bsd.port.mk>