| # 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 |
| } |