FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx FROM --platform=$BUILDPLATFORM alpine:3.16 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)