# Maintainer: Martell Malone <martellmalone@gmail.com>
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Ray Donnelly <mingw.android@gmail.com>
# Contributor: Mateusz Mikuła <mati865@gmail.com>
# Contributor: wirx6 <wirx654@gmail.com>
# Contributor: Yuui Tanabe <yuuitanabe@163.com>
# Contributor: Oscar Fuentes <ofv@wanadoo.es>
# Contributor: Adrian Pop <adrian.pop@liu.se>

_compiler=gcc
if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then
  _clangprefix=1
  _compiler=clang
fi
# "Ninja" is too efficient for i686, causing out of memory
# (address space) errors when linking
if [[ $MINGW_PACKAGE_PREFIX == *-clang-i686 ]]; then
  _generator="MSYS Makefiles"
else
  _generator="Ninja"
fi
_realname=clang
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
         "${MINGW_PACKAGE_PREFIX}-clang-analyzer"
         "${MINGW_PACKAGE_PREFIX}-clang-tools-extra"
         "${MINGW_PACKAGE_PREFIX}-compiler-rt"
         "${MINGW_PACKAGE_PREFIX}-libc++"
         "${MINGW_PACKAGE_PREFIX}-libc++abi"
         "${MINGW_PACKAGE_PREFIX}-libunwind"
         "${MINGW_PACKAGE_PREFIX}-lld"
         "${MINGW_PACKAGE_PREFIX}-lldb"
         "${MINGW_PACKAGE_PREFIX}-llvm"
         $([[ "$CARCH" == "i686" || "$CARCH" == "x86_64" ]] && echo \
           "${MINGW_PACKAGE_PREFIX}-openmp")
         "${MINGW_PACKAGE_PREFIX}-polly")
pkgver=12.0.0
pkgrel=7
pkgdesc="C language family frontend for LLVM (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
url="https://llvm.org/"
license=("custom:Apache 2.0 with LLVM Exception")
groups=($( (( _clangprefix )) && echo "${MINGW_PACKAGE_PREFIX}-toolchain"))
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake>=3.4.3"
             "${MINGW_PACKAGE_PREFIX}-z3"
             "${MINGW_PACKAGE_PREFIX}-libffi"
             "${MINGW_PACKAGE_PREFIX}-libxml2"
             "${MINGW_PACKAGE_PREFIX}-lua"
             "${MINGW_PACKAGE_PREFIX}-pkg-config"
             "${MINGW_PACKAGE_PREFIX}-python-sphinx"
             "${MINGW_PACKAGE_PREFIX}-python"
             "${MINGW_PACKAGE_PREFIX}-swig"
             $([[ "$CARCH" == "i686" || "$CARCH" == "x86_64" ]] && echo \
               "${MINGW_PACKAGE_PREFIX}-uasm")
             "tar"
             "groff"
             $([[ "$_compiler" == "clang" ]] && echo \
               "${MINGW_PACKAGE_PREFIX}-clang" \
               "${MINGW_PACKAGE_PREFIX}-compiler-rt" \
               "${MINGW_PACKAGE_PREFIX}-libc++")
             $([[ "$_generator" == "Ninja" ]] && echo \
               "${MINGW_PACKAGE_PREFIX}-ninja")
             $([[ "$_compiler" == "gcc" ]] && echo \
               "${MINGW_PACKAGE_PREFIX}-gcc")
             )
