102 lines
3.4 KiB
Bash
102 lines
3.4 KiB
Bash
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
|
|
# Contributor: Mario Emmenlauer <memmenlauer@biodataanalysis.de>
|
|
|
|
_realname=ccache
|
|
pkgbase=mingw-w64-${_realname}
|
|
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
|
|
pkgver=4.12.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')
|
|
url="https://ccache.dev/"
|
|
msys2_repository_url="https://github.com/ccache/ccache"
|
|
msys2_changelog_url="https://ccache.dev/releasenotes.html"
|
|
msys2_references=(
|
|
'anitya: 257'
|
|
'archlinux: ccache'
|
|
'gentoo: dev-util/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"
|
|
$([[ ${CARCH} == i686 ]] || echo "${MINGW_PACKAGE_PREFIX}-asciidoctor")
|
|
"${MINGW_PACKAGE_PREFIX}-pkgconf")
|
|
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
|
|
"${MINGW_PACKAGE_PREFIX}-fmt"
|
|
"${MINGW_PACKAGE_PREFIX}-xxhash"
|
|
"${MINGW_PACKAGE_PREFIX}-zstd"
|
|
$([[ ${CARCH} == i686 ]] || echo \
|
|
"${MINGW_PACKAGE_PREFIX}-hiredis" \
|
|
"${MINGW_PACKAGE_PREFIX}-libblake3"))
|
|
source=("https://github.com/ccache/ccache/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.xz"{,.minisig})
|
|
sha256sums=('42e6c4b260cffd92dfa755e26390f45f5842e8c1a5f64f2b2e68adfbe82d1542'
|
|
'bda06a7172e0a9977bd046b3e5623b09c5c5de3028145a09d427af489b521d0b')
|
|
validpgpkeys=('5A939A71A46792CF57866A51996DDA075594ADB8') # Joel Rosdahl <joel@rosdahl.net>
|
|
|
|
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 [[ ${CARCH} == x86_64 ]]; then
|
|
extra_config+=("-DENABLE_DOCUMENTATION=ON")
|
|
else
|
|
extra_config+=("-DENABLE_DOCUMENTATION=OFF")
|
|
fi
|
|
|
|
if [[ ${CARCH} == i686 ]]; then
|
|
extra_config+=("-DREDIS_STORAGE_BACKEND=OFF")
|
|
else
|
|
extra_config+=("-DREDIS_STORAGE_BACKEND=ON")
|
|
fi
|
|
|
|
if [[ "${CC}" == "gcc" ]]; then
|
|
# https://github.com/fmtlib/fmt/issues/4133
|
|
CXXFLAGS+=" -Wno-error=stringop-overflow"
|
|
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 \
|
|
-DCCACHE_DEV_MODE=OFF \
|
|
-DWARNINGS_AS_ERRORS=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
|
|
}
|