FROM dockcross/linux-x86_64-full ENV DEFAULT_DOCKCROSS_IMAGE=gitea.jde.nz/public/jcross-linux-x86_64-full RUN apt-get update && apt-get install -y \ ccache \ mold \ libcpp-httplib-dev ######################################## # nlohmann/json (compiled static .a) # ######################################## ARG JSON_VERSION=3.11.3 RUN git clone --depth 1 --branch v${JSON_VERSION} https://github.com/nlohmann/json.git /tmp/json && \ cmake -S /tmp/json -B /tmp/json/build \ -DJSON_BuildTests=OFF \ -DJSON_MultipleHeaders=OFF \ -DBUILD_SHARED_LIBS=OFF && \ cmake --build /tmp/json/build --config Release && \ cmake --install /tmp/json/build ################################## # libassert (build static .a) # ################################## ARG LIBASSERT_VERSION=v2.1.5 RUN git clone --depth 1 --branch ${LIBASSERT_VERSION} https://github.com/jeremy-rifkin/libassert.git /tmp/libassert && \ cmake -S /tmp/libassert -B /tmp/libassert/build \ -DLIBASSERT_BUILD_TESTS=OFF \ -DLIBASSERT_BUILD_EXAMPLES=OFF \ -DLIBASSERT_BUILD_STATIC=ON && \ cmake --build /tmp/libassert/build --config Release && \ cmake --install /tmp/libassert/build ##################### # zlib (static .a) # ##################### ARG ZLIB_VERSION=1.3.1 RUN wget -q https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz && \ tar xzf zlib-${ZLIB_VERSION}.tar.gz && \ cd zlib-${ZLIB_VERSION} && \ ./configure --static && \ make -j$(nproc) && \ make install && \ cd .. && rm -rf zlib-${ZLIB_VERSION}* ############################## # Reduce size of .a archives # ############################## RUN strip --strip-unneeded /usr/local/lib/*.a