options=('!debug' 'strip')
_url=https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver}
source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver}/llvm-project-${pkgver}.src.tar.xz"{,.sig}
        "0001-Use-posix-style-path-separators-with-MinGW.patch"
        "0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch"
        "0004-llvm-config-look-for-unversioned-shared-lib-on-win32.patch"
        "0005-add-pthread-as-system-lib-for-mingw.patch"
        "0008-enable-emutls-for-mingw.patch"
        "0010-mbig-obj-for-all.patch"
        "0011-nm-version-option.patch"
        "0012-windres.patch"
        "0013-Dlltool-use-default-LLVM-target-unless-specified.patch"
        "0014-llvm-rc-Don-t-rewrite-the-arch-in-the-default-triple.patch"
        "0101-Disable-fPIC-errors.patch"
        "0103-Use-posix-style-path-separators-with-MinGW.patch"
        "0104-link-pthread-with-mingw.patch"
        "0105-Dont-mark-emutls-variables-as-DSO-local.patch"
        "0201-Provide-a-SEH-specific-__gcc_personality_seh0.patch"
        "0301-fix-including-the-personality-function-for-dwarf.patch"
        "0302-ignore-no-undefined-flag.patch"
        "0303-LLD-MinGW-Add-fatal-warnings-and-no-fatal-warnings-f.patch"
        "0304-ignore-new-bfd-options.patch"
        "0305-use-TerminateProcess-instead-of-exit.patch"
        "0306-LLD-MinGW-Pass-the-canExitEarly-parameter-through-pr.patch"
        "0307-lld-MinGW-Introduce-aliases-for-Bdynamic-and-Bstatic.patch"
        "0308-LLD-COFF-Fix-automatic-export-of-symbols-from-LTO-ob.patch"
        "0310-backport-2b01a41.patch"
        "0311-backport-82de4e0.patch"
        "0312-LLD-COFF-Fix-autoexport-from-LTO-objects-with-comdat.patch"
        "0401-libcxx-fs.patch"
        "0402-make-the-visibility-attributes-consistent-for-__narr.patch"
        "0601-libunwind-Install-the-DLL-when-doing-ninja-install.patch"
        "0710-backport-05b3716.patch"
        "0901-cast-to-make-gcc-happy.patch")
# Some patch notes :)
#0001-0099 -> llvm
#0101-0199 -> clang
#0201-0299 -> rt
#0301-0399 -> lld
#0401-0499 -> libc++
#0501-0599 -> lldb
#0601-0699 -> libunwind
#0701-0799 -> libc++abi
#0801-0899 -> polly
#0901-0999 -> openmp
sha256sums=('9ed1688943a4402d7c904cc4515798cdb20080066efa010fe7e1f2551b423628'
            'SKIP'
            '988a22053c1cc3fa52b1242b3a7cec591ca69b57eb5531c37ce9c74157db62a0'
            '8831c6ea72baa315b20e5f1a9008a9bf4098ba8a18d5331f05216604489063a4'
            '7e7974bbe9ef754be544e5a2a78ab43a1d898c7c9601e7b8d53f8d900df16977'
            '7f0c64cd87b61e894be632f180ae5291e1aa9f1d9d382608f659067eeeda7146'
            '3837bd707d3d99a742e874d5c59a1e7d5502811d6926319974c5d9db86020039'
            'b38c502a113018b934d607d4c92c3e907f92b418c6da1d4425c3fa614f983f10'
            '5d0d8653c95a2d74a4ae531370c3d0584054d15cfef16eb4c45b1d8e5c0fcb4c'
            'e8a6c9e32848dcb9bc16e509516556ced4a5fe888d9b92929e83d0b55c05647b'
            '567307cb8d2a9072ba521b9daaf448d73ca213d9a4f2f4e07485f4be4ac9881d'
            '307a7d8a9389e9953f777ef93b19899e0c86b08019af97edd89ec9a50d507c83'
            '63b2bda6a487ec69e257c3b7a14d71f6bec649fca058a5a54804f213d45c7c70'
            '2d1dc7f7cd6bd61f275cd0be6650f3086aee622074ac786ff5a921bf8ecaada2'
            '715cb8862753854b2d9256e0b70003e2d1f57083d83eaeaf5a095fc72b8a4e26'
            '7a3453dfdb6992fc226f7e44522e8098c7eab8a80ed8ba7dbda9764f3a5eb191'
            '70382de2120c1de08f86400576188ecd3759612eb8457f2d8be936eb6fa2765f'
            'c4d778c90569a80c3b8fe7c7c53430d456f83f4a65f393f862184375bcb77bc8'
            '0b6756ce06b6439aa9c620ac95e169a08e130b5a50e07eb15eecd3e1e8a0a7af'
            '83951bbd1e90381904096b0d30d1c96c13eaae90326c26d30eb6c5dcf3729fa5'
            '778e0db0a5b0657ab05e2a81d83241347a4a41af2b0f9903422f651fa58e8d40'
            'a0e25f683ce7a8e3e19a67e83f8b34e55baa4b91fa24ce6d3275ac98a79623dc'
            '949180afa030ca95500eae81790b0478b7080ed93ebbe9283cb95f90e6667f2f'
            'b2f3a925f18c1465b43eb57c685e885670cf3360c4d4cb5f6cf27d3bf80fe043'
            '6e861b010fd42d44fddbf12376f3899b0ac17b1b0cfa6033aa2ac9edcf2e310e'
            'd35a234f266c7fd05f1b6415e195dd4ec4e0b41cf50f547a8f5ee5485a57ac3f'
            '99b86abc0218c2e6768212bade513f98aa01dec39489356e0d77e84e0ebcd748'
            '95d0c97547a62e3e2b91688153ade62659c4ce0874facc86244d5040b0593a9c'
            '6cb5d425e36b24a8eb2776ba0e297ea0a986a4086f96a0e60ca3a4ebc1a9d386'
            '3abb69e6dc9ad367240409d2df3c3cd6ddc89325de994195fc7222493baaaa44'
            '9ab6c628eccf0155cebdc73e4f5297820bef54d8f30022ed0c1cbb6ab8ad67b8'
            '63b09e0b58a3a100fdd348b5f38f594e3c94cd54030a13b821f7a91ece3e1de0'
            '11352ffbe7559a7170f2abd52b3552c877fbcf8fc82cff77b421e8b130a4dd66')
validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D'  # Hans Wennborg, Google.
              '474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard
noextract=(llvm-project-${pkgver}.src.tar.xz)

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -Nbp1 -i "${srcdir}/${_patch}"
  done
}

prepare() {
  plain "Extracting llvm-project-${pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)"
  cd "${srcdir}"
  rm -rf llvm clang clang-tools-extra compiler-rt lld lldb libcxx libcxxabi libunwind openmp polly || true
  tar --strip-components=1 -xJf ${srcdir}/llvm-project-${pkgver}.src.tar.xz -C ${srcdir} || true

  cd "${srcdir}/llvm"
  apply_patch_with_msg \
    "0001-Use-posix-style-path-separators-with-MinGW.patch" \
    "0002-Fix-GetHostTriple-for-mingw-w64-in-msys.patch" \
    "0004-llvm-config-look-for-unversioned-shared-lib-on-win32.patch" \
    "0010-mbig-obj-for-all.patch" \
    "0011-nm-version-option.patch" \
    "0012-windres.patch" \
    "0013-Dlltool-use-default-LLVM-target-unless-specified.patch" \
    "0014-llvm-rc-Don-t-rewrite-the-arch-in-the-default-triple.patch"

  if (( ! _clangprefix )); then
    apply_patch_with_msg \
      "0005-add-pthread-as-system-lib-for-mingw.patch" \
      "0008-enable-emutls-for-mingw.patch"
  fi

  cd "${srcdir}/clang"
  apply_patch_with_msg \
    "0101-Disable-fPIC-errors.patch" \
    "0103-Use-posix-style-path-separators-with-MinGW.patch" \
    "0105-Dont-mark-emutls-variables-as-DSO-local.patch"

  if (( ! _clangprefix )); then
    apply_patch_with_msg \
      "0104-link-pthread-with-mingw.patch"
  fi

  cd "${srcdir}/compiler-rt"
  apply_patch_with_msg \
    "0201-Provide-a-SEH-specific-__gcc_personality_seh0.patch"

  cd "${srcdir}/lld"

  if (( ! _clangprefix )); then
    apply_patch_with_msg \
      "0305-use-TerminateProcess-instead-of-exit.patch"
  fi

  apply_patch_with_msg \
    "0301-fix-including-the-personality-function-for-dwarf.patch" \
    "0302-ignore-no-undefined-flag.patch" \
    "0303-LLD-MinGW-Add-fatal-warnings-and-no-fatal-warnings-f.patch" \
    "0304-ignore-new-bfd-options.patch" \
    "0306-LLD-MinGW-Pass-the-canExitEarly-parameter-through-pr.patch" \
    "0307-lld-MinGW-Introduce-aliases-for-Bdynamic-and-Bstatic.patch" \
    "0308-LLD-COFF-Fix-automatic-export-of-symbols-from-LTO-ob.patch" \
    "0310-backport-2b01a41.patch" \
    "0311-backport-82de4e0.patch" \
    "0312-LLD-COFF-Fix-autoexport-from-LTO-objects-with-comdat.patch"

  cd "${srcdir}/libcxx"
  apply_patch_with_msg \
    "0401-libcxx-fs.patch" \
    "0402-make-the-visibility-attributes-consistent-for-__narr.patch"

  cd "${srcdir}/libunwind"
  apply_patch_with_msg \
    "0601-libunwind-Install-the-DLL-when-doing-ninja-install.patch"

  cd "${srcdir}/libcxxabi"
  apply_patch_with_msg \
    "0710-backport-05b3716.patch"

  cd "${srcdir}/openmp"

  if (( ! _clangprefix )); then
    apply_patch_with_msg \
      "0901-cast-to-make-gcc-happy.patch"
  fi
}

