| 9 |
9 |
# The added asserts break on mem leaks, so tests fail.
|
| 10 |
10 |
# PYTHON_REQ_USE="-debug"
|
| 11 |
11 |
|
| 12 |
|
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qt-utils toolchain-funcs xdg virtualx
|
|
12 |
inherit check-reqs cmake cuda edo flag-o-matic optfeature python-single-r1 qt-utils toolchain-funcs xdg virtualx branding
|
| 13 |
13 |
|
| 14 |
14 |
DESCRIPTION="Qt based Computer Aided Design application"
|
| 15 |
15 |
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
|
|
16 |
ADDON_MANAGER_COMMIT="937b6877239dc78ef59eeefe8099e5f14243eda1"
|
| 16 |
17 |
|
| 17 |
18 |
MY_PN=FreeCAD
|
| 18 |
19 |
|
| ... | ... | |
| 22 |
23 |
EGIT_SUBMODULES=( 'src/Mod/AddonManager' )
|
| 23 |
24 |
S="${WORKDIR}/freecad-${PV}"
|
| 24 |
25 |
else
|
|
26 |
|
| 25 |
27 |
SRC_URI="
|
| 26 |
28 |
https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
|
| 27 |
|
https://github.com/FreeCAD/FreeCAD/commit/d91b3e051789623f0bc1eff65947c361e7a661d0.patch -> ${PN}-20710.patch
|
| 28 |
|
https://github.com/FreeCAD/FreeCAD/commit/9ea0f32692e13eee85b1e74bd42514942d357906.patch -> ${PN}-21433.patch
|
|
29 |
https://github.com/FreeCAD/AddonManager/archive/${ADDON_MANAGER_COMMIT}.tar.gz -> AddonManager.tar.gz
|
| 29 |
30 |
"
|
| 30 |
|
KEYWORDS="amd64"
|
|
31 |
|
|
32 |
KEYWORDS="~amd64"
|
| 31 |
33 |
S="${WORKDIR}/FreeCAD-${PV}"
|
| 32 |
34 |
fi
|
| 33 |
35 |
|
| ... | ... | |
| 40 |
42 |
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
|
| 41 |
43 |
# To get their dependencies:
|
| 42 |
44 |
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
|
| 43 |
|
IUSE+=" addonmgr assembly +bim cam cloud fem idf inspection +mesh openscad points reverse robot surface +techdraw"
|
|
45 |
IUSE+=" addonmgr assembly +bim cam fem idf inspection +mesh openscad points reverse robot surface +techdraw"
|
| 44 |
46 |
|
| 45 |
47 |
REQUIRED_USE="
|
| 46 |
48 |
${PYTHON_REQUIRED_USE}
|
| ... | ... | |
| 73 |
75 |
sci-libs/opencascade:=[json]
|
| 74 |
76 |
virtual/zlib:=
|
| 75 |
77 |
$(python_gen_cond_dep '
|
|
78 |
dev-python/lark[${PYTHON_USEDEP}]
|
| 76 |
79 |
dev-python/numpy[${PYTHON_USEDEP}]
|
| 77 |
80 |
dev-python/pybind11[${PYTHON_USEDEP}]
|
| 78 |
81 |
dev-python/pycxx[${PYTHON_USEDEP}]
|
| 79 |
82 |
dev-python/pyyaml[${PYTHON_USEDEP}]
|
| 80 |
83 |
')
|
| 81 |
|
assembly? ( sci-libs/ondselsolver )
|
| 82 |
|
cloud? (
|
| 83 |
|
dev-libs/openssl:=
|
| 84 |
|
net-misc/curl
|
| 85 |
|
)
|
|
84 |
assembly? ( >=sci-libs/ondselsolver-1.0.1_p20260211 )
|
| 86 |
85 |
fem? (
|
| 87 |
86 |
sci-libs/vtk:=
|
| 88 |
87 |
$(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]')
|
| ... | ... | |
| 108 |
107 |
sci-libs/vtk:=
|
| 109 |
108 |
)
|
| 110 |
109 |
"
|
|
110 |
|
| 111 |
111 |
DEPEND="${RDEPEND}
|
| 112 |
112 |
<dev-cpp/eigen-5:=
|
| 113 |
113 |
dev-cpp/ms-gsl
|
| ... | ... | |
| 137 |
137 |
"
|
| 138 |
138 |
|
| 139 |
139 |
PATCHES=(
|
| 140 |
|
"${FILESDIR}"/${PN}-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch
|
| 141 |
|
"${FILESDIR}"/${PN}-1.0.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
|
|
140 |
"${FILESDIR}"/${PN}-1.1.1-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
|
|
141 |
"${FILESDIR}"/${PN}-1.1.1-Gentoo-specific-don-t-check-vcs.patch
|
| 142 |
142 |
"${FILESDIR}/${PN}-1.0.2-pybind11-latent-slots-macro-conflicts-with-Qt.patch" # fixed in pybind-3.0.1
|
| 143 |
|
"${DISTDIR}/${PN}-20710.patch" # DESTDIR in env
|
| 144 |
|
"${DISTDIR}/${PN}-21433.patch" # FindHDF5 fails to find HDF5 after a failing pkg_search_module
|
| 145 |
|
"${FILESDIR}"/${P}-boost-1.89.patch # bug 969041
|
| 146 |
143 |
)
|
| 147 |
144 |
|
| 148 |
145 |
DOCS=( CODE_OF_CONDUCT.md README.md )
|
| ... | ... | |
| 259 |
256 |
}
|
| 260 |
257 |
|
| 261 |
258 |
src_prepare() {
|
| 262 |
|
# deprecated in python-3.11 removed in python-3.13
|
| 263 |
|
sed -e '/import imghdr/d' -i src/Mod/CAM/CAMTests/TestCAMSanity.py || die
|
| 264 |
|
|
| 265 |
|
# The PCL point_traits.h header was renamed (and deprecated) since 1.11.0 and removed in 1.15.0.
|
| 266 |
|
# d9e731ca94abc14808ebeed208617116f6d5ea4a
|
| 267 |
|
sed -e 's#pcl/point_traits.h#pcl/type_traits.h#g' -i src/Mod/ReverseEngineering/App/SurfaceTriangulation.cpp || die
|
| 268 |
|
|
| 269 |
|
# removed bundled pycxx
|
| 270 |
259 |
if [[ ${PV} != *9999* ]]; then
|
| 271 |
|
rm -r src/CXX || die "remove bundled pycxx"
|
|
260 |
rmdir "${WORKDIR}/FreeCAD-${PV}/src/Mod/AddonManager" || die
|
|
261 |
|
|
262 |
mv "${WORKDIR}"/AddonManager-${ADDON_MANAGER_COMMIT} \
|
|
263 |
"${S}"/src/Mod/AddonManager || die
|
| 272 |
264 |
fi
|
| 273 |
265 |
|
| 274 |
266 |
cmake_src_prepare
|
| ... | ... | |
| 294 |
286 |
-DCMAKE_POLICY_DEFAULT_CMP0175="OLD" # add_custom_command
|
| 295 |
287 |
-DCMAKE_POLICY_DEFAULT_CMP0153="OLD" # exec_program
|
| 296 |
288 |
|
| 297 |
|
-DPYCXX_INCLUDE_DIR="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}"
|
|
289 |
-DPYCXX_INCLUDE_DIRS="${ESYSROOT}/usr/include/${PYTHON_SINGLE_TARGET/_/.}"
|
| 298 |
290 |
-DPYCXX_SOURCE_DIR="${ESYSROOT}/usr/share/${PYTHON_SINGLE_TARGET/_/.}/CXX"
|
| 299 |
291 |
|
| 300 |
292 |
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
|
| ... | ... | |
| 309 |
301 |
-DBUILD_ASSEMBLY=$(usex assembly)
|
| 310 |
302 |
-DBUILD_BIM=$(usex bim)
|
| 311 |
303 |
-DBUILD_CAM=$(usex cam)
|
| 312 |
|
-DBUILD_CLOUD=$(usex cloud)
|
| 313 |
304 |
-DBUILD_DRAFT=ON
|
| 314 |
305 |
# see below for DRAWING
|
| 315 |
306 |
-DBUILD_FEM=$(usex fem)
|
| ... | ... | |
| 385 |
376 |
mycmakeargs+=(
|
| 386 |
377 |
-DENABLE_DEVELOPER_TESTS=OFF
|
| 387 |
378 |
|
| 388 |
|
-DPACKAGE_WCREF="${PVR} (gentoo)"
|
|
379 |
-DPACKAGE_WCREF="${PVR} (${BRANDING_OS_NAME})"
|
| 389 |
380 |
-DPACKAGE_WCURL="git://github.com/FreeCAD/FreeCAD.git ${PV}"
|
| 390 |
381 |
)
|
| 391 |
382 |
fi
|
| ... | ... | |
| 551 |
542 |
|
| 552 |
543 |
if [[ -f src/Tools/freecad-thumbnailer ]]; then
|
| 553 |
544 |
dobin src/Tools/freecad-thumbnailer
|
|
545 |
else
|
|
546 |
dosym -r "/usr/$(get_libdir)/${PN}/bin/freecad-thumbnailer" "/usr/bin/freecad-thumbnailer"
|
| 554 |
547 |
fi
|
| 555 |
548 |
|
| 556 |
549 |
for dir in share/{applications,icons,metainfo,mime,pixmaps,thumbnailers}; do
|
| ... | ... | |
| 558 |
551 |
done
|
| 559 |
552 |
|
| 560 |
553 |
rm -r "${ED}/usr/$(get_libdir)/${PN}/include/E57Format" || die "failed to drop unneeded include directory E57Format"
|
|
554 |
rm -r "${ED}/usr/$(get_libdir)/${PN}/include/clipper2" || die "failed to drop unneeded include directory clipper2"
|
| 561 |
555 |
rmdir "${ED}/usr/$(get_libdir)/${PN}/include/" || die "failed to drop unneeded include directory"
|
| 562 |
556 |
|
| 563 |
557 |
python_optimize "${ED}/usr/share/${PN}/data/Mod/Start/" "${ED}/usr/$(get_libdir)/${PN}/"{Ext,Mod}/
|