143 lines
5.6 KiB
Bash
143 lines
5.6 KiB
Bash
# Contributor: Mehdi Chinoune <mehdi.chinoune@hotmail.com>
|
|
|
|
_realname=freecad
|
|
pkgbase=mingw-w64-${_realname}
|
|
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
|
pkgver=0.21.2
|
|
pkgrel=7
|
|
pkgdesc="Free and Opensource multiplatform 3D parametric modeler (mingw-w64)"
|
|
arch=('any')
|
|
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
|
|
url='https://freecadweb.org/'
|
|
msys2_repository_url="https://github.com/FreeCAD/FreeCAD"
|
|
msys2_references=(
|
|
'archlinux: freecad'
|
|
)
|
|
license=('spdx:GPL-2.0-or-later')
|
|
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
|
"${MINGW_PACKAGE_PREFIX}-boost"
|
|
"${MINGW_PACKAGE_PREFIX}-coin"
|
|
"${MINGW_PACKAGE_PREFIX}-fmt"
|
|
"${MINGW_PACKAGE_PREFIX}-freetype"
|
|
"${MINGW_PACKAGE_PREFIX}-med"
|
|
"${MINGW_PACKAGE_PREFIX}-omp"
|
|
"${MINGW_PACKAGE_PREFIX}-opencascade"
|
|
"${MINGW_PACKAGE_PREFIX}-openscad"
|
|
"${MINGW_PACKAGE_PREFIX}-python"
|
|
"${MINGW_PACKAGE_PREFIX}-python-numpy"
|
|
"${MINGW_PACKAGE_PREFIX}-python-packaging"
|
|
"${MINGW_PACKAGE_PREFIX}-python-pivy"
|
|
"${MINGW_PACKAGE_PREFIX}-pyside6"
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-base"
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-svg"
|
|
"${MINGW_PACKAGE_PREFIX}-xerces-c"
|
|
"${MINGW_PACKAGE_PREFIX}-vtk"
|
|
"${MINGW_PACKAGE_PREFIX}-zlib")
|
|
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
|
"${MINGW_PACKAGE_PREFIX}-cmake"
|
|
"${MINGW_PACKAGE_PREFIX}-ninja"
|
|
"${MINGW_PACKAGE_PREFIX}-eigen3"
|
|
"${MINGW_PACKAGE_PREFIX}-python-matplotlib"
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-tools"
|
|
"${MINGW_PACKAGE_PREFIX}-swig"
|
|
"${MINGW_PACKAGE_PREFIX}-fast_float"
|
|
"${MINGW_PACKAGE_PREFIX}-utf8cpp")
|
|
source=("https://github.com/FreeCAD/FreeCAD/archive/${pkgver}/${_realname}-${pkgver}.tar.gz"
|
|
"001-fix-build-on-mingw.patch"
|
|
"002-fix-building-against-vtk9.3.patch"
|
|
"003-fix-building-with-gcc.patch"
|
|
"004-Fix-smesh-does-not-compile-with-boost-1.85.patch::https://github.com/FreeCAD/FreeCAD/commit/f555a25f.patch"
|
|
"005-fix-c++-20-deprecate-copy_option.patch::https://github.com/FreeCAD/FreeCAD/commit/aa54ba73.patch"
|
|
# https://github.com/FreeCAD/FreeCAD/commit/0100a998
|
|
"006-Gui-TypeInitStruct-for-Shiboken6-builds.patch"
|
|
"007-fix-import-pyside6.patch"
|
|
# https://github.com/FreeCAD/FreeCAD/commit/62c3836c
|
|
"008-Addon-Manager-Qt6-fixes.patch"
|
|
"009-fix-import-pyside6-2.patch::https://github.com/FreeCAD/FreeCAD/commit/ac9a88c2.patch"
|
|
"010-Fix-NaviCube-for-Qt6.patch::https://github.com/FreeCAD/FreeCAD/commit/ccaee189.patch"
|
|
"011-fixups-with-qt6-enums.patch"
|
|
)
|
|
sha256sums=('ceaf77cd12e8ad533d1535cc27ae4ca2a6e80778502dc9cdec906415d674b674'
|
|
'f452aca0557806f61ffb767e0c296305b9271788a76f675bf254aa7d464ea325'
|
|
'194db658ae660d7e10385a4ef9521b2dc6b4264b8b0aedca33eb955fdfda5890'
|
|
'dbd2cd683d0c6ce8c633ce406231e77baf4e6f27898cee55cc11d61178c16dd1'
|
|
'7d79a7ae9420c317766c1a57db475fb5daaa8ba2345fbb398e5857e26c28d4ee'
|
|
'e38bb73741039e5505c6784b7f468ae497a3e7095b18f96c8d4fb68e3f8d5224'
|
|
'15650328a24cb60600d1aa2a9e772f14f28bd0909927a202e21de7d12c2036c3'
|
|
'6bc21acb796a0b87e13925e9f745e62ca182a15cdddca17e671bed48f561d383'
|
|
'cdbb8ca67af1951c2976e60a2311e2b9e58cb1e0ae69df59ceb0420145502f03'
|
|
'4d30deb3a1de642d170fb97ff348727e35b74128121b0ac90ea7c9e5f173ba14'
|
|
'3594834a08b6712d29c0d44a4bfafb05d561ce93283832c31324b917d17bf8dd'
|
|
'abe1839bfcde379fc01bad43958ad941d552b3c897dccabc3fae821f7287ea1d')
|
|
|
|
apply_patch_with_msg() {
|
|
for _patch in "$@"
|
|
do
|
|
msg2 "Applying $_patch"
|
|
patch -Nbp1 -i "${srcdir}/$_patch"
|
|
done
|
|
}
|
|
|
|
prepare() {
|
|
cd "${srcdir}"/${_realname}-${pkgver}
|
|
apply_patch_with_msg \
|
|
001-fix-build-on-mingw.patch \
|
|
002-fix-building-against-vtk9.3.patch \
|
|
004-Fix-smesh-does-not-compile-with-boost-1.85.patch \
|
|
005-fix-c++-20-deprecate-copy_option.patch \
|
|
006-Gui-TypeInitStruct-for-Shiboken6-builds.patch \
|
|
007-fix-import-pyside6.patch \
|
|
008-Addon-Manager-Qt6-fixes.patch \
|
|
009-fix-import-pyside6-2.patch \
|
|
010-Fix-NaviCube-for-Qt6.patch
|
|
|
|
# https://github.com/FreeCAD/FreeCAD/pull/11560
|
|
apply_patch_with_msg \
|
|
003-fix-building-with-gcc.patch
|
|
}
|
|
|
|
build() {
|
|
mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"
|
|
|
|
declare -a _extra_config
|
|
if check_option "debug" "n"; then
|
|
_extra_config+=("-DCMAKE_BUILD_TYPE=Release")
|
|
else
|
|
_extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
|
|
fi
|
|
|
|
if [[ ${CC} == clang ]]; then
|
|
CXXFLAGS+=" -Wno-macro-redefined"
|
|
else
|
|
CXXFLAGS+=" -Wno-template-id-cdtor"
|
|
fi
|
|
|
|
CXXFLAGS+=" -Wno-deprecated-declarations -Wno-unknown-pragmas" \
|
|
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;" \
|
|
"${MINGW_PREFIX}"/bin/cmake.exe -Wno-dev \
|
|
-GNinja \
|
|
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
|
|
-DFREECAD_QT_VERSION="6" \
|
|
-DBUILD_TEST=OFF \
|
|
-DBUILD_WEB=OFF \
|
|
-DENABLE_DEVELOPER_TESTS=OFF \
|
|
-DPython_EXECUTABLE=${MINGW_PREFIX}/bin/python \
|
|
-DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python \
|
|
-DPYTHON_EXECUTABLE=${MINGW_PREFIX}/bin/python \
|
|
"${_extra_config[@]}" \
|
|
../${_realname}-${pkgver}
|
|
|
|
"${MINGW_PREFIX}"/bin/cmake.exe --build .
|
|
}
|
|
|
|
package() {
|
|
cd "${srcdir}/build-${MSYSTEM}"
|
|
|
|
DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install .
|
|
|
|
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
|
|
|
|
MSYS2_ARG_CONV_EXCL="-d" \
|
|
python -m compileall -o 0 -o 1 -q -d"${MINGW_PREFIX}" "${pkgdir}${MINGW_PREFIX}"
|
|
}
|