#TODO promote
[source]
tar = "https://nodejs.org/dist/v21.7.3/node-v21.7.3.tar.xz"
blake3 = "95a56db4f9729b2f8384ab58ccb2ec0c41da05991f7400ef97bd76748d77870b"
patches = ["redox.patch"]

[build]
template = "custom"
dependencies = [
    "libbrotli",
    "c-ares",
    "libuv",
    "ngtcp2",
    "nghttp2",
    "nghttp3",
    "openssl3",
    "sqlite3",
    "zlib",
    "zstd",
]

dev-dependencies = [
    "host:libuv"
]

script = """
DYNAMIC_INIT
export PYTHONDONTWRITEBYTECODE=1 COOKBOOK_NOSTRIP=true
export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++"

rsync -av "${COOKBOOK_SOURCE}/" ./

case "${TARGET}" in
    x86_64-unknown-linux-gnu)  export NODE_CPU=x64 NODE_OS=linux;;
    aarch64-unknown-linux-gnu) export NODE_CPU=arm64 NODE_OS=linux;;
    i586-unknown-redox)        export NODE_CPU=ia32 NODE_OS=redox;;
    x86_64-unknown-redox)      export NODE_CPU=x64 NODE_OS=redox;;
    aarch64-unknown-redox)     export NODE_CPU=arm64 NODE_OS=redox;;
esac

COOKBOOK_CONFIGURE_FLAGS=(
  --prefix=/usr
  --dest-cpu=${NODE_CPU}
  --dest-os=${NODE_OS}
  --shared-cares
  --shared-libuv
  --shared-ngtcp2
  --shared-nghttp2
  --shared-nghttp3
  --shared-openssl
  --shared-zlib
  --without-inspector
# TODO: Find a way to separate host and target flags instead?
# --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include"
  --shared-openssl-includes="${COOKBOOK_SYSROOT}/include"
  --shared-zlib-libpath="${COOKBOOK_TOOLCHAIN}/lib"
  --shared-openssl-libpath="${COOKBOOK_SYSROOT}/lib"
  --cross-compiling
)
COOKBOOK_CONFIGURE="./configure"
cookbook_configure
"""