build() {
  cd "${srcdir}"

  [[ -d build-${MSYSTEM} ]] && rm -rf build-${MSYSTEM}
  mkdir build-${MSYSTEM} && cd build-${MSYSTEM}

  case "${CARCH}" in
    i?86|armv7)
      # lld needs all the address space it can get.
      LDFLAGS+=" -Wl,--large-address-aware"
      ;;
  esac

  local -a extra_config
  local -a common_cmake_args

  if check_option "debug" "y"; then
    common_cmake_args+=(-DCMAKE_BUILD_TYPE=Debug)
    VERBOSE="VERBOSE=1"
  else
    common_cmake_args+=(-DCMAKE_BUILD_TYPE=Release)
  fi
  common_cmake_args+=(-Wno-dev
    -DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe
    -DPython3_FIND_REGISTRY=NEVER
    -DPython3_ROOT_DIR=${MINGW_PREFIX})

  # Include location of libffi headers in CPPFLAGS
  FFI_INCLUDE_DIR="$(pkg-config --cflags libffi)"
  FFI_INCLUDE_DIR=$(echo $FFI_INCLUDE_DIR | sed 's|-I||g')

  if [ "${_compiler}" == "clang" ]; then
    export CC='clang'
    export CXX='clang++'
    extra_config+=(-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON
      -DLLVM_ENABLE_LIBCXX=ON)
  fi

  if (( _clangprefix )); then
    # A bit hacky but it works
    local _clang_links="clang++;clang-cpp;as;c++;cc;cpp;g++;gcc;${MINGW_CHOST}-cc;${MINGW_CHOST}-c++;${MINGW_CHOST}-clang;${MINGW_CHOST}-clang++;${MINGW_CHOST}-g++;${MINGW_CHOST}-gcc"

    extra_config+=(-DCLANG_DEFAULT_RTLIB=compiler-rt
      -DCLANG_DEFAULT_UNWINDLIB=libunwind
      -DCLANG_DEFAULT_CXX_STDLIB=libc++
      -DCLANG_DEFAULT_LINKER=lld
      -DLLVM_ENABLE_LLD=ON
      -DCLANG_LINKS_TO_CREATE="${_clang_links}"
      -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON)
  fi

  local _projects="clang;clang-tools-extra;compiler-rt;lld;lldb;polly"
  local -a platform_config

  case "${CARCH}" in
    x86_64)
      export ASM_COMPILER_FLAGS=-win64
      platform_config+=(-DLIBOMP_ASMFLAGS="${ASM_COMPILER_FLAGS}")
      ;& # fall-through
    i?86)
      export ASM_COMPILER="${MINGW_PREFIX}/bin/uasm.exe"
      platform_config+=(-DCMAKE_ASM_MASM_COMPILER="${ASM_COMPILER}"
        -DCOMPILER_RT_BUILD_SANITIZERS=$( (( _clangprefix )) && echo "ON" || echo "OFF"))
      _projects+=";openmp"
      ;;
    armv7|aarch64)
      platform_config+=(-DCOMPILER_RT_BUILD_MEMPROF=OFF
        -DCOMPILER_RT_BUILD_SANITIZERS=OFF
        -DCOMPILER_RT_BUILD_XRAY=OFF)
      ;;
  esac

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"$_generator" \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib \
    -DFFI_INCLUDE_DIR="${FFI_INCLUDE_DIR}" \
    -DLIBCLANG_BUILD_STATIC=ON \
    -DLIBOMP_FORTRAN_MODULES=$( (( _clangprefix )) && echo "OFF" || echo "ON" ) \
    -DLLD_DEFAULT_LD_LLD_IS_MINGW=ON \
    -DLLDB_ENABLE_LIBEDIT=OFF \
    -DLLDB_USE_SYSTEM_SIX=ON \
    -DLLVM_BUILD_LLVM_DYLIB=ON \
    -DLLVM_BUILD_STATIC=OFF \
    -DLLVM_ENABLE_ASSERTIONS=OFF \
    -DLLVM_ENABLE_FFI=ON \
    -DLLVM_ENABLE_PROJECTS="${_projects}" \
    -DLLVM_ENABLE_SPHINX=ON \
    -DLLVM_ENABLE_THREADS=ON \
    -DLLVM_HOST_TRIPLE="${CARCH}-w64-windows-gnu" \
    -DLLVM_INCLUDE_EXAMPLES=OFF \
    -DLLVM_INSTALL_UTILS=ON \
    -DLLVM_LINK_LLVM_DYLIB=ON \
    -DLLVM_POLLY_LINK_INTO_TOOLS=OFF \
    -DLLDB_EMBED_PYTHON_HOME=OFF \
    "${common_cmake_args[@]}" \
    "${platform_config[@]}" \
    "${extra_config[@]}" \
    ../llvm

  # sed away the bad windows style command line parameters (they are translated by msys from /bad to c:\msys\bad
  # Ninja doesn't need fixing them.
  if [[ "$_generator" != "Ninja" ]]; then
    case "${CARCH}" in
      i?86|x86_64)
        sed -i.orig 's/\/c \/Fo/-c -Fo/' projects/openmp/runtime/src/CMakeFiles/omp.dir/build.make
        sed -i.orig 's/\/safeseh \/coff/-safeseh -coff/' projects/openmp/runtime/src/CMakeFiles/omp.dir/build.make
        ;;
    esac
  fi

  ${MINGW_PREFIX}/bin/cmake.exe --build .

  # Disable automatic installation of components that go into subpackages
  # -i.orig to check what has been removed in-case it starts dropping more than it should
  #
  sed -i.orig '/\(clang\|lld\|lldb\|polly\)\/cmake_install.cmake/d' tools/cmake_install.cmake
  sed -i.orig '/\(extra\|scan-build\|scan-view\)\/cmake_install.cmake/d' tools/clang/tools/cmake_install.cmake
  sed -i.orig '/\(compiler-rt\|libcxxabi\|libcxx\|openmp\|libunwind\)\/cmake_install.cmake/d' projects/cmake_install.cmake

  # Use newly built compiler because GCC/binutils doesn't play nicely
  if (( _clangprefix )); then
    common_cmake_args+=(-DLIBCXX_USE_COMPILER_RT=ON
      -DLIBCXXABI_USE_COMPILER_RT=ON
      -DLIBCXXABI_USE_LLVM_UNWINDER=ON)
  else
    export CC="${srcdir}/build-${MSYSTEM}/bin/clang"
    export CXX="${srcdir}/build-${MSYSTEM}/bin/clang++"
    common_cmake_args+=(-DCMAKE_AR=${srcdir}/build-${MSYSTEM}/bin/llvm-ar
      -DCMAKE_RANLIB=${srcdir}/build-${MSYSTEM}/bin/llvm-ranlib)
  fi

  common_cmake_args+=(-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX}
    -DCMAKE_SYSTEM_IGNORE_PATH=/usr/lib
    -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON
    -DLIBCXX_HAS_WIN32_THREAD_API=ON
    -DLIBCXXABI_HAS_WIN32_THREAD_API=ON
    -DLIBCXXABI_ENABLE_SHARED=OFF
    -DLIBCXXABI_ENABLE_STATIC=ON
    -DLIBUNWIND_USE_COMPILER_RT=ON
    -DLLVM_ENABLE_LLD=ON
    -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind"
    -DLLVM_HOST_TRIPLE="${CARCH}-w64-windows-gnu")

  cd "${srcdir}"

  [[ -d build-libcxx-shared-${MSYSTEM} ]] && rm -rf build-libcxx-shared-${MSYSTEM}
  mkdir build-libcxx-shared-${MSYSTEM} && cd build-libcxx-shared-${MSYSTEM}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"$_generator" \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS} -D_LIBCPP_BUILDING_LIBRARY -U_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS" \
    -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
    -DLIBCXX_ENABLE_SHARED=ON \
    -DLIBCXX_ENABLE_STATIC=OFF \
    -DLIBUNWIND_ENABLE_SHARED=ON \
    -DLIBUNWIND_ENABLE_STATIC=OFF \
    "${common_cmake_args[@]}" \
    ../llvm

  ${MINGW_PREFIX}/bin/cmake.exe --build . -- unwind cxx

  cd "${srcdir}"

  [[ -d build-libcxx-static-${MSYSTEM} ]] && rm -rf build-libcxx-static-${MSYSTEM}
  mkdir build-libcxx-static-${MSYSTEM} && cd build-libcxx-static-${MSYSTEM}

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  ${MINGW_PREFIX}/bin/cmake.exe \
    -G"$_generator" \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS" \
    -DLIBCXX_ENABLE_SHARED=OFF \
    -DLIBCXX_ENABLE_STATIC=ON \
    -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \
    -DLIBUNWIND_ENABLE_SHARED=OFF \
    -DLIBUNWIND_ENABLE_STATIC=ON \
    "${common_cmake_args[@]}" \
    ../llvm

  ${MINGW_PREFIX}/bin/cmake.exe --build . -- unwind cxxabi cxx cxx_experimental
}

