@@ -20,6 +20,8 @@ ARG VIM_VERSION=9.0
2020ARG CCACHE_VERSION=4.12.3
2121ARG XXHASH_VERSION=0.8.3
2222ARG ZSTD_VERSION=1.5.7
23+ ARG CMAKE_VERSION=4.2.3
24+ ARG NINJA_VERSION=1.13.1
2325
2426RUN apt-get update && apt-get install --yes --no-install-recommends \
2527 build-essential cmake curl libgmp-dev libmpc-dev libmpfr-dev m4 p7zip-full
@@ -44,7 +46,9 @@ RUN curl --insecure --location --remote-name-all --remote-header-name \
4446 https://downloads.sourceforge.net/project/pdcurses/pdcurses/$PDCURSES_VERSION/PDCurses-$PDCURSES_VERSION.tar.gz \
4547 https://github.com/ccache/ccache/releases/download/v$CCACHE_VERSION/ccache-$CCACHE_VERSION.tar.xz \
4648 https://github.com/Cyan4973/xxhash/archive/refs/tags/v$XXHASH_VERSION.tar.gz \
47- https://github.com/facebook/zstd/releases/download/v$ZSTD_VERSION/zstd-$ZSTD_VERSION.tar.gz
49+ https://github.com/facebook/zstd/releases/download/v$ZSTD_VERSION/zstd-$ZSTD_VERSION.tar.gz \
50+ https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION.tar.gz \
51+ https://github.com/ninja-build/ninja/archive/refs/tags/v$NINJA_VERSION.tar.gz
4852COPY src/SHA256SUMS $PREFIX/src/
4953RUN sha256sum -c $PREFIX/src/SHA256SUMS \
5054 && tar xJf 7z$Z7_VERSION-src.tar.xz --xform 's%^%7z/%' \
@@ -64,7 +68,9 @@ RUN sha256sum -c $PREFIX/src/SHA256SUMS \
6468 && tar xjf vim-$VIM_VERSION.tar.bz2 \
6569 && tar xJf ccache-$CCACHE_VERSION.tar.xz \
6670 && tar xzf xxHash-$XXHASH_VERSION.tar.gz \
67- && tar xzf zstd-$ZSTD_VERSION.tar.gz
71+ && tar xzf zstd-$ZSTD_VERSION.tar.gz \
72+ && tar xzf cmake-$CMAKE_VERSION.tar.gz \
73+ && tar xzf ninja-$NINJA_VERSION.tar.gz
6874COPY src/w64devkit.c src/w64devkit.ico src/libmemory.c src/libchkstk.S \
6975 src/alias.c src/debugbreak.c src/pkg-config.c src/vc++filt.c \
7076 src/peports.c src/profile $PREFIX/src/
@@ -535,6 +541,34 @@ RUN $ARCH-gcc -DEXE=ccache.exe -DCMD=gcc \
535541 -Wl,--gc-sections -s -nostdlib \
536542 -o $PREFIX/lib/ccache/{}.com $PREFIX/src/alias.c -lkernel32
537543
544+ WORKDIR /ninja
545+ RUN cmake -DCMAKE_BUILD_TYPE=MinSizeRel \
546+ -DCMAKE_SYSTEM_NAME=Windows \
547+ -DCMAKE_CXX_COMPILER=$ARCH-g++ \
548+ -DCMAKE_EXE_LINKER_FLAGS="-s" \
549+ -DBUILD_TESTING=OFF \
550+ /ninja-$NINJA_VERSION \
551+ && make -j$(nproc) \
552+ && cp ninja.exe $PREFIX/bin/
553+
554+ WORKDIR /cmake
555+ COPY src/cmake-force-ninja.patch $PREFIX/src/
556+ RUN cat $PREFIX/src/cmake-*.patch | patch -d/cmake-$CMAKE_VERSION -p1 \
557+ && cmake -DCMAKE_BUILD_TYPE=MinSizeRel \
558+ -DCMAKE_SYSTEM_NAME=Windows \
559+ -DCMAKE_C_COMPILER=$ARCH-gcc \
560+ -DCMAKE_CXX_COMPILER=$ARCH-g++ \
561+ -DCMAKE_RC_COMPILER=$ARCH-windres \
562+ -DCMAKE_EXE_LINKER_FLAGS="-s" \
563+ -DCMAKE_INSTALL_PREFIX=$PREFIX \
564+ -DBUILD_CursesDialog=OFF \
565+ -DBUILD_QtDialog=OFF \
566+ -DBUILD_TESTING=OFF \
567+ -DCMAKE_USE_OPENSSL=OFF \
568+ /cmake-$CMAKE_VERSION \
569+ && make -j$(nproc) \
570+ && make install
571+
538572WORKDIR /7z
539573COPY src/7z.mak $PREFIX/src/
540574RUN sed -i s/CommCtrl/commctrl/ $(grep -Rl CommCtrl CPP/) \
@@ -545,7 +579,8 @@ RUN sed -i s/CommCtrl/commctrl/ $(grep -Rl CommCtrl CPP/) \
545579# Pack up a release
546580
547581WORKDIR /
548- RUN rm -rf $PREFIX/share/man/ $PREFIX/share/info/ $PREFIX/share/gcc-*
582+ RUN rm -rf $PREFIX/share/man/ $PREFIX/share/info/ $PREFIX/share/gcc-* \
583+ $PREFIX/doc/ $PREFIX/man/
549584COPY README.md Dockerfile w64devkit.ini $PREFIX/
550585RUN printf "id ICON \" $PREFIX/src/w64devkit.ico\" " >w64devkit.rc \
551586 && $ARCH-windres -o w64devkit.o w64devkit.rc \
0 commit comments