FROM alpine:3.21

# Install build dependencies
# TODO: trim dependencies?
RUN apk update && apk add \
  build-base abuild \
	rustup \
  build-base \
  musl-dev \
  gcc \
  cmake \
  make \
  pkgconfig \
  perl \
  python3 \
  curl \
  git \
  llvm \
  clang \
  clang-libclang \
  protobuf-dev \
  libc-dev \
  linux-headers \
  freetype-dev \
  freetype-static \
  fontconfig-dev \
  fontconfig-static \
  bzip2-dev \
  bzip2-static \
  brotli-dev \
  brotli-static \
  expat-dev \
  expat-static \
  libx11-dev \
  libxcursor-dev \
  libxkbcommon-dev \
  libxkbcommon-static \
  wayland-dev \
  wayland-libs-client \
  wayland-libs-server \
  wayland-static \
  openssl-dev \
  openssl-libs-static \
  zlib-dev \
  zlib-static \
  libpng-dev \
  libpng-static \
  libwebp-dev \
  libwebp-static \
  tiff-dev \
  libjpeg-turbo-dev \
  libjpeg-turbo-static
  
RUN rustup-init -y --default-toolchain stable

# Set pkg-config to use static libraries
ENV PKG_CONFIG_ALLOW_STATIC=1
ENV PKG_CONFIG_ALL_STATIC=1

# Slint/winit does not work when statically compiled
ENV RUSTFLAGS="-C target-feature=-crt-static"

WORKDIR /build