check() {
 cd "${srcdir}"/build-${MSYSTEM}
 # Remove || true once testcase doesn't cause failures.
#  make check || true
#  make check-clang || true
#  make check-polly || true
  ${MINGW_PREFIX}/bin/cmake.exe --build . -- check-lld || true
}

package_clang() {
  pkgdesc="C language family frontend for LLVM (mingw-w64)"
  url="https://clang.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}"
           $( ((_clangprefix)) && echo \
             "${MINGW_PACKAGE_PREFIX}-compiler-rt=${pkgver}-${pkgrel}" \
             "${MINGW_PACKAGE_PREFIX}-crt" \
             "${MINGW_PACKAGE_PREFIX}-headers" \
             "${MINGW_PACKAGE_PREFIX}-lld=${pkgver}-${pkgrel}" \
             "${MINGW_PACKAGE_PREFIX}-winpthreads" \
             || echo "${MINGW_PACKAGE_PREFIX}-gcc"))
  provides=($( (( _clangprefix )) && echo \
             "${MINGW_PACKAGE_PREFIX}-gcc" \
             || true ))

  cmake --install "${srcdir}/build-${MSYSTEM}/tools/clang" --prefix "${pkgdir}${MINGW_PREFIX}"
}

package_clang-analyzer() {
  pkgdesc="A source code analysis framework (mingw-w64)"
  url="https://clang-analyzer.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}"
           "${MINGW_PACKAGE_PREFIX}-python")

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/clang/tools/scan-build"
  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/clang/tools/scan-view"

  # Compile Python scripts
  ${MINGW_PREFIX}/bin/python -m compileall "${pkgdir}"${MINGW_PREFIX}/bin/clang-analyzer
  ${MINGW_PREFIX}/bin/python -O -m compileall "${pkgdir}"${MINGW_PREFIX}/lib/clang-analyzer
  install -Dm644 "${srcdir}/clang/LICENSE.TXT" "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE
}

