48 lines
1.2 KiB
Plaintext
48 lines
1.2 KiB
Plaintext
FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx
|
|
FROM --platform=$BUILDPLATFORM alpine:3.24
|
|
|
|
ARG BUILD_PACKAGES="\
|
|
clang \
|
|
make \
|
|
cmake \
|
|
lld \
|
|
curl \
|
|
pkgconfig"
|
|
|
|
RUN apk add --no-cache ${BUILD_PACKAGES}
|
|
|
|
ARG LMS_BUILD_PACKAGES=" \
|
|
gcc \
|
|
g++ \
|
|
alsa-lib-dev \
|
|
benchmark-dev \
|
|
boost-dev \
|
|
ffmpeg-dev \
|
|
gtest-dev \
|
|
libarchive-dev \
|
|
libconfig-dev \
|
|
musl-dev \
|
|
onnxruntime-dev \
|
|
pugixml-dev \
|
|
pulseaudio-dev \
|
|
stb \
|
|
taglib-dev \
|
|
wt-dev \
|
|
xxhash-dev"
|
|
|
|
COPY --from=xx / /
|
|
|
|
ARG TARGETPLATFORM
|
|
RUN xx-apk add --no-scripts --no-cache ${LMS_BUILD_PACKAGES}
|
|
|
|
# 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=/$(xx-info)/usr/include -DCMAKE_UNITY_BUILD=ON -DCMAKE_BUILD_TYPE=${LMS_BUILD_TYPE} $(xx-clang --print-cmake-defines) -DCMAKE_PREFIX_PATH=/$(xx-info)/usr/lib/cmake -DBUILD_TESTING=${BUILD_TESTS} -DBUILD_BENCHMARKS=ON && \
|
|
VERBOSE=1 make -j$(nproc) && \
|
|
xx-verify src/lms/lms && \
|
|
(xx-info is-cross || LMS_MUSICNN_MODEL=/tmp/lms/src/libs/audio/models/MSD_musicnn_embedding.onnx make test)
|