aboutsummaryrefslogtreecommitdiff
blob: 180542cac4bdbb7c5cf7abb5ba263fddf6ed48ca (plain)
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
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake desktop java-pkg-2 flag-o-matic

DESCRIPTION="Constructive solid geometry modeling system"
HOMEPAGE="https://brlcad.org/ https://github.com/BRL-CAD/brlcad"
SRC_URI="https://github.com/BRL-CAD/${PN}/archive/refs/tags/rel-${PV//./-}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-rel-${PV//./-}"

LICENSE="LGPL-2 BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="benchmarks debug doc examples java opengl smp"

RDEPEND="
	java? (
		>=virtual/jre-1.8:*
	)
	"

DEPEND="${RDEPEND}
	dev-util/astyle
	dev-util/re2c
	>=sci-libs/tnt-3
	sci-libs/proj
	sci-libs/lemon
	sys-devel/bison
	sys-devel/flex
	media-libs/libpng:0
	>=dev-lang/tcl-8.6:0/8.6
	>=dev-lang/tk-8.6:0/8.6
	sys-libs/zlib
	sys-libs/libtermcap-compat
	media-libs/urt
	x11-libs/libXt
	x11-libs/libXi
	java? (
		sci-libs/jama
		>=virtual/jre-1.8:*
	)
	doc? (
		dev-libs/libxslt
		app-text/doxygen
	)"

# Install into /usr/ not recommended by upstream due to possible file conflicts
# with bundled libraries!
BRLCAD_DIR="${EPREFIX}/usr/${PN}"

PATCHES=( "${FILESDIR}/${P}-skip-gstep.patch" )

src_prepare() {
	cmake_src_prepare
}

src_configure() {
	append-cflags "-w"
	if use debug; then
		CMAKE_BUILD_TYPE=Debug
	else
		CMAKE_BUILD_TYPE=Release
	fi
	local mycmakeargs=(
		-DCMAKE_INSTALL_PREFIX="${BRLCAD_DIR}"
		-DBRLCAD_ENABLE_STRICT=NO
		-DBRLCAD-ENABLE_COMPILER_WARNINGS=NO
		-DBRLCAD_BUNDLED_LIBS=AUTO
		-DBRLCAD_FLAGS_OPTIMIZATION=ON
		-DBRLCAD_ENABLE_X11=ON
		-DBRLCAD_ENABLE_VERBOSE_PROGRESS=ON
		-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=ON
# requires itk/itcl version 3, not packaged, use bundled instead
# 		-DBRLCAD_TKTABLE=OFF
# 		-DBRLCAD_IWIDGETS=OFF
# 		-DBRLCAD_ITCL=OFF
# 		-DBRLCAD_ITK=OFF
#		-DBRLCAD_TKPNG=OFF
# Not packaged, use bundled
# 		-DBRLCAD_GDIAM
# 		-DBRLCAD_VDS
# 		-DBRLCAD_SC
# 		-DBRLCAD_OPENNURBS
# 		-DBRLCAD_TKHTML
# 		-DBRLCAD_UTAHRLE
# 		-DBRLCAD_TERMLIB
# 		-DBRLCAD_XMLLINT
# 		-DBRLCAD_XSLTPROC
# 		-DBRLCAD_PERPLEX
	)

	# use flag triggered options
	if use debug; then
		mycmakeargs+=( -DCMAKE_BUILD_TYPE="Debug" )
	else
		mycmakeargs+=( -DCMAKE_BUILD_TYPE="Release" )
	fi
	mycmakeargs+=(
		$(usex opengl BRLCAD_ENABLE_OPENGL)
		$(usex opengl BRLCAD_ENABLE_RTGL)
		$(usex amd64 BRLCAD_ENABLE_64BIT)
		$(usex smp BRLCAD_ENABLE_SMP)
		$(usex java BRLCAD_ENABLE_RTSERVER)
		$(usex examples BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
		$(usex doc BRLCAD_EXTRADOCS)
		$(usex doc BRLCAD_EXTRADOCS_PDF)
		$(usex doc BRLCAD_EXTRADOCS_MAN)
	)
	cmake_src_configure
}

src_compile() {
	cmake_src_compile
}

src_test() {
	cmake_src_test
	emake check
	if use benchmarks; then
		emake benchmark
	fi
}

src_install() {
	cmake_src_install
	rm -f "${D}"/usr/share/brlcad/{README,NEWS,AUTHORS,HACKING,INSTALL,COPYING}
	dodoc AUTHORS NEWS README HACKING TODO BUGS ChangeLog
	echo "PATH=\"${BRLCAD_DIR}/bin\"" >  99brlcad
	echo "MANPATH=\"${BRLCAD_DIR}/man\"" >> 99brlcad
	doenvd 99brlcad
	for size in {16,24,36,48,64,96,128,256}; do
		doicon misc/debian/icons/${size}x${size}/*
	done
	domenu misc/debian/*.desktop
}