package_clang-tools-extra() {
  pkgdesc="Extra tools built using Clang's tooling APIs (mingw-w64)"
  url="https://clang.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}")

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/clang/tools/extra"
}

package_compiler-rt() {
  pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)"
  url="https://compiler-rt.llvm.org/"
  depends=($( (( _clangprefix )) || echo "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/projects/compiler-rt"
  mkdir -p "${pkgdir}${MINGW_PREFIX}/bin/"
  find "${pkgdir}${MINGW_PREFIX}/lib/clang/${pkgver}/lib/windows/" \
    -name '*.dll' -exec mv '{}' "${pkgdir}${MINGW_PREFIX}/bin/" \;
  # remove bin dir we created if it is still empty
  rmdir "${pkgdir}${MINGW_PREFIX}/bin/" 2>/dev/null || true
}

package_libc++() {
  pkgdesc="C++ Standard Library (mingw-w64)"
  url="https://libcxx.llvm.org/"
  provides=($( (( _clangprefix )) && echo \
             "${MINGW_PACKAGE_PREFIX}-gcc-libs" \
             || true))
  depends=($( (( _clangprefix )) && echo \
             "${MINGW_PACKAGE_PREFIX}-libunwind" \
             || echo "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-libcxx-shared-${MSYSTEM}/projects/libcxx"
  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-libcxx-static-${MSYSTEM}/projects/libcxx"
}

package_openmp() {
  pkgdesc="OpenMP library (mingw-w64)"
  url="https://openmp.llvm.org/"
  depends=($( (( _clangprefix )) || echo "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/projects/openmp"
}

package_libc++abi() {
  pkgdesc="C++ Standard Library Support (mingw-w64)"
  url="https://libcxxabi.llvm.org/"
  depends=($( (( _clangprefix )) || echo \
             "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-libcxx-static-${MSYSTEM}/projects/libcxxabi"
}

package_libunwind() {
  pkgdesc='A new implementation of a stack unwinder for C++ exceptions (mingw-w64)'
  url='https://llvm.org/'
  depends=($( (( _clangprefix )) || echo "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-libcxx-shared-${MSYSTEM}/projects/libunwind"
  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-libcxx-static-${MSYSTEM}/projects/libunwind"
}

package_lld() {
  pkgdesc="Linker tools for LLVM (mingw-w64)"
  url="https://lld.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}")
  provides=($( (( _clangprefix )) && echo \
             "${MINGW_PACKAGE_PREFIX}-binutils" \
             || true))

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/lld"
  if (( _clangprefix )); then
    install -Dm755 "${pkgdir}${MINGW_PREFIX}/bin/lld.exe" "${pkgdir}${MINGW_PREFIX}/bin/ld.exe"
  fi
}

package_lldb() {
  pkgdesc="Next generation, high-performance debugger (mingw-w64)"
  url="https://lldb.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-clang=${pkgver}-${pkgrel}"
           "${MINGW_PACKAGE_PREFIX}-libxml2"
           "${MINGW_PACKAGE_PREFIX}-lua"
           "${MINGW_PACKAGE_PREFIX}-python"
           "${MINGW_PACKAGE_PREFIX}-xz")

  cd "${srcdir}/lldb"

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/lldb"

  # Compile Python scripts
   local _pyver=$(${MINGW_PREFIX}/bin/python -c "import sys;sys.stdout.write('.'.join(map(str, sys.version_info[:2])))")
  ${MINGW_PREFIX}/bin/python -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python${_pyver}/site-packages/lldb"
  ${MINGW_PREFIX}/bin/python -O -m compileall "${pkgdir}${MINGW_PREFIX}/lib/python${_pyver}/site-packages/lldb"

  install -Dm644 "${srcdir}/lldb/LICENSE.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/lldb/LICENSE"
}

package_llvm() {
  pkgdesc="Low Level Virtual Machine (mingw-w64)"
  depends=("${MINGW_PACKAGE_PREFIX}-libffi"
           "${MINGW_PACKAGE_PREFIX}-gcc-libs"
           "${MINGW_PACKAGE_PREFIX}-zlib"
           "${MINGW_PACKAGE_PREFIX}-libxml2")

  cd "${srcdir}"/llvm

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}"

  install -Dm644 "${srcdir}/llvm/LICENSE.TXT" "${pkgdir}${MINGW_PREFIX}/share/licenses/llvm/LICENSE"

  # Install CMake stuff
  install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms}
  install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/
  install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/

  # fix cmake files.
  local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
  sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${pkgdir}/${MINGW_PREFIX}/lib/cmake/llvm/LLVMExports.cmake
}

package_polly() {
  pkgdesc="Polly - Polyhedral optimizations for LLVM (mingw-w64)"
  url="https://polly.llvm.org/"
  depends=("${MINGW_PACKAGE_PREFIX}-llvm=${pkgver}-${pkgrel}")

  DESTDIR="${pkgdir}" cmake --install "${srcdir}/build-${MSYSTEM}/tools/polly"
  # fix cmake files.
  local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
  local SRC_WIN=$(cygpath -wm ${srcdir})
  sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}/|g" \
    -e "s|${SRC_WIN}/build-${MSYSTEM}/lib|${MINGW_PREFIX}/lib|g" \
    -i "${pkgdir}/${MINGW_PREFIX}/lib/cmake/polly/PollyConfig.cmake"
}

# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :

# generate wrappers
for _name in "${pkgname[@]}"; do
  _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
  _func="$(declare -f "${_short}")"
  eval "${_func/#${_short}/package_${_name}}"
done
# template end;
