# Maintainer: Konstantin Gizdov <arch at kge dot pw>
# Maintainer: Torsten Keßler <tpkessler at archlinux dot org>

pkgname=intel-oneapi-openmp
_pkgver=2024.1
pkgver=2024.1.0
_debpkgrel=963
pkgrel=1
pkgdesc="Intel oneAPI OpenMP runtime library"
arch=('x86_64' 'aarch64')
url='https://software.intel.com/content/www/us/en/develop/tools/oneapi.html'
license=("LicenseRef-Intel-EULA-Developer-Tools")
source=("https://apt.repos.intel.com/oneapi/pool/main/${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
        "https://apt.repos.intel.com/oneapi/pool/main/${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
        "https://apt.repos.intel.com/oneapi/pool/main/${pkgname}-common-${_pkgver}-${pkgver}-${_debpkgrel}_all.deb"
        "https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-runtime-openmp-${pkgver}-${_debpkgrel}_amd64.deb"
        "https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-runtime-openmp-opencl-shared-2024-${pkgver}-${_debpkgrel}_amd64.deb")
b2sums=('64cffcbe93099ed3847546d3c0533b33bc72f5a84bc401640add716678dcf8dee31266c66cc891a99e425f729deefc03c13a0698ffe66f0c78d4be3941cd945c'
        '64cffcbe93099ed3847546d3c0533b33bc72f5a84bc401640add716678dcf8dee31266c66cc891a99e425f729deefc03c13a0698ffe66f0c78d4be3941cd945c'
        '8b91efd7dbf595372c1ad8f56e9cdc93b3ddd351cf5b2a9e74c3acdf150bd04e2c803ee819395ecc25f364674e192be4b8a53aefc973ed96f98053c902e860ab'
        '58dca4d069d6c8ce9d14d8eee0eed3b1b741732716ec0162ec5f9849bd93620884b8365a3f859a251f730269208166898c659d4f5dd8dbc35a552665044de370'
        '0f455974873013e2994ccd02f22b6094040438e915bcf2a95405678eae6e804009e3a08356049794bb47bfa7c480e395aa43d2cd34b8dfd4afe7acf3a0b35d2d')
depends=('intel-oneapi-common' 'intel-oneapi-tcm' 'sh' 'glibc' 'gcc-libs' 'zlib'
         'libelf' 'level-zero-loader' 'libffi')
noextract=(
    "${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
    "${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
    "${pkgname}-common-${_pkgver}-${pkgver}-${_debpkgrel}_all.deb"
    "intel-oneapi-runtime-openmp-${pkgver}-${_debpkgrel}_amd64.deb"
    "intel-oneapi-runtime-openmp-opencl-shared-2024-${pkgver}-${_debpkgrel}_amd64.deb"
)
conflicts=('intel-oneapi-basekit')

package() {
    cd "${srcdir}"

    ar x "${srcdir}/${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
    tar xvf data.tar.xz -C "${pkgdir}"
    rm data.tar.xz

    ar x "${srcdir}/${pkgname}-${_pkgver}-${pkgver}-${_debpkgrel}_amd64.deb"
    tar xvf data.tar.xz -C "${pkgdir}"
    rm data.tar.xz

    ar x "${srcdir}/${pkgname}-common-${_pkgver}-${pkgver}-${_debpkgrel}_all.deb"
    tar xvf data.tar.xz -C "${pkgdir}"
    rm data.tar.xz

    ar x "${srcdir}/intel-oneapi-runtime-openmp-${pkgver}-${_debpkgrel}_amd64.deb"
    tar xvf data.tar.xz -C "${pkgdir}"
    rm data.tar.xz

    ar x "${srcdir}/intel-oneapi-runtime-openmp-opencl-shared-2024-${pkgver}-${_debpkgrel}_amd64.deb"
    tar xvf data.tar.xz -C "${pkgdir}"
    rm data.tar.xz

    # fix permissions
    find "${pkgdir}" -type f \( -iname '*.so' -o -iname '*.so.*' \) -exec chmod +x '{}' \;

    # fix pkgconfig
    local _prefix=/opt/intel/oneapi/compiler
    sed -e "s@prefix=.*@prefix=${_prefix}/latest@g" \
        -i "${pkgdir}/${_prefix}/${_pkgver}"/lib/pkgconfig/openmp.pc
    install -d "${pkgdir}"/usr/share/pkgconfig
    ln -s {"${_prefix}"/latest/lib/pkgconfig/,"${pkgdir}"/usr/share/pkgconfig/}openmp.pc

    # ldconfig
    install -d "${pkgdir}"/etc/ld.so.conf.d
    echo "${_prefix}"/${_pkgver}/"$(sed -n 's/libdir=${prefix}\///p' "${pkgdir}/${_prefix}/${_pkgver}"/lib/pkgconfig/openmp.pc)" \
        > "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf"
    echo "/opt/intel/oneapi/lib/intel64" >> "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf"
    echo "${_prefix}/latest/linux/compiler/lib/intel64" >> "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf"

    install -d "${pkgdir}"/usr/share/licenses/"${pkgname}"
    ln -s /usr/share/licenses/intel-oneapi "${pkgdir}"/usr/share/licenses/"${pkgname}"/oneapi
    ln -s /opt/intel/oneapi/compiler/"${_pkgver}"/licensing/openmp "${pkgdir}"/usr/share/licenses/"${pkgname}"/openmp
}
