blob: fd56a674307ddad82149e8e5291222c427113e11 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>
_realname=cmake
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.20.5
pkgrel=2
pkgdesc="A cross-platform open-source make system (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://www.cmake.org/"
license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-bzip2"
"${MINGW_PACKAGE_PREFIX}-ncurses"
"${MINGW_PACKAGE_PREFIX}-python-sphinx"
"${MINGW_PACKAGE_PREFIX}-xz"
"${MINGW_PACKAGE_PREFIX}-zstd"
$([[ ${MSYSTEM} == "CLANG32" ]] || \
[[ ${MSYSTEM} == "CLANGARM64" ]] || \
echo "${MINGW_PACKAGE_PREFIX}-qt5")
$([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || \
[[ ${MINGW_PACKAGE_PREFIX} == *-ucrt-* ]] || \
echo "${MINGW_PACKAGE_PREFIX}-emacs"))
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-curl"
"${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-jsoncpp"
"${MINGW_PACKAGE_PREFIX}-libarchive"
"${MINGW_PACKAGE_PREFIX}-libuv"
"${MINGW_PACKAGE_PREFIX}-rhash"
"${MINGW_PACKAGE_PREFIX}-zlib")
optdepends=("${MINGW_PACKAGE_PREFIX}-qt5: CMake Qt GUI"
"${MINGW_PACKAGE_PREFIX}-emacs: for cmake emacs mode")
options=('staticlibs') # '!strip' 'debug'
source=("https://github.com/Kitware/CMake/releases/download/v${pkgver}/${_realname}-${pkgver}.tar.gz"
"0001-Disable-response-files-for-MSYS-Generator.patch"
"0002-Do-not-install-Qt-bundle-in-cmake-gui.patch"
"0004-Output-line-numbers-in-callstacks.patch"
"35d3e00e4e9b138dec1d1a646766fc342d04b8f5.patch")
sha256sums=('12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0'
'25793edcbac05bb6d17fa9947b52ace4a6b5ccccf7758e22ae9ae022ed089061'
'f6cf6a6f2729db2b9427679acd09520af2cd79fc26900b19a49cead05a55cd1a'
'15fdf3fb1a0f1c153c8cfbdd2b5c64035b7a04de618bfe61d7d74ced0d6a5c4b'
'c4c120046860c014e0da4be959decf330ad8dcdae5a48ebcb8ec59006eb0e625')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying $_patch"
patch -Np1 -i "${srcdir}/$_patch"
done
}
del_file_exists() {
for _fname in "$@"
do
if [ -f $_fname ]; then
rm -rf $_fname
fi
done
}
# =========================================== #
prepare() {
cd ${_realname}-${pkgver}
apply_patch_with_msg \
0001-Disable-response-files-for-MSYS-Generator.patch \
0002-Do-not-install-Qt-bundle-in-cmake-gui.patch \
0004-Output-line-numbers-in-callstacks.patch \
35d3e00e4e9b138dec1d1a646766fc342d04b8f5.patch
}
build() {
mkdir -p "${srcdir}/build-${MSYSTEM}"
cd "${srcdir}/build-${MSYSTEM}"
local -a _qtconfig
if [[ "${MSYSTEM}" != "CLANG32" ]] &&
[[ "${MSYSTEM}" != "CLANGARM64" ]]; then
_qtconfig+=("--qt-gui" "--qt-qmake=${MINGW_PREFIX}/bin/qmake.exe")
fi
MSYSTEM=MINGW FC=${MINGW_PREFIX}/bin/gfortran.exe \
"${srcdir}"/${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--system-libs \
--parallel=${NUMBER_OF_PROCESSORS} \
--mandir=share/man \
--docdir=share/doc/cmake \
--sphinx-man --sphinx-html \
--bootstrap-system-jsoncpp \
--bootstrap-system-libuv \
--bootstrap-system-librhash \
${_qtconfig[@]}
plain "Start building..."
make
}
check() {
cd "${srcdir}/build-${MSYSTEM}"
./bin/ctest.exe -j$(($(nproc)+1))
}
package() {
cd "${srcdir}/build-${MSYSTEM}"
./bin/cmake.exe \
-DCMAKE_INSTALL_PREFIX:PATH=${pkgdir}${MINGW_PREFIX} \
-DCMAKE_INSTALL_LOCAL_ONLY:BOOL=OFF -P cmake_install.cmake
install -d "${pkgdir}${MINGW_PREFIX}"/share/emacs/site-lisp/
if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]] && \
[[ ${MINGW_PACKAGE_PREFIX} != *-ucrt-* ]]; then
${MINGW_PREFIX}/bin/emacs -batch -f batch-byte-compile \
"${pkgdir}${MINGW_PREFIX}"/share/emacs/site-lisp/cmake-mode.el
fi
}