#!/usr/bin/env bash
name='lld'
release='6'
version='22.1.0'
url='https://github.com/llvm/llvm-project'
description='The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.'
email='aliriza.keskin@pardus.org.tr'
maintainer='aliriza'
license=('GPLv3')
source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz")
depends=(llvm)
makedepends=()
sha256sums=('25d2e2adc4356d758405dd885fcfd6447bce82a90eb78b6b87ce0934bd077173')
group=(sys.devel)
uses=()
arch=('x86_64')

cd llvm-project-$version.src

local cmake_args=(
    -G Ninja
    -Wno-dev
    -DCMAKE_BUILD_TYPE=Release
    -DCMAKE_INSTALL_PREFIX=/usr
    -DCMAKE_INSTALL_DOCDIR=share/doc
    -DCMAKE_SKIP_RPATH=ON
    -DBUILD_SHARED_LIBS=ON
    -DLLVM_BUILD_DOCS=OFF
    -DLLVM_ENABLE_SPHINX=OFF
    -DLLVM_EXTERNAL_LIT=/usr/bin/lit
    -DLLVM_INCLUDE_TESTS=ON
    -DLLVM_LINK_LLVM_DYLIB=ON
    -DLLVM_INCLUDE_TESTS=OFF
    -DLLVM_MAIN_SRC_DIR="$(realpath ../llvm-$version.src)"
    -DSPHINX_WARNINGS_AS_ERRORS=OFF
)

export CFLAGS="-O2 -DNDEBUG -Ilibunwind/include"
export CXXFLAGS="-O2 -DNDEBUG -Ilibunwind/include"
export CC=clang
export CXX=clang++


prepare(){
    ln -s ../../libunwind/include/mach-o/ lld/MachO/mach-o
}

setup(){
    mkdir lld/build
    cmake -S lld -B lld/build ${cmake_args[@]}
}

build(){
    ninja -C lld/build ${jobs}
}

package(){
    ninja -C lld/build install ${jobs}
}

