137 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 | |
| # file Copyright.txt or https://cmake.org/licensing for details.
 | |
| 
 | |
| # Produce an image with custom-built dependencies for portable CMake binaries.
 | |
| # Build using the directory containing this file as its own build context.
 | |
| 
 | |
| ARG FROM_IMAGE_NAME=kitware/cmake:build-linux-x86_64-base-2023-08-16
 | |
| ARG FROM_IMAGE_DIGEST=@sha256:95c4d937a635067096dc8fa21b20cce6108ced091d3c42d56cf0261f40406a10
 | |
| ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
 | |
| FROM $FROM_IMAGE
 | |
| 
 | |
| # Qt
 | |
| # Version 5.12.0 was the last to bundle xkbcommon.
 | |
| COPY qt-install.patch /opt/qt/src/
 | |
| RUN : \
 | |
|  && mkdir -p /opt/qt/src/qt-build \
 | |
|  && cd /opt/qt/src \
 | |
|  && curl -OL https://download.qt.io/archive/qt/5.12/5.12.0/single/qt-everywhere-src-5.12.0.tar.xz \
 | |
|  && sha512sum qt-everywhere-src-5.12.0.tar.xz | grep -q 0dd03d2645fb6dac5b58c8caf92b4a0a6900131f1ccfb02443a0df4702b5da0458f4c45e758d1b929ec709b0f4b36900df2fd60a058af9cc8c1a0748b6d57aae \
 | |
|  && tar xJf qt-everywhere-src-5.12.0.tar.xz \
 | |
|  && cd qt-build \
 | |
|  && source /opt/rh/devtoolset-7/enable \
 | |
|  && ../qt-everywhere-src-5.12.0/configure \
 | |
|       -prefix /opt/qt \
 | |
|       -static \
 | |
|       -release \
 | |
|       -c++std c++11 \
 | |
|       -opensource -confirm-license \
 | |
|       -gui \
 | |
|       -widgets \
 | |
|       -xcb \
 | |
|       -fontconfig \
 | |
|       -sql-sqlite \
 | |
|       -qt-doubleconversion \
 | |
|       -qt-libjpeg \
 | |
|       -qt-libpng \
 | |
|       -qt-pcre \
 | |
|       -qt-sqlite \
 | |
|       -qt-xcb \
 | |
|       -qt-xkbcommon \
 | |
|       -qt-zlib \
 | |
|       -system-freetype \
 | |
|       -no-accessibility \
 | |
|       -no-compile-examples \
 | |
|       -no-cups \
 | |
|       -no-dbus \
 | |
|       -no-directfb \
 | |
|       -no-egl \
 | |
|       -no-eglfs \
 | |
|       -no-evdev \
 | |
|       -no-gbm \
 | |
|       -no-gif \
 | |
|       -no-glib \
 | |
|       -no-gtk \
 | |
|       -no-harfbuzz \
 | |
|       -no-iconv \
 | |
|       -no-icu \
 | |
|       -no-journald \
 | |
|       -no-kms \
 | |
|       -no-libinput \
 | |
|       -no-libproxy \
 | |
|       -no-linuxfb \
 | |
|       -no-ltcg \
 | |
|       -no-mirclient \
 | |
|       -no-mtdev \
 | |
|       -no-opengl \
 | |
|       -no-openssl \
 | |
|       -no-pch \
 | |
|       -no-sql-mysql \
 | |
|       -no-sql-psql \
 | |
|       -no-sql-sqlite2 \
 | |
|       -no-syslog \
 | |
|       -no-system-proxies \
 | |
|       -no-tslib \
 | |
|       -no-use-gold-linker \
 | |
|       -skip declarative \
 | |
|       -skip multimedia \
 | |
|       -skip qtcanvas3d \
 | |
|       -skip qtconnectivity \
 | |
|       -skip qtdeclarative \
 | |
|       -skip qtlocation \
 | |
|       -skip qtmultimedia \
 | |
|       -skip qtsensors \
 | |
|       -skip qtserialport \
 | |
|       -skip qtsvg \
 | |
|       -skip qtwayland \
 | |
|       -skip qtwebchannel \
 | |
|       -skip qtwebengine \
 | |
|       -skip qtwebsockets \
 | |
|       -skip qtwinextras \
 | |
|       -skip qtxmlpatterns \
 | |
|       -nomake examples \
 | |
|       -nomake tests \
 | |
|  && make install \
 | |
|  && cd /opt/qt \
 | |
|  && patch -p1 -i src/qt-install.patch \
 | |
|  && cd /opt \
 | |
|  && rm -rf /opt/qt/src \
 | |
|  && :
 | |
| 
 | |
| # Curses
 | |
| RUN : \
 | |
|  && mkdir -p /opt/ncurses/src/ncurses-build \
 | |
|  && cd /opt/ncurses/src \
 | |
|  && curl -O https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.1.tar.gz \
 | |
|  && sha512sum ncurses-6.1.tar.gz | grep -q e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee \
 | |
|  && tar xzf ncurses-6.1.tar.gz \
 | |
|  && cd ncurses-build \
 | |
|  && source /opt/rh/devtoolset-7/enable \
 | |
|  && ../ncurses-6.1/configure \
 | |
|       --prefix=/opt/ncurses \
 | |
|       --with-terminfo-dirs=/etc/terminfo:/lib/terminfo:/usr/share/terminfo \
 | |
|       --with-default-terminfo-dir=/usr/share/terminfo \
 | |
|       --without-shared \
 | |
|  && make -j $(nproc) \
 | |
|  && make install.libs install.includes \
 | |
|  && cd /opt \
 | |
|  && rm -rf /opt/ncurses/src \
 | |
|  && :
 | |
| 
 | |
| # OpenSSL
 | |
| COPY openssl-source.patch /opt/openssl/src/
 | |
| RUN : \
 | |
|  && mkdir -p /opt/openssl/src \
 | |
|  && cd /opt/openssl/src \
 | |
|  && curl -O https://www.openssl.org/source/openssl-1.1.1v.tar.gz \
 | |
|  && sha512sum openssl-1.1.1v.tar.gz | grep -q 1a67340d99026aa62bf50ff89165d9f77fe4a6690fe30d1751b5021dd3f238391afd581b41724687c322c4e3af1770c44a63766a06e9b8cab6425101153e0c7e \
 | |
|  && tar xzf openssl-1.1.1v.tar.gz \
 | |
|  && cd openssl-1.1.1v \
 | |
|  && patch -p1 -i ../openssl-source.patch \
 | |
|  && source /opt/rh/devtoolset-7/enable \
 | |
|  && ./Configure --prefix=/opt/openssl linux-elf no-asm no-shared -D_POSIX_C_SOURCE=199506L -D_POSIX_SOURCE=1 -D_SVID_SOURCE=1 -D_BSD_SOURCE=1 \
 | |
|  && make install_dev -j $(nproc) \
 | |
|  && cd /opt \
 | |
|  && rm -rf /opt/openssl/src \
 | |
|  && :
 |