mirror of
https://github.com/skeeto/w64devkit.git
synced 2026-10-23 06:08:56 +03:00
Build curses UI of CMake (ccmake)
This commit is contained in:
committed by
Christopher Wellons
parent
ae313c2685
commit
c9cfbde595
42
Dockerfile
42
Dockerfile
@@ -63,27 +63,32 @@ ARG GDB_VERSION=17.1 \
|
||||
EXPAT_VERSION=2.7.4 \
|
||||
EXPAT_SHA256=9e9cabb457c1e09de91db2706d8365645792638eb3be1f94dbb2149301086ac0 \
|
||||
LIBICONV_VERSION=1.19 \
|
||||
LIBICONV_SHA256=88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6 \
|
||||
PDCURSES_VERSION=3.9 \
|
||||
PDCURSES_SHA256=590dbe0f5835f66992df096d3602d0271103f90cf8557a5d124f693c2b40d7ec
|
||||
LIBICONV_SHA256=88dd96a8c0464eca144fc791ae60cd31cd8ee78321e67397e25fc095c4a19aa6
|
||||
WORKDIR /dl
|
||||
RUN curl --insecure --location --remote-name-all --remote-header-name \
|
||||
https://ftp.gnu.org/gnu/gdb/gdb-$GDB_VERSION.tar.xz \
|
||||
https://github.com/libexpat/libexpat/releases/download/R_$(echo $EXPAT_VERSION | tr . _)/expat-$EXPAT_VERSION.tar.xz \
|
||||
https://ftp.gnu.org/gnu/libiconv/libiconv-$LIBICONV_VERSION.tar.gz \
|
||||
https://downloads.sourceforge.net/project/pdcurses/pdcurses/$PDCURSES_VERSION/PDCurses-$PDCURSES_VERSION.tar.gz \
|
||||
&& printf '%s %s\n' \
|
||||
$GDB_SHA256 gdb-$GDB_VERSION.tar.xz \
|
||||
$EXPAT_SHA256 expat-$EXPAT_VERSION.tar.xz \
|
||||
$LIBICONV_SHA256 libiconv-$LIBICONV_VERSION.tar.gz \
|
||||
$PDCURSES_SHA256 PDCurses-$PDCURSES_VERSION.tar.gz \
|
||||
| sha256sum -c \
|
||||
&& mkdir gdb \
|
||||
&& tar xJf gdb-$GDB_VERSION.tar.xz -C gdb --strip-components=1 \
|
||||
&& mkdir expat \
|
||||
&& tar xJf expat-$EXPAT_VERSION.tar.xz -C expat --strip-components=1 \
|
||||
&& mkdir libiconv \
|
||||
&& tar xzf libiconv-$LIBICONV_VERSION.tar.gz -C libiconv --strip-components=1 \
|
||||
&& tar xzf libiconv-$LIBICONV_VERSION.tar.gz -C libiconv --strip-components=1
|
||||
|
||||
FROM base AS dl-pdcurses
|
||||
ARG PDCURSES_VERSION=3.9 \
|
||||
PDCURSES_SHA256=590dbe0f5835f66992df096d3602d0271103f90cf8557a5d124f693c2b40d7ec
|
||||
WORKDIR /dl
|
||||
RUN curl --insecure --location --remote-name-all --remote-header-name \
|
||||
https://downloads.sourceforge.net/project/pdcurses/pdcurses/$PDCURSES_VERSION/PDCurses-$PDCURSES_VERSION.tar.gz \
|
||||
&& printf '%s %s\n' $PDCURSES_SHA256 PDCurses-$PDCURSES_VERSION.tar.gz \
|
||||
| sha256sum -c \
|
||||
&& mkdir pdcurses \
|
||||
&& tar xzf PDCurses-$PDCURSES_VERSION.tar.gz -C pdcurses --strip-components=1
|
||||
|
||||
@@ -474,8 +479,21 @@ RUN ./configure \
|
||||
&& $ARCH-gcc -nostartfiles -Oz -s -o /out/bin/uuidgen.exe \
|
||||
$PREFIX/src/uuidgen.c -lmemory
|
||||
|
||||
# Build PDCurses once and reuse it for both gdb and ccmake.
|
||||
FROM cross AS build-pdcurses
|
||||
COPY --from=dl-pdcurses /dl/pdcurses /dl/pdcurses
|
||||
|
||||
WORKDIR /dl/pdcurses
|
||||
RUN make -j$(nproc) -C wincon \
|
||||
CC=$ARCH-gcc AR=$ARCH-ar CFLAGS="-I.. -Os -DPDC_WIDE" pdcurses.a \
|
||||
&& mkdir -p /deps/lib /deps/include \
|
||||
&& cp wincon/pdcurses.a /deps/lib/libcurses.a \
|
||||
&& cp curses.h /deps/include/curses.h
|
||||
|
||||
FROM cross AS build-gdb
|
||||
COPY --from=dl-gdb /dl/ /dl/
|
||||
COPY --from=build-pdcurses /deps/lib/libcurses.a /deps/lib/
|
||||
COPY --from=build-pdcurses /deps/include/curses.h /deps/include/
|
||||
|
||||
WORKDIR /expat
|
||||
RUN /dl/expat/configure \
|
||||
@@ -490,12 +508,6 @@ RUN /dl/expat/configure \
|
||||
&& make -j$(nproc) \
|
||||
&& make install
|
||||
|
||||
WORKDIR /dl/pdcurses
|
||||
RUN make -j$(nproc) -C wincon \
|
||||
CC=$ARCH-gcc AR=$ARCH-ar CFLAGS="-I.. -Os -DPDC_WIDE" pdcurses.a \
|
||||
&& cp wincon/pdcurses.a /deps/lib/libcurses.a \
|
||||
&& cp curses.h /deps/include
|
||||
|
||||
WORKDIR /libiconv
|
||||
RUN /dl/libiconv/configure \
|
||||
--prefix=/deps \
|
||||
@@ -692,6 +704,8 @@ RUN cmake -DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
|
||||
FROM cross AS build-cmake
|
||||
COPY --from=dl-cmake /dl/ /dl/
|
||||
COPY --from=build-pdcurses /deps/lib/libcurses.a /deps/lib/
|
||||
COPY --from=build-pdcurses /deps/include/curses.h /deps/include/
|
||||
|
||||
WORKDIR /cmake
|
||||
COPY src/cmake-*.patch $PREFIX/src/
|
||||
@@ -703,7 +717,9 @@ RUN cat $PREFIX/src/cmake-*.patch | patch -d/dl/cmake -p1 \
|
||||
-DCMAKE_RC_COMPILER=$ARCH-windres \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-s" \
|
||||
-DCMAKE_INSTALL_PREFIX=$PREFIX \
|
||||
-DBUILD_CursesDialog=OFF \
|
||||
-DBUILD_CursesDialog=ON \
|
||||
-DCURSES_LIBRARY=/deps/lib/libcurses.a \
|
||||
-DCURSES_INCLUDE_PATH=/deps/include \
|
||||
-DBUILD_QtDialog=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCMAKE_USE_OPENSSL=OFF \
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
- && make mingw64u_defconfig \
|
||||
+ && make mingw64_defconfig \
|
||||
&& sed -ri 's/^(CONFIG_AR)=y/\1=n/' .config \
|
||||
@@ -683,2 +688,3 @@ RUN cat $PREFIX/src/cmake-*.patch | patch -d/dl/cmake -p1 \
|
||||
-DCMAKE_RC_COMPILER=$ARCH-windres \
|
||||
+ -DCMAKE_CXX_FLAGS="-Os -D_WIN32_WINNT=0x0601" \
|
||||
@@ -721,3 +729,4 @@ RUN cat $PREFIX/src/cmake-*.patch | patch -d/dl/cmake -p1 \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-s" \
|
||||
+ -DCMAKE_CXX_FLAGS="-Os -D_WIN32_WINNT=0x0601" \
|
||||
-DCMAKE_INSTALL_PREFIX=$PREFIX \
|
||||
-DBUILD_CursesDialog=ON \
|
||||
|
||||
Reference in New Issue
Block a user