# Maintainer: Alexey Pavlov <alexpux@gmail.com>

_realname=codelite
pkgbase=mingw-w64-${_realname}-git
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=12.0.656.g3349d0f7d
pkgrel=1
pkgdesc="Open-source, cross platform IDE for the C/C++ programming languages (mingw-w64)"
arch=('any')
license=('GPL')
url="https://www.codelite.org/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-hunspell"
         "${MINGW_PACKAGE_PREFIX}-libssh"
         "${MINGW_PACKAGE_PREFIX}-drmingw"
         "${MINGW_PACKAGE_PREFIX}-clang"      # libclang
         "${MINGW_PACKAGE_PREFIX}-wxWidgets"
         "${MINGW_PACKAGE_PREFIX}-sqlite3"
         )
optdepends=("${MINGW_PACKAGE_PREFIX}-clang")
makedepends=("${MINGW_PACKAGE_PREFIX}-boost"
             "${MINGW_PACKAGE_PREFIX}-cmake"
#             "${MINGW_PACKAGE_PREFIX}-clang"
             "git")
options=(strip staticlibs !debug)
source=("${_realname}::git+https://github.com/eranif/codelite.git"
        001-include-winsock-header.patch
        002-mingw-use-wx-manifests.patch
        003-use-gnu-extensions.patch
        004-windows-headers-conflict.patch
        005-fix-sqlite3-find-and-build.patch
        006-proper-libraries-names-mingw.patch
        007-strip-whitespaces-flags.patch
        008-remove-unneded-code.patch
        010-strange-conflicts.patch)
sha256sums=('SKIP'
            '049c138e6c24a37a5c42e90fa01b7c8117aaf2265a7e0d92801152ae771ec5d2'
            'bdc8e27060fc4e614fd354c580f7a0d6615763397287912c160eb0285c148473'
            'fbed169ac80a8679c3b5fadb2521a61745c98eebb65050a088d82240b0da37d5'
            '7ff9afc4b77941edcaea20c159c7085c136bd68a1e7c08da8958d0b9c3c97c9a'
            'ad3f971836dca9f723186cc9868ec157bee53858d69b8ab4ee16e92a7bd7d4cb'
            '1206b6453000e1dbe8058fb646c97599b2a072f4aad412047f439b288e662777'
            'a9e5539e31c664a84e42412cdd30b44699a92efb2fb6f51000010bb958c10219'
            '3a8af652eeb9a29a0230450ee29a694b73f662324c17f17847b31f39a8e0c1db'
            '4800e2622e365b2acceb38c692ab919ca46c72e9d4f3a4b2f2d730f80c8d8142')

pkgver() {
  cd "${_realname}"
  git describe --tags | sed 's|-|.|g'
}

prepare() {
  cd "${srcdir}/${_realname}"
  patch -p1 -i ${srcdir}/001-include-winsock-header.patch
  patch -p1 -i ${srcdir}/002-mingw-use-wx-manifests.patch
  patch -p1 -i ${srcdir}/003-use-gnu-extensions.patch
  patch -p1 -i ${srcdir}/004-windows-headers-conflict.patch
  patch -p1 -i ${srcdir}/005-fix-sqlite3-find-and-build.patch
  patch -p1 -i ${srcdir}/006-proper-libraries-names-mingw.patch
  patch -p1 -i ${srcdir}/007-strip-whitespaces-flags.patch
  patch -p1 -i ${srcdir}/008-remove-unneded-code.patch
  patch -p1 -i ${srcdir}/010-strange-conflicts.patch
}

build() {
  local -a extra_config

  if check_option "debug" "y"; then
    extra_config+=( -DCMAKE_BUILD_TYPE=Debug )
  else
    extra_config+=( -DCMAKE_BUILD_TYPE=Release )
  fi

  mkdir -p build-${MINGW_CHOST}
  cd build-${MINGW_CHOST}
  MSYS2_ARG_CONV_EXCL="-DCL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake \
    -Wno-dev \
    -G"MSYS Makefiles" \
    -DCL_PREFIX=${MINGW_PREFIX} \
    -DENABLE_CLANG=1 \
    -DWITH_WEBVIEW=1 \
    -DwxWidgets_CONFIG_EXECUTABLE=${MINGW_PREFIX}/bin/wx-config \
    -DwxWidgets_wxrc_EXECUTABLE=${MINGW_PREFIX}/bin/wxrc-3.0 \
    "${extra_config[@]}" \
    ../${_realname}

  make # -j1 VERBOSE=1
}

package() {
  cd build-${MINGW_CHOST}
  make DESTDIR=${pkgdir} install

  # why?
  rm -f ${pkgdir}${MINGW_PREFIX}/lib/codelite/*.a
  rm -f ${pkgdir}${MINGW_PREFIX}/lib/*.a
}
