FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx
FROM --platform=$BUILDPLATFORM alpine:edge

ARG BUILD_PACKAGES="\
	clang \
	make \
	cmake \
	lld \
	curl \
	pkgconfig"

RUN	apk add --no-cache ${BUILD_PACKAGES}

ARG	LMS_BUILD_PACKAGES=" \
	gcc \
	g++ \
	musl-dev \
	boost-dev \
	ffmpeg-dev \
	libconfig-dev \
	taglib-dev \
	wt-dev \
	gtest-dev"

COPY --from=xx / /

ARG TARGETPLATFORM
RUN	xx-apk add --no-scripts --no-cache ${LMS_BUILD_PACKAGES}

ARG	PREFIX="/tmp/install"

# STB
ARG	STB_VERSION=af1a5bc352164740c1cc1354942b1c6b72eacb8a
RUN \
	DIR=/tmp/stb && mkdir -p ${DIR} && cd ${DIR} && \
	curl -sLO https://github.com/nothings/stb/archive/${STB_VERSION}.tar.gz && \
	tar -x --strip-components=1 -f ${STB_VERSION}.tar.gz && \
	mkdir -p ${PREFIX}/include/stb && \
	cp ./*.h ${PREFIX}/include/stb

# LMS
COPY . /tmp/lms/
ARG LMS_BUILD_TYPE="Release"
RUN \
	DIR=/tmp/lms/build && mkdir -p ${DIR} && cd ${DIR}  && \
		xx-info is-cross && export BUILD_TESTS=OFF || export BUILD_TESTS=ON && \
		PKG_CONFIG_PATH=/$(xx-info)/usr/lib/pkgconfig cmake /tmp/lms/ -DCMAKE_INCLUDE_PATH=${PREFIX}/include -DCMAKE_BUILD_TYPE=${LMS_BUILD_TYPE} $(xx-clang --print-cmake-defines) -DCMAKE_PREFIX_PATH=/$(xx-info)/usr/lib/cmake -DBUILD_TESTING=${BUILD_TESTS} && \
		VERBOSE=1 make -j$(nproc) && \
		xx-verify src/lms/lms && \
		(xx-info is-cross || make test)
