127 lines
4.6 KiB
Bash
127 lines
4.6 KiB
Bash
# Maintainer: Yusuke Sasaki <yusuke.sasaki.nuem@gmail.com>
|
|
|
|
_realname=cppcheck
|
|
pkgbase=mingw-w64-${_realname}
|
|
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
|
|
pkgver=2.12.1
|
|
pkgrel=1
|
|
pkgdesc="static analysis of C/C++ code (mingw-w64)"
|
|
arch=('any')
|
|
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
|
|
url="https://cppcheck.sourceforge.io/"
|
|
license=('spdx:GPL-3.0-or-later')
|
|
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
|
|
"${MINGW_PACKAGE_PREFIX}-pcre")
|
|
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
|
|
"${MINGW_PACKAGE_PREFIX}-cmake"
|
|
"${MINGW_PACKAGE_PREFIX}-ninja"
|
|
"${MINGW_PACKAGE_PREFIX}-docbook-xsl"
|
|
$([[ ${CARCH} != i686 ]] && echo \
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-base" \
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-charts" \
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-declarative" \
|
|
"${MINGW_PACKAGE_PREFIX}-qt6-tools" || echo \
|
|
"${MINGW_PACKAGE_PREFIX}-qt5-base" \
|
|
"${MINGW_PACKAGE_PREFIX}-qt5-charts" \
|
|
"${MINGW_PACKAGE_PREFIX}-qt5-tools")
|
|
"${MINGW_PACKAGE_PREFIX}-clang"
|
|
"${MINGW_PACKAGE_PREFIX}-python"
|
|
"${MINGW_PACKAGE_PREFIX}-tinyxml2")
|
|
optdepends=("${MINGW_PACKAGE_PREFIX}-python-pygments: cppcheck-htmlreport")
|
|
if [[ ${CARCH} != i686 ]]; then
|
|
optdepends+=("${MINGW_PACKAGE_PREFIX}-qt6-charts: cppcheck-gui")
|
|
else
|
|
optdepends+=("${MINGW_PACKAGE_PREFIX}-qt5-charts: cppcheck-gui")
|
|
fi
|
|
source=(${_realname}-${pkgver}.tar.gz::"https://github.com/danmar/cppcheck/archive/${pkgver}.tar.gz"
|
|
'001-cppcheck-2.2-change-language-files-path.patch'
|
|
'002-cppcheck-2.2-change-cfg-path.patch')
|
|
sha256sums=('2a3d4ba1179419612183ab3d6aed6d3b18be75e98cd6f138ea8e2020905dced2'
|
|
'e741bfafbeb3ade454a42563a1c4617ae3dc87fd6a6f409e1ae4b735b68997d3'
|
|
'd6e156adc892159d506982bad2048b6c4842ab9dd9f64d047ee36780fb5cf57f')
|
|
|
|
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-cppcheck-2.2-change-language-files-path.patch \
|
|
002-cppcheck-2.2-change-cfg-path.patch
|
|
}
|
|
|
|
build() {
|
|
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
|
|
|
|
declare -a extra_config
|
|
if check_option "debug" "y"; then
|
|
extra_config+=(-DCMAKE_BUILD_TYPE=Debug)
|
|
else
|
|
extra_config+=(-DCMAKE_BUILD_TYPE=Release)
|
|
fi
|
|
|
|
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DFILESDIR=" \
|
|
${MINGW_PREFIX}/bin/cmake.exe \
|
|
-G"Ninja" \
|
|
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
|
|
-DUSE_MATCHCOMPILER=ON \
|
|
-DFILESDIR=${MINGW_PREFIX}/share/cppcheck \
|
|
-DHAVE_RULES=ON \
|
|
-DBUILD_GUI=ON \
|
|
-DWITH_QCHART=ON \
|
|
-DUSE_BUNDLED_TINYXML2=OFF \
|
|
-DUSE_QT6=$([[ ${CARCH} != i686 ]] && echo "ON" || echo "OFF") \
|
|
-DCMAKE_CXX_STANDARD=14 \
|
|
"${extra_config[@]}" \
|
|
../${_realname}-${pkgver}
|
|
|
|
${MINGW_PREFIX}/bin/cmake --build .
|
|
|
|
# man
|
|
cd "${srcdir}"/${_realname}-${pkgver}
|
|
make man \
|
|
DB2MAN=${MINGW_PREFIX}/share/xml/docbook/xsl-stylesheets-1.79.2/manpages/docbook.xsl \
|
|
FILESDIR=${MINGW_PREFIX}/share/cppcheck
|
|
# help
|
|
if [[ ${CARCH} != i686 ]]; then
|
|
_qhg=${MINGW_PREFIX}/share/qt6/bin/qhelpgenerator
|
|
else
|
|
_qhg=${MINGW_PREFIX}/bin/qhelpgenerator
|
|
fi
|
|
${_qhg} gui/help/online-help.qhcp -o gui/help/online-help.qhc
|
|
}
|
|
|
|
check() {
|
|
cd "${srcdir}"/build-${MSYSTEM}
|
|
${MINGW_PREFIX}/bin/cmake -DBUILD_TESTS=ON ../${_realname}-${pkgver}
|
|
${MINGW_PREFIX}/bin/cmake --build .
|
|
cd bin && ./testrunner -g -q
|
|
}
|
|
|
|
package() {
|
|
cd "${srcdir}"/build-${MSYSTEM}
|
|
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install .
|
|
# Fix location of language files
|
|
install -d "${pkgdir}"${MINGW_PREFIX}/share/${_realname}/lang
|
|
mv "${pkgdir}"${MINGW_PREFIX}/bin/cppcheck_*.qm "${pkgdir}"${MINGW_PREFIX}/share/${_realname}/lang/
|
|
# Remove freedesktop (Linux) files
|
|
rm -r "${pkgdir}"${MINGW_PREFIX}/share/applications
|
|
rm -r "${pkgdir}"${MINGW_PREFIX}/share/icons
|
|
|
|
cd "${srcdir}"/${_realname}-${pkgver}
|
|
# man and COPYING
|
|
install -Dpm644 cppcheck.1 "${pkgdir}${MINGW_PREFIX}/share/man/man1/cppcheck.1"
|
|
install -Dpm644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/cppcheck/COPYING"
|
|
|
|
# Install extra files
|
|
install -Dpm644 htmlreport/cppcheck-htmlreport "${pkgdir}${MINGW_PREFIX}/bin/cppcheck-htmlreport"
|
|
install -d "${pkgdir}${MINGW_PREFIX}/share/cppcheck/help"
|
|
install -D gui/help/online-help.qch -t "${pkgdir}${MINGW_PREFIX}/share/cppcheck/help"
|
|
install -D gui/help/online-help.qhc -t "${pkgdir}${MINGW_PREFIX}/share/cppcheck/help"
|
|
}
|