3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
inherit cmake flag-o-matic optfeature virtualx xdg
|
|
6 |
PYTHON_COMPAT=( python3_{10..13} )
|
|
7 |
inherit cmake flag-o-matic optfeature python-any-r1 virtualx xdg
|
7 |
8 |
|
8 |
9 |
DESCRIPTION="The Programmers Solid 3D CAD Modeller"
|
9 |
10 |
HOMEPAGE="https://openscad.org/"
|
... | ... | |
18 |
19 |
'-OpenCSG'
|
19 |
20 |
)
|
20 |
21 |
else
|
21 |
|
COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37"
|
22 |
|
SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15"
|
23 |
|
MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
|
24 |
|
|
25 |
|
SRC_URI="
|
26 |
|
https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
|
27 |
|
-> ${PN}-20241114.tar.gz
|
28 |
|
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
|
29 |
|
-> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
|
30 |
|
test? (
|
31 |
|
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> ${PN}-MCAD-${MCAD_COMMIT}.tar.gz
|
32 |
|
)
|
33 |
|
"
|
34 |
|
# doc downloads are not versioned and found at:
|
35 |
|
# https://files.openscad.org/documentation/
|
36 |
|
S="${WORKDIR}/${PN}-${COMMIT}"
|
37 |
|
KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
|
|
22 |
if [[ ${PV} = *pre* ]] ; then
|
|
23 |
COMMIT="756e080c7e49072d9926cf9ce766def180a0dcae"
|
|
24 |
SANITIZERS_CMAKE_COMMIT="0573e2ea8651b9bb3083f193c41eb086497cc80a"
|
|
25 |
MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
|
|
26 |
|
|
27 |
SRC_URI="
|
|
28 |
https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
|
|
29 |
-> ${P}.tar.gz
|
|
30 |
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
|
|
31 |
-> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
|
|
32 |
test? (
|
|
33 |
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> ${PN}-MCAD-${MCAD_COMMIT}.tar.gz
|
|
34 |
)
|
|
35 |
"
|
|
36 |
# doc downloads are not versioned and found at:
|
|
37 |
# https://files.openscad.org/documentation/
|
|
38 |
S="${WORKDIR}/${PN}-${COMMIT}"
|
|
39 |
else
|
|
40 |
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.src.tar.gz -> ${P}.tar.gz"
|
|
41 |
fi
|
|
42 |
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
38 |
43 |
fi
|
39 |
44 |
|
40 |
45 |
# Code is GPL-3+, MCAD library is LGPL-2.1
|
... | ... | |
74 |
79 |
hidapi? ( dev-libs/hidapi )
|
75 |
80 |
manifold? (
|
76 |
81 |
dev-cpp/tbb
|
77 |
|
sci-mathematics/manifold
|
|
82 |
>=sci-mathematics/manifold-3.0.1
|
78 |
83 |
)
|
79 |
84 |
mimalloc? ( dev-libs/mimalloc:= )
|
80 |
85 |
pdf? ( x11-libs/cairo )
|
... | ... | |
90 |
95 |
dev-util/itstool
|
91 |
96 |
sys-devel/gettext
|
92 |
97 |
virtual/pkgconfig
|
|
98 |
test? (
|
|
99 |
$(python_gen_any_dep '
|
|
100 |
dev-python/numpy[${PYTHON_USEDEP}]
|
|
101 |
dev-python/pillow[${PYTHON_USEDEP}]
|
|
102 |
dev-python/pip[${PYTHON_USEDEP}]
|
|
103 |
')
|
|
104 |
)
|
93 |
105 |
"
|
94 |
106 |
|
95 |
107 |
DOCS=(
|
... | ... | |
102 |
114 |
doc/translation.txt
|
103 |
115 |
)
|
104 |
116 |
|
|
117 |
# NOTE the build system sets up a venv for tests, we could use imagemagick with -DUSE_IMAGE_COMPARE_PY="no"
|
|
118 |
python_check_deps() {
|
|
119 |
python_has_version "dev-python/numpy[${PYTHON_USEDEP}]" &&
|
|
120 |
python_has_version "dev-python/pillow[${PYTHON_USEDEP}]" &&
|
|
121 |
python_has_version "dev-python/pip[${PYTHON_USEDEP}]"
|
|
122 |
}
|
|
123 |
|
|
124 |
pkg_setup() {
|
|
125 |
use test && python-any-r1_pkg_setup
|
|
126 |
}
|
|
127 |
|
105 |
128 |
src_prepare() {
|
106 |
129 |
if use test && [[ ${PV} != *9999* ]] ; then
|
107 |
130 |
mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" || die
|
... | ... | |
134 |
157 |
-DEXPERIMENTAL="$(usex experimental)"
|
135 |
158 |
|
136 |
159 |
-DHEADLESS="$(usex !gui)"
|
|
160 |
-DUSE_BUILTIN_CLIPPER2="no"
|
137 |
161 |
-DUSE_BUILTIN_MANIFOLD="no"
|
138 |
162 |
-DUSE_CCACHE="no"
|
139 |
163 |
-DUSE_GLAD="yes"
|
... | ... | |
142 |
166 |
-DUSE_MIMALLOC="$(usex mimalloc)"
|
143 |
167 |
-DUSE_QT6="$(usex gui)"
|
144 |
168 |
-DOFFLINE_DOCS="no" # TODO
|
|
169 |
-DOPENCSG_DIR="${EPREFIX}/usr/$(get_libdir)"
|
145 |
170 |
)
|
146 |
171 |
|
147 |
172 |
if use gui; then
|
... | ... | |
155 |
180 |
if [[ ${PV} != *9999* ]] ; then
|
156 |
181 |
mycmakeargs+=(
|
157 |
182 |
-DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake"
|
|
183 |
)
|
|
184 |
if [[ ${PV} = *pre* ]] ; then
|
|
185 |
mycmakeargs+=(
|
|
186 |
-DOPENSCAD_COMMIT="${COMMIT:0:9}"
|
|
187 |
-DOPENSCAD_VERSION="$(ver_cut 1-3)"
|
|
188 |
-DSNAPSHOT="yes"
|
|
189 |
)
|
|
190 |
fi
|
|
191 |
else
|
|
192 |
mycmakeargs+=(
|
158 |
193 |
-DOPENSCAD_COMMIT="${COMMIT:0:9}"
|
159 |
|
-DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}"
|
|
194 |
-DSNAPSHOT="yes"
|
160 |
195 |
)
|
161 |
196 |
fi
|
162 |
197 |
|