# Maintainer: Alexey Pavlov # Contributor: Mario Emmenlauer _realname=ccache pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=4.9.1 pkgrel=1 pkgdesc="Compiler cache that speeds up recompilation by caching previous compilations (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'mingw32' 'ucrt64' 'clang64' 'clangarm64' 'clang32') url="https://ccache.dev/" msys2_repository_url="https://github.com/ccache/ccache" license=("spdx:GPL-3.0-or-later") replaces=("${MINGW_PACKAGE_PREFIX}-${_realname}-git") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-asciidoctor" "${MINGW_PACKAGE_PREFIX}-pkgconf") depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-hiredis" "${MINGW_PACKAGE_PREFIX}-zstd") source=("https://github.com/ccache/ccache/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.xz"{,.asc} "001-fix-build-with-clang.patch") sha256sums=('4c03bc840699127d16c3f0e6112e3f40ce6a230d5873daa78c60a59c7ef59d25' 'SKIP' '92edb742790c1f0b9300a18469e2e9841867d070c1b5f6bfbf45b5412326fe75') validpgpkeys=('5A939A71A46792CF57866A51996DDA075594ADB8') # Joel Rosdahl prepare() { cd ${_realname}-${pkgver} patch -p1 -i "${srcdir}"/001-fix-build-with-clang.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 MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ -GNinja \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ "${extra_config[@]}" \ -DBUILD_SHARED_LIBS=ON \ -DSTATIC_LINK=OFF \ -DENABLE_TESTING=OFF \ $([[ ${MSYSTEM_CARCH} == aarch64 ]] && echo "-DENABLE_DOCUMENTATION=OFF") \ ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/cmake --build . } check() { # run unittest to verify that the program is not broken cd "${srcdir}"/build-${MSYSTEM} ${MINGW_PREFIX}/bin/cmake -DENABLE_TESTING=ON ../${_realname}-${pkgver} ${MINGW_PREFIX}/bin/cmake --build . ${MINGW_PREFIX}/bin/ctest -R unittest } package() { cd "${srcdir}/build-${MSYSTEM}" DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install . # hack: use bash scripts as shortcuts since we cannot use symlinks install -d ${pkgdir}${MINGW_PREFIX}/lib/ccache/bin cd ${pkgdir}${MINGW_PREFIX}/lib/ccache/bin scripts=(c++ cc cpp ${CC} ${CXX} ${MINGW_CHOST}-${CXX} ${MINGW_CHOST}-c++ ${MINGW_CHOST}-${CC}) for fn in ${scripts[*]}; do echo -e '#!/bin/bash\n\nccache '${MINGW_PREFIX}'/bin/'$fn' "$@"' > $fn done }