# Description: WASI libc implementation for WebAssembly
# URL: https://github.com/WebAssembly/wasi-libc
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: clang lld

name=wasi-libc
version=31
release=1
source=(https://github.com/WebAssembly/wasi-libc/archive/wasi-sdk-$version/$name-$version.tar.gz)

build() {
  local options=(-S $name-wasi-sdk-$version -G Ninja
    -D CMAKE_INSTALL_PREFIX=/usr/share/wasi-sysroot
    -D CMAKE_BUILD_TYPE=Release
    -D CMAKE_AR=/usr/bin/llvm-ar
    -D CMAKE_C_COMPILER=/usr/bin/clang
    -D CMAKE_NM=/usr/bin/llvm-nm
    -D CMAKE_LINK_DEPENDS_USE_LINKER=FALSE
    -D CHECK_SYMBOLS=OFF
    -Wno-dev
  )

  local targets=(
    wasm32-wasip1
    wasm32-wasip1-threads
    wasm32-wasip2
  )

  unset CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
  for i in "${targets[@]}"; do
    cmake "${options[@]}" -B build-${i} \
      -D TARGET_TRIPLE=${i}

    cmake --build build-${i}
    DESTDIR=$PKG cmake --install build-${i}
  done

  cd $PKG/usr/share/wasi-sysroot/lib
  for f in wasm32-wasi*/*.a; do
    /usr/bin/llvm-ranlib $f
    /usr/bin/llvm-strip --strip-debug $f
  done
}
