#!/usr/bin/env bash
name='llvm'
release='4'
version='19.1.7'
url='https://llvm.org'
description='Low Level Virtual Machine'
email='aliriza.keskin@pardus.org.tr'
maintainer='aliriza'
license=('GPLv3')
source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-$version.src.tar.xz"
        "https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/cmake-$version.src.tar.xz"
        "https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-third-party.src.tar.xz")
depends=(libffi xz-utils libxml2 zlib)
makedepends=(git)
sha256sums=('96f833c6ad99a3e8e1d9aca5f439b8fd2c7efdcf83b664e0af1c0712c5315910'
            '11c5a28f90053b0c43d0dec3d0ad579347fc277199c005206b963c19aae514e3'
            '640dfceac068374e3dbce3576892712d157705b35dfe13dd17518c256ad29d5e')
group=(sys.devel)
uses=()
arch=('x86_64')

cd llvm-$version.src

export PYTHON=/usr/bin/python3

cmake_args=(
    -G Ninja
    -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_DOCDIR=share/doc
    -DCMAKE_INSTALL_PREFIX=/usr
    -DCMAKE_SKIP_RPATH=ON
    -DLLVM_BINUTILS_INCDIR=/usr/include
    -DLLVM_BUILD_DOCS=OFF
    -DLLVM_BUILD_LLVM_DYLIB=ON
    -DLLVM_BUILD_TESTS=OFF
    -DLLVM_ENABLE_BINDINGS=OFF
    -DLLVM_ENABLE_FFI=ON
    -DLLVM_ENABLE_RTTI=ON
    -DLLVM_ENABLE_SPHINX=OFF
    -DLLVM_INCLUDE_BENCHMARKS=OFF
    -DLLVM_INSTALL_UTILS=ON
    -DLLVM_LINK_LLVM_DYLIB=ON
    -DLLVM_USE_PERF=ON
    -DSPHINX_WARNINGS_AS_ERRORS=OFF
)

prepare(){
    mv ../cmake{-$version.src,}
    mv ../llvm-third-party.src ../third-party
}

setup(){
    mkdir build
    cd build
    cmake .. ${cmake_args[@]}
}

build(){
    cd build
    ninja ${jobs}
}

package(){
    cd build
    ninja install ${jobs}
    mv ${DESTDIR}/usr/lib{,64}
}

