2025-08-03 10:08:00 +02:00

152 lines
5.8 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=openscad
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2021.01
pkgrel=21
pkgdesc="The programmers solid 3D CAD modeller (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.openscad.org/"
msys2_repository_url="https://github.com/openscad/openscad"
msys2_references=(
'cpe: cpe:/a:openscad:openscad'
)
license=("spdx:GPL-2.0-or-later")
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
"${MINGW_PACKAGE_PREFIX}-boost-libs"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-double-conversion"
"${MINGW_PACKAGE_PREFIX}-fontconfig"
"${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-gettext-runtime"
"${MINGW_PACKAGE_PREFIX}-glew"
"${MINGW_PACKAGE_PREFIX}-glib2"
"${MINGW_PACKAGE_PREFIX}-gmp"
"${MINGW_PACKAGE_PREFIX}-harfbuzz"
"${MINGW_PACKAGE_PREFIX}-libwinpthread"
"${MINGW_PACKAGE_PREFIX}-libxml2"
"${MINGW_PACKAGE_PREFIX}-libzip"
"${MINGW_PACKAGE_PREFIX}-mpfr"
"${MINGW_PACKAGE_PREFIX}-opencsg"
"${MINGW_PACKAGE_PREFIX}-qscintilla-qt5"
"${MINGW_PACKAGE_PREFIX}-qt5-base"
"${MINGW_PACKAGE_PREFIX}-qt5-svg"
"${MINGW_PACKAGE_PREFIX}-qt5-multimedia"
"${MINGW_PACKAGE_PREFIX}-shared-mime-info")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
#"${MINGW_PACKAGE_PREFIX}-cmake"
#"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-cgal"
"${MINGW_PACKAGE_PREFIX}-eigen3"
"${MINGW_PACKAGE_PREFIX}-imagemagick")
source=("https://files.openscad.org/${_realname}-${pkgver}.src.tar.gz"
'001-openscad-2021-libintl-collisions.patch'
'002-openscad-2021-remove-print-polyhedron.patch'
'003-fix-linking-hidapi-clang.patch'
'004-fix-building-against-cgal5.4.patch::https://github.com/openscad/openscad/commit/abfebc65.patch'
'005-fix-building-against-newer-boost.patch::https://github.com/openscad/openscad/commit/08bf69b4.patch'
'006-fix-building-against-boost-1.85.patch'
'007-fix-linking-to-opengl.patch'
'008-replace-mem_fun-with-mem_fn.patch::https://github.com/openscad/openscad/commit/c9a1abbe.patch'
# https://github.com/openscad/openscad/commit/076234f2
'009-Removed-unnecessary-std-unary_function.patch')
sha256sums=('d938c297e7e5f65dbab1461cac472fc60dfeaa4999ea2c19b31a4184f2d70359'
'f295d41896cc55f6645e080e527ba3d033357bc744b7f7bb01b9271974ee930e'
'43cebd358d152f7a6dc1fc27294c67c4938b207d6a06f26fd60117e3a3c71412'
'0606fe5b76f1f95c23c9dfde8d4e66adf36285c141a5cc11da107022eee297fe'
'e1772cdf305326357989a6b21e65145ef15adb5e2d12b6e22134869a644afc42'
'b1c874b04e2f10e3becb3c92d26bec65fbee530d8cada342fbbe3fdcb5f51c2c'
'c649ce4a6b7b840764955c9c3dee5f7d68b72c2665c8bb71b962554844f43ad4'
'536471fd3ceaa69fe338a45b7300b0b058f7af4b3b99bf87be27423d91f74e9b'
'cf661b055ac12b9abc7c6206cd6a8990d25c24fcceb409d0dc7198c1cbc3e74d'
'976a9d61df8194d2d4581d5d64d872ac966fc6775922da61e176a5108a76c6d5')
apply_patch_with_msg() {
for _fname in "$@"
do
msg2 "Applying ${_fname}"
patch -Nbp1 -i "${srcdir}"/${_fname}
done
}
prepare() {
cd "${srcdir}"/${_realname}-${pkgver}
# https://github.com/openscad/openscad/commit/4c5d19c3
apply_patch_with_msg \
001-openscad-2021-libintl-collisions.patch
# https://github.com/openscad/openscad/commit/9aa0d7e9
apply_patch_with_msg \
002-openscad-2021-remove-print-polyhedron.patch
apply_patch_with_msg \
003-fix-linking-hidapi-clang.patch \
004-fix-building-against-cgal5.4.patch \
005-fix-building-against-newer-boost.patch \
006-fix-building-against-boost-1.85.patch \
007-fix-linking-to-opengl.patch \
008-replace-mem_fun-with-mem_fn.patch \
009-Removed-unnecessary-std-unary_function.patch
# CGAL 5.4 compatibility
sed -i "s|CGAL_VERSION_NR < 1050401000|CGAL_VERSION_NR < CGAL_VERSION_NUMBER(5, 4, 0)|" src/cgalutils-tess.cc
#rm -f libraries/MCAD/*.py
convert "${srcdir}"/${_realname}-${pkgver}/icons/${_realname}.png -resize 128x128\> "${srcdir}"/${_realname}-${pkgver}/icons/${_realname}-128.png
}
build() {
msg2 "Will be in future"
# mkdir -p build-${MSYSTEM} && cd 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
# MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
# ${MINGW_PREFIX}/bin/cmake.exe \
# -G"Ninja" \
# -DCMAKE_PREFIX_PATH=${MINGW_PREFIX} \
# "${_extra_config[@]}" \
# ../${_realname}-${pkgver}
# ${MINGW_PREFIX}/bin/cmake --build .
}
package() {
cd "${srcdir}"/${_realname}-${pkgver}
local -a _extra_config
if check_option "debug" "y"; then
_extra_config+=(CONFIG+=debug)
else
_extra_config+=(CONFIG+=release)
fi
BOOSTDIR=${MINGW_PREFIX} \
CGALDIR=${MINGW_PREFIX} \
EIGENDIR=${MINGW_PREFIX} \
GLEWDIR=${MINGW_PREFIX} \
OPENCSGDIR=${MINGW_PREFIX} \
CXXFLAGS+=" -w" \
${MINGW_PREFIX}/bin/qmake \
"${_extra_config[@]}" \
"CONFIG+=c++17" \
PREFIX="${pkgdir}${MINGW_PREFIX}" \
VERSION="${pkgver}" \
BOOST_LINK_FLAGS="-lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt"
make
make INSTALL_ROOT= install
install -Dm644 "icons/${_realname}.xml" "${pkgdir}${MINGW_PREFIX}/share/mime/packages/${_realname}.xml"
# cd build-${MSYSTEM}
# DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
}