مهدي شينون (Mehdi Chinoune) c6ee991ffc kicad: re-enable nanodbc async support.
2025-05-24 07:13:59 +01:00

172 lines
5.9 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Tim Stahlhut <stahta01@gmail.com>
# Remember to update mingw-w64-kicad-doc and mingw-w64-kicad-library when
# updating this build rule.
_wx_basever=3.2
_realname=kicad
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-${_realname}-meta")
pkgver=9.0.2
pkgrel=2
pkgdesc="Software for the creation of electronic schematic diagrams and printed circuit board artwork (mingw-w64)"
arch=(any)
mingw_arch=('ucrt64' 'clang64')
url="https://www.kicad.org/"
msys2_repository_url="https://gitlab.com/kicad/code/kicad"
msys2_references=(
'archlinux: kicad'
"cpe: cpe:/a:kicad:eda"
"cpe: cpe:/a:kicad:kicad_eda"
)
license=("spdx:GPL-3.0-or-later")
groups=("${MINGW_PACKAGE_PREFIX}-eda")
depends=(
"${MINGW_PACKAGE_PREFIX}-abseil-cpp"
"${MINGW_PACKAGE_PREFIX}-cairo"
"${MINGW_PACKAGE_PREFIX}-curl"
"${MINGW_PACKAGE_PREFIX}-fmt"
"${MINGW_PACKAGE_PREFIX}-freeglut"
"${MINGW_PACKAGE_PREFIX}-glew"
"${MINGW_PACKAGE_PREFIX}-glm"
"${MINGW_PACKAGE_PREFIX}-nng"
"${MINGW_PACKAGE_PREFIX}-protobuf"
"${MINGW_PACKAGE_PREFIX}-kicad-footprints"
"${MINGW_PACKAGE_PREFIX}-kicad-symbols"
"${MINGW_PACKAGE_PREFIX}-libgit2"
"${MINGW_PACKAGE_PREFIX}-ngspice"
"${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-opencascade"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-wxPython"
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw-libs"
"${MINGW_PACKAGE_PREFIX}-zlib"
)
makedepends=(
"${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-ninja"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-boost"
"${MINGW_PACKAGE_PREFIX}-doxygen"
"${MINGW_PACKAGE_PREFIX}-swig"
"${MINGW_PACKAGE_PREFIX}-wxwidgets${_wx_basever}-msw"
"git"
)
optdepends=(
"${MINGW_PACKAGE_PREFIX}-kicad-templates: for template libraries"
"${MINGW_PACKAGE_PREFIX}-kicad-packages3D: for 3D model libraries"
)
_doc=("ca" "de" "en" "es" "fr" "id" "it" "ja" "nl" "pl" "ru" "zh")
for _doclang in ${_doc[@]}; do
optdepends+=("${MINGW_PACKAGE_PREFIX}-${_realname}-doc-${_doclang}: for documentation (${_doclang})");
done
source=(
"https://gitlab.com/kicad/code/kicad/-/archive/${pkgver}/kicad-${pkgver}.tar.bz2"
'002-ki-6.0-cmake-fixes-for-MINGW-CLANG.patch'
'003-ki-6.0-code-fixes-for-GNUC-CLANG.patch'
'004-fix-loading-ngspice-dll.patch'
'006-ki-6.0-rewrite-kiwin32_rc_for_clang.patch'
'007-llvm-libcxx-19.patch'
'009-clang-needs-explicit-json-implementations.patch'
)
sha256sums=('a184642b085f446e1709e373ea2b12872295ad5b3cc2ef894af155928d7f8e0d'
'2924a86849c02aecd21cded0bd2069353fca33c3364f9b41f9bfdd80e19085cf'
'd8d5f4bdd0aa6d8a907710c523f6f95840636cb2ef69e5275c6ed4966f134353'
'f35a96c2393c21c266dbcd42616df64f9ee13b2423478bf6de029a3ad4e0ee8a'
'3155b9515ec7c094221441ce337c566c346bf76bb7aa42e86660cfdfb599e307'
'5531acad48988772e4453f42ac749f4001170e4be892d3f224b37e0e606ab5ab'
'7523f89100db3dd594c10ab76ec002359c4505c7fa6f7de3e2eb71acd651a242')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _fname in "$@"
do
msg2 "Applying ${_fname}"
patch -Nbp1 -i "${srcdir}"/${_fname}
done
}
prepare() {
cd ${_realname}-${pkgver}
apply_patch_with_msg \
002-ki-6.0-cmake-fixes-for-MINGW-CLANG.patch \
003-ki-6.0-code-fixes-for-GNUC-CLANG.patch \
004-fix-loading-ngspice-dll.patch \
006-ki-6.0-rewrite-kiwin32_rc_for_clang.patch \
007-llvm-libcxx-19.patch \
009-clang-needs-explicit-json-implementations.patch
}
build() {
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
export GIT_DIR=/dev/null
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=;DCMAKE_PREFIX_PATH=;DEFAULT_INSTALL_PATH=" \
"${MINGW_PREFIX}"/bin/cmake.exe -Wno-dev \
-GNinja \
-DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
"${_extra_config[@]}" \
-DCMAKE_PREFIX_PATH="${MINGW_PREFIX}" \
-DDEFAULT_INSTALL_PATH="${MINGW_PREFIX}" \
-DwxWidgets_CONFIG_EXECUTABLE="${MINGW_PREFIX}"/bin/wx-config-${_wx_basever} \
-DOCC_INCLUDE_DIR="${MINGW_PREFIX}"/include/opencascade \
-DKICAD_SCRIPTING_WXPYTHON=ON \
-DKICAD_BUILD_I18N=ON \
-DKICAD_BUILD_QA_TESTS=OFF \
-DPYTHON_EXECUTABLE="${MINGW_PREFIX}"/bin/python.exe \
-DPYTHON_INCLUDE_DIR=$("${MINGW_PREFIX}"/bin/python.exe -c "from sysconfig import get_paths as gp; print(gp()[\"include\"])") \
-DPYTHON_ROOT_DIR="${MINGW_PREFIX}" \
-DNGSPICE_ROOT_DIR=${MINGW_PREFIX} \
../${_realname}-${pkgver}
"${MINGW_PREFIX}"/bin/cmake.exe --build .
}
package_kicad() {
cd "${srcdir}/build-${MSYSTEM}"
DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install .
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE.README \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.README
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/LICENSE.GPLv3 \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.GPLv3
}
package_kicad-meta() {
pkgdesc="Meta package for KiCad containing the core application and support libraries (mingw-w64)"
optdepends=()
replaces=()
conflicts=()
provides=()
depends=(${MINGW_PACKAGE_PREFIX}-${_realname}
${MINGW_PACKAGE_PREFIX}-${_realname}-footprints
${MINGW_PACKAGE_PREFIX}-${_realname}-symbols
${MINGW_PACKAGE_PREFIX}-${_realname}-templates
${MINGW_PACKAGE_PREFIX}-${_realname}-packages3D)
}
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :
# generate wrappers
for _name in "${pkgname[@]}"; do
_short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
_func="$(declare -f "${_short}")"
eval "${_func/#${_short}/package_${_name}}"
done
# template end;