FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx FROM --platform=$BUILDPLATFORM alpine:3.14 ARG TARGETPLATFORM WORKDIR /tmp/workdir ARG PREFIX="/tmp/install" ARG BUILD_PACKAGES="\ clang \ make \ cmake \ lld \ curl \ tree \ 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 xx scripts to your build stage COPY --from=xx / / RUN xx-apk add --no-scripts --no-cache ${LMS_BUILD_PACKAGES} # STB ARG STB_VERSION=b42009b3b9d4ca35bc703f5310eedc74f584be58 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} && \ PKG_CONFIG_PATH=/$(xx-info)/usr/lib/pkgconfig CXXFLAGS="-I${PREFIX}/include" cmake /tmp/lms/ -DCMAKE_BUILD_TYPE=${LMS_BUILD_TYPE} $(xx-clang --print-cmake-defines) -DCMAKE_PREFIX_PATH=/$(xx-info)/usr/lib/cmake -DBUILD_TESTING=OFF && \ VERBOSE=1 make -j$(nproc)