# Maintainer: yumetodo <yume-wikijp@live.jp>

_realname=lpsolve
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=5.5.2.11
pkgrel=1
pkgdesc="Mixed Integer Linear Programming (MILP) solver (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
url="https://sourceforge.net/projects/lpsolve/"
license=('spdx:LGPL-2.1-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-cc")
source=("https://downloads.sourceforge.net/project/${_realname}/${_realname}/${pkgver}/lp_solve_${pkgver}_source.tar.gz"
        "CMakeLists.txt"
        "lpsolveConfig.cmake.in"
        "avoid_undefined_reference.patch")
sha256sums=('6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f'
            'b37e745e83b1a3e7b3a282fc0ffbb60f0a29fc4ca7533e3e97f10e21c6ae0ecd'
            '11e739b216ba402ae6af1e3a6bcf281f5bbb859ef0521362e82ac583a723d97d'
            '0737fc393b2791089dc87cb546494fc6957725da36423e22a4ab4e80f929db48')

prepare() {
  cd "${srcdir}/lp_solve_5.5"
  cp "${srcdir}/CMakeLists.txt" .
  cp "${srcdir}/lpsolveConfig.cmake.in" .
  patch -p0 -i "${srcdir}/avoid_undefined_reference.patch"
}

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

  # shared build
  [[ -d ${srcdir}/build-${MSYSTEM}-shared ]] && rm -rf ${srcdir}/build-${MSYSTEM}-shared
  mkdir -p ${srcdir}/build-${MSYSTEM}-shared && cd ${srcdir}/build-${MSYSTEM}-shared
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"MSYS Makefiles" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    ${extra_config} \
    -DLIB_TYPE=SHARED \
    ../lp_solve_5.5
  make

  # static build
  [[ -d ${srcdir}/build-${MSYSTEM}-static ]] && rm -rf ${srcdir}/build-${MSYSTEM}-static
  mkdir -p ${srcdir}/build-${MSYSTEM}-static && cd ${srcdir}/build-${MSYSTEM}-static
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"MSYS Makefiles" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    ${extra_config} \
    -DLIB_TYPE=STATIC \
    ../lp_solve_5.5
  make
}

package() {
  # Shared Install
  cd "${srcdir}/build-${MSYSTEM}-shared"
  make DESTDIR="${pkgdir}" install

  # Static Install
  cd "${srcdir}/build-${MSYSTEM}-static"
  make DESTDIR="${pkgdir}" install
}

warn_build_references() {
  : # I like __FILE__ and don't consider build references to be a problem
}
