# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>

_realname=android-tools
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=36.0.1
_tag=${pkgver}
pkgrel=1
pkgdesc='Android platform tools (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='http://tools.android.com/'
msys2_repository_url='https://github.com/nmeum/android-tools'
license=('spdx:Apache-2.0')
depends=("${MINGW_PACKAGE_PREFIX}-brotli"
         "${MINGW_PACKAGE_PREFIX}-fmt"
         "${MINGW_PACKAGE_PREFIX}-lz4"
         "${MINGW_PACKAGE_PREFIX}-pcre2"
         "${MINGW_PACKAGE_PREFIX}-protobuf"
         "${MINGW_PACKAGE_PREFIX}-zstd")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-go"
             "${MINGW_PACKAGE_PREFIX}-gtest"
             "${MINGW_PACKAGE_PREFIX}-nasm"
             "${MINGW_PACKAGE_PREFIX}-ninja")
source=("https://github.com/nmeum/android-tools/releases/download/${_tag}/${_realname}-${_tag}.tar.xz"
        "https://github.com/msys2/adbwinapi/releases/download/${pkgver}/adbwinapi.zip"
        "https://github.com/msys2/adbwinapi/releases/download/${pkgver}/adbwinapi_sources.zip"
        "AdbWinApi.def"
        "0001-android-tools-cmake.patch"
        "0002-android-tools-vendor.patch"
        "0003-fix-building-with-gcc-mingw.patch"
        "0004-leave-wstat-as-is.patch"
        "0005-missing-includes.patch")
noextract=("${_realname}-${_tag}.tar.xz")
sha256sums=('38e8a84b739480141de0836bf6d581b3339ac7d53d0f7ce8c044a3368c8c2f8f'
            '12b54e1073b1766ddeaad530eb4428bd1ad4d0e5c8f5f64c8383430ab60c7243'
            'abd653002ec63860f39cd310b1b685ba9625ffd27c536df52142d5730485e4a3'
            'e6fc31c148e120fc69be53e0464434c492ab0eaa0dbc8f18dd3c19eb2dd2577b'
            'cfdd5d8877e318f90c0acc320007a3a64571890d38554e0b833037f6a59ff8b6'
            'aecfe0a69ef90406642708dd7b7ad8124be0f5d9dc5eb326c79fd70320b8ff42'
            '528e7a2dbf366832d6ae339e013de7c311efb7fa9139ce3478bc18fe29b0542d'
            '4c670ab8a96da18f26741bad300a8c218ac50cfa96efb713d36a6883d774c300'
            'a71a5370446e3e033c6632e48fc0a29f40fadc7b43ede6a46c61f478df22d49d')

# Helper macros to help make tasks easier #
apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -p1 -i "${srcdir}/${_patch}"
  done
}

prepare() {
  tar -xf "${_realname}-${_tag}.tar.xz" || true

  cd "${srcdir}/${_realname}-${_tag}"
  cp "${srcdir}"/AdbWinApi.def ./vendor/
  cp -r "${srcdir}"/development ./vendor/

  apply_patch_with_msg \
    0001-android-tools-cmake.patch \
    0002-android-tools-vendor.patch \
    0003-fix-building-with-gcc-mingw.patch \
    0004-leave-wstat-as-is.patch \
    0005-missing-includes.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

  CXXFLAGS+=" -Wno-c++11-narrowing" \
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    "${MINGW_PREFIX}"/bin/cmake.exe \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      "${_extra_config[@]}" \
      -DANDROID_TOOLS_USE_BUNDLED_FMT=OFF \
      -DANDROID_TOOLS_USE_BUNDLED_LIBUSB=ON \
      ../${_realname}-${_tag}

  "${MINGW_PREFIX}"/bin/cmake.exe --build .
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"
  DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install .
  install -Dm644 "${srcdir}/${_realname}-${_tag}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"

  if [ "${MSYSTEM}" = "CLANGARM64" ]; then
    cp -r "${srcdir}/arm64"/*.dll "${pkgdir}${MINGW_PREFIX}/bin"
  elif  [ "${CARCH}" = "x86_64" ]; then
    cp -r "${srcdir}/x64"/*.dll "${pkgdir}${MINGW_PREFIX}/bin"
  else
    cp -r "${srcdir}/win32"/*.dll "${pkgdir}${MINGW_PREFIX}/bin"
  fi
